001
014
015 package com.liferay.portal.repository.liferayrepository.model;
016
017 import com.liferay.document.library.kernel.model.DLFileEntry;
018 import com.liferay.document.library.kernel.model.DLFileEntryConstants;
019 import com.liferay.document.library.kernel.model.DLFileVersion;
020 import com.liferay.document.library.kernel.service.DLAppHelperLocalServiceUtil;
021 import com.liferay.document.library.kernel.service.DLFileVersionLocalServiceUtil;
022 import com.liferay.expando.kernel.model.ExpandoBridge;
023 import com.liferay.exportimport.kernel.lar.StagedModelType;
024 import com.liferay.portal.kernel.exception.PortalException;
025 import com.liferay.portal.kernel.exception.SystemException;
026 import com.liferay.portal.kernel.lock.Lock;
027 import com.liferay.portal.kernel.log.Log;
028 import com.liferay.portal.kernel.log.LogFactoryUtil;
029 import com.liferay.portal.kernel.repository.Repository;
030 import com.liferay.portal.kernel.repository.RepositoryProviderUtil;
031 import com.liferay.portal.kernel.repository.capabilities.Capability;
032 import com.liferay.portal.kernel.repository.model.FileEntry;
033 import com.liferay.portal.kernel.repository.model.FileShortcut;
034 import com.liferay.portal.kernel.repository.model.FileVersion;
035 import com.liferay.portal.kernel.repository.model.Folder;
036 import com.liferay.portal.kernel.repository.model.RepositoryModelOperation;
037 import com.liferay.portal.kernel.security.auth.PrincipalThreadLocal;
038 import com.liferay.portal.kernel.security.permission.PermissionChecker;
039 import com.liferay.portal.kernel.util.ContentTypes;
040 import com.liferay.portal.kernel.util.StringPool;
041 import com.liferay.portal.kernel.util.Validator;
042 import com.liferay.portlet.documentlibrary.service.permission.DLFileEntryPermission;
043 import com.liferay.portlet.documentlibrary.util.RepositoryModelUtil;
044
045 import java.io.InputStream;
046 import java.io.Serializable;
047
048 import java.util.Date;
049 import java.util.List;
050 import java.util.Map;
051
052
055 public class LiferayFileEntry extends LiferayModel implements FileEntry {
056
057 public LiferayFileEntry(DLFileEntry dlFileEntry) {
058 this(dlFileEntry, dlFileEntry.isEscapedModel());
059 }
060
061 public LiferayFileEntry(DLFileEntry fileEntry, boolean escapedModel) {
062 _dlFileEntry = fileEntry;
063 _escapedModel = escapedModel;
064 }
065
066 @Override
067 public Object clone() {
068 return new LiferayFileEntry(_dlFileEntry);
069 }
070
071 @Override
072 public boolean containsPermission(
073 PermissionChecker permissionChecker, String actionId)
074 throws PortalException {
075
076 return DLFileEntryPermission.contains(
077 permissionChecker, _dlFileEntry, actionId);
078 }
079
080 @Override
081 public boolean equals(Object obj) {
082 if (this == obj) {
083 return true;
084 }
085
086 if (!(obj instanceof LiferayFileEntry)) {
087 return false;
088 }
089
090 LiferayFileEntry liferayFileEntry = (LiferayFileEntry)obj;
091
092 if (Validator.equals(_dlFileEntry, liferayFileEntry._dlFileEntry)) {
093 return true;
094 }
095
096 return false;
097 }
098
099 @Override
100 public void execute(RepositoryModelOperation repositoryModelOperation)
101 throws PortalException {
102
103 repositoryModelOperation.execute(this);
104 }
105
106 @Override
107 public Map<String, Serializable> getAttributes() {
108 ExpandoBridge expandoBridge = getExpandoBridge();
109
110 return expandoBridge.getAttributes();
111 }
112
113 public FileVersion getCachedFileVersion() {
114 if (_dlFileVersion == null) {
115 return null;
116 }
117
118 return new LiferayFileVersion(_dlFileVersion);
119 }
120
121 @Override
122 public long getCompanyId() {
123 return _dlFileEntry.getCompanyId();
124 }
125
126 @Override
127 public InputStream getContentStream() throws PortalException {
128 InputStream inputStream = _dlFileEntry.getContentStream();
129
130 try {
131 DLAppHelperLocalServiceUtil.getFileAsStream(
132 PrincipalThreadLocal.getUserId(), this, true);
133 }
134 catch (Exception e) {
135 _log.error(e);
136 }
137
138 return inputStream;
139 }
140
141 @Override
142 public InputStream getContentStream(String version) throws PortalException {
143 InputStream inputStream = _dlFileEntry.getContentStream(version);
144
145 try {
146 DLAppHelperLocalServiceUtil.getFileAsStream(
147 PrincipalThreadLocal.getUserId(), this, true);
148 }
149 catch (Exception e) {
150 _log.error(e);
151 }
152
153 return inputStream;
154 }
155
156 @Override
157 public Date getCreateDate() {
158 return _dlFileEntry.getCreateDate();
159 }
160
161 @Override
162 public String getDescription() {
163 return _dlFileEntry.getDescription();
164 }
165
166 public DLFileEntry getDLFileEntry() {
167 return _dlFileEntry;
168 }
169
170 @Override
171 public ExpandoBridge getExpandoBridge() {
172 return _dlFileEntry.getExpandoBridge();
173 }
174
175 @Override
176 public String getExtension() {
177 return _dlFileEntry.getExtension();
178 }
179
180 @Override
181 public long getFileEntryId() {
182 return _dlFileEntry.getFileEntryId();
183 }
184
185 @Override
186 public String getFileName() {
187 return _dlFileEntry.getFileName();
188 }
189
190 @Override
191 public List<FileShortcut> getFileShortcuts() {
192 return RepositoryModelUtil.toFileShortcuts(
193 _dlFileEntry.getFileShortcuts());
194 }
195
196 @Override
197 public FileVersion getFileVersion() throws PortalException {
198 DLFileVersion dlFileVersion = _dlFileVersion;
199
200 if (dlFileVersion == null) {
201 dlFileVersion = _dlFileEntry.getFileVersion();
202 }
203
204 return new LiferayFileVersion(dlFileVersion);
205 }
206
207 @Override
208 public FileVersion getFileVersion(String version) throws PortalException {
209 return new LiferayFileVersion(_dlFileEntry.getFileVersion(version));
210 }
211
212 @Override
213 public List<FileVersion> getFileVersions(int status) {
214 return RepositoryModelUtil.toFileVersions(
215 _dlFileEntry.getFileVersions(status));
216 }
217
218 @Override
219 public int getFileVersionsCount(int status) {
220 return _dlFileEntry.getFileVersionsCount(status);
221 }
222
223 @Override
224 public Folder getFolder() {
225 Folder folder = null;
226
227 try {
228 folder = new LiferayFolder(_dlFileEntry.getFolder());
229 }
230 catch (Exception e) {
231 return null;
232 }
233
234 return folder;
235 }
236
237 @Override
238 public long getFolderId() {
239 return _dlFileEntry.getFolderId();
240 }
241
242 @Override
243 public long getGroupId() {
244 return _dlFileEntry.getGroupId();
245 }
246
247 @Override
248 public String getIcon() {
249 return _dlFileEntry.getIcon();
250 }
251
252 @Override
253 public String getIconCssClass() {
254 return _dlFileEntry.getIconCssClass();
255 }
256
257 @Override
258 public Date getLastPublishDate() {
259 return _dlFileEntry.getLastPublishDate();
260 }
261
262 @Override
263 public FileVersion getLatestFileVersion() throws PortalException {
264 return getLatestFileVersion(false);
265 }
266
267 @Override
268 public FileVersion getLatestFileVersion(boolean trusted)
269 throws PortalException {
270
271 return new LiferayFileVersion(
272 _dlFileEntry.getLatestFileVersion(trusted));
273 }
274
275 @Override
276 public Lock getLock() {
277 return _dlFileEntry.getLock();
278 }
279
280 @Override
281 public String getMimeType() {
282 return _dlFileEntry.getMimeType();
283 }
284
285 @Override
286 public String getMimeType(String version) {
287 try {
288 DLFileVersion dlFileVersion =
289 DLFileVersionLocalServiceUtil.getFileVersion(
290 _dlFileEntry.getFileEntryId(), version);
291
292 return dlFileVersion.getMimeType();
293 }
294 catch (Exception e) {
295 }
296
297 return ContentTypes.APPLICATION_OCTET_STREAM;
298 }
299
300 @Override
301 public Object getModel() {
302 return _dlFileEntry;
303 }
304
305 @Override
306 public Class<?> getModelClass() {
307 return LiferayFileEntry.class;
308 }
309
310 @Override
311 public String getModelClassName() {
312 return LiferayFileEntry.class.getName();
313 }
314
315 @Override
316 public Date getModifiedDate() {
317 return _dlFileEntry.getModifiedDate();
318 }
319
320 @Override
321 public long getPrimaryKey() {
322 return _dlFileEntry.getPrimaryKey();
323 }
324
325 @Override
326 public Serializable getPrimaryKeyObj() {
327 return getPrimaryKey();
328 }
329
330 @Override
331 public int getReadCount() {
332 return _dlFileEntry.getReadCount();
333 }
334
335 @Override
336 public <T extends Capability> T getRepositoryCapability(
337 Class<T> capabilityClass) {
338
339 Repository repository = getRepository();
340
341 return repository.getCapability(capabilityClass);
342 }
343
344 @Override
345 public long getRepositoryId() {
346 return _dlFileEntry.getRepositoryId();
347 }
348
349 @Override
350 public long getSize() {
351 return _dlFileEntry.getSize();
352 }
353
354 @Override
355 public StagedModelType getStagedModelType() {
356 return new StagedModelType(DLFileEntryConstants.getClassName());
357 }
358
359 @Override
360 public String getTitle() {
361 return _dlFileEntry.getTitle();
362 }
363
364 @Override
365 public long getUserId() {
366 return _dlFileEntry.getUserId();
367 }
368
369 @Override
370 public String getUserName() {
371 return _dlFileEntry.getUserName();
372 }
373
374 @Override
375 public String getUserUuid() {
376 return _dlFileEntry.getUserUuid();
377 }
378
379 @Override
380 public String getUuid() {
381 return _dlFileEntry.getUuid();
382 }
383
384 @Override
385 public String getVersion() {
386 return _dlFileEntry.getVersion();
387 }
388
389
392 @Deprecated
393 @Override
394 public long getVersionUserId() {
395 long versionUserId = 0;
396
397 try {
398 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
399
400 versionUserId = dlFileVersion.getUserId();
401 }
402 catch (Exception e) {
403 _log.error(e, e);
404 }
405
406 return versionUserId;
407 }
408
409
412 @Deprecated
413 @Override
414 public String getVersionUserName() {
415 String versionUserName = StringPool.BLANK;
416
417 try {
418 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
419
420 versionUserName = dlFileVersion.getUserName();
421 }
422 catch (Exception e) {
423 _log.error(e, e);
424 }
425
426 return versionUserName;
427 }
428
429
432 @Deprecated
433 @Override
434 public String getVersionUserUuid() {
435 String versionUserUuid = StringPool.BLANK;
436
437 try {
438 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
439
440 versionUserUuid = dlFileVersion.getUserUuid();
441 }
442 catch (Exception e) {
443 _log.error(e, e);
444 }
445
446 return versionUserUuid;
447 }
448
449 @Override
450 public int hashCode() {
451 return _dlFileEntry.hashCode();
452 }
453
454 @Override
455 public boolean hasLock() {
456 return _dlFileEntry.hasLock();
457 }
458
459 @Override
460 public boolean isCheckedOut() {
461 return _dlFileEntry.isCheckedOut();
462 }
463
464 @Override
465 public boolean isDefaultRepository() {
466 if (_dlFileEntry.getGroupId() == _dlFileEntry.getRepositoryId()) {
467 return true;
468 }
469 else {
470 return false;
471 }
472 }
473
474 @Override
475 public boolean isEscapedModel() {
476 return _escapedModel;
477 }
478
479 @Override
480 public boolean isInTrash() {
481 return _dlFileEntry.isInTrash();
482 }
483
484 @Override
485 public boolean isInTrashContainer() {
486 try {
487 return _dlFileEntry.isInTrashContainer();
488 }
489 catch (Exception e) {
490 return false;
491 }
492 }
493
494 @Override
495 public boolean isManualCheckInRequired() {
496 return _dlFileEntry.isManualCheckInRequired();
497 }
498
499 @Override
500 public <T extends Capability> boolean isRepositoryCapabilityProvided(
501 Class<T> capabilityClass) {
502
503 Repository repository = getRepository();
504
505 return repository.isCapabilityProvided(capabilityClass);
506 }
507
508 @Override
509 public boolean isSupportsLocking() {
510 return true;
511 }
512
513 @Override
514 public boolean isSupportsMetadata() {
515 return true;
516 }
517
518 @Override
519 public boolean isSupportsSocial() {
520 return true;
521 }
522
523 public void setCachedFileVersion(FileVersion fileVersion) {
524 _dlFileVersion = (DLFileVersion)fileVersion.getModel();
525 }
526
527 @Override
528 public void setCompanyId(long companyId) {
529 _dlFileEntry.setCompanyId(companyId);
530 }
531
532 @Override
533 public void setCreateDate(Date createDate) {
534 _dlFileEntry.setCreateDate(createDate);
535 }
536
537 @Override
538 public void setGroupId(long groupId) {
539 _dlFileEntry.setGroupId(groupId);
540 }
541
542 @Override
543 public void setLastPublishDate(Date lastPublishDate) {
544 _dlFileEntry.setLastPublishDate(lastPublishDate);
545 }
546
547 @Override
548 public void setModifiedDate(Date modifiedDate) {
549 _dlFileEntry.setModifiedDate(modifiedDate);
550 }
551
552 public void setPrimaryKey(long primaryKey) {
553 _dlFileEntry.setPrimaryKey(primaryKey);
554 }
555
556 @Override
557 public void setPrimaryKeyObj(Serializable primaryKeyObj) {
558 setPrimaryKey(((Long)primaryKeyObj).longValue());
559 }
560
561 @Override
562 public void setUserId(long userId) {
563 _dlFileEntry.setUserId(userId);
564 }
565
566 @Override
567 public void setUserName(String userName) {
568 _dlFileEntry.setUserName(userName);
569 }
570
571 @Override
572 public void setUserUuid(String userUuid) {
573 _dlFileEntry.setUserUuid(userUuid);
574 }
575
576 @Override
577 public void setUuid(String uuid) {
578 _dlFileEntry.setUuid(uuid);
579 }
580
581 @Override
582 public FileEntry toEscapedModel() {
583 if (isEscapedModel()) {
584 return this;
585 }
586 else {
587 return new LiferayFileEntry(_dlFileEntry.toEscapedModel(), true);
588 }
589 }
590
591 @Override
592 public String toString() {
593 return _dlFileEntry.toString();
594 }
595
596 @Override
597 public FileEntry toUnescapedModel() {
598 if (isEscapedModel()) {
599 return new LiferayFileEntry(_dlFileEntry.toUnescapedModel(), true);
600 }
601 else {
602 return this;
603 }
604 }
605
606 protected Repository getRepository() {
607 try {
608 return RepositoryProviderUtil.getRepository(getRepositoryId());
609 }
610 catch (PortalException pe) {
611 throw new SystemException(
612 "Unable to get repository for file entry " + getFileEntryId(),
613 pe);
614 }
615 }
616
617 private static final Log _log = LogFactoryUtil.getLog(
618 LiferayFileEntry.class);
619
620 private final DLFileEntry _dlFileEntry;
621 private DLFileVersion _dlFileVersion;
622 private final boolean _escapedModel;
623
624 }