001
014
015 package com.liferay.portal.repository.liferayrepository.model;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.lock.Lock;
020 import com.liferay.portal.kernel.log.Log;
021 import com.liferay.portal.kernel.log.LogFactoryUtil;
022 import com.liferay.portal.kernel.repository.Repository;
023 import com.liferay.portal.kernel.repository.RepositoryProviderUtil;
024 import com.liferay.portal.kernel.repository.capabilities.Capability;
025 import com.liferay.portal.kernel.repository.model.FileEntry;
026 import com.liferay.portal.kernel.repository.model.FileShortcut;
027 import com.liferay.portal.kernel.repository.model.FileVersion;
028 import com.liferay.portal.kernel.repository.model.Folder;
029 import com.liferay.portal.kernel.repository.model.RepositoryModelOperation;
030 import com.liferay.portal.kernel.util.ContentTypes;
031 import com.liferay.portal.kernel.util.StringPool;
032 import com.liferay.portal.kernel.util.Validator;
033 import com.liferay.portal.security.auth.PrincipalThreadLocal;
034 import com.liferay.portal.security.permission.PermissionChecker;
035 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
036 import com.liferay.portlet.documentlibrary.model.DLFileEntryConstants;
037 import com.liferay.portlet.documentlibrary.model.DLFileVersion;
038 import com.liferay.portlet.documentlibrary.service.DLAppHelperLocalServiceUtil;
039 import com.liferay.portlet.documentlibrary.service.DLFileVersionLocalServiceUtil;
040 import com.liferay.portlet.documentlibrary.service.permission.DLFileEntryPermission;
041 import com.liferay.portlet.documentlibrary.util.RepositoryModelUtil;
042 import com.liferay.portlet.expando.model.ExpandoBridge;
043 import com.liferay.portlet.exportimport.lar.StagedModelType;
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 Folder getFolder() {
220 Folder folder = null;
221
222 try {
223 folder = new LiferayFolder(_dlFileEntry.getFolder());
224 }
225 catch (Exception e) {
226 return null;
227 }
228
229 return folder;
230 }
231
232 @Override
233 public long getFolderId() {
234 return _dlFileEntry.getFolderId();
235 }
236
237 @Override
238 public long getGroupId() {
239 return _dlFileEntry.getGroupId();
240 }
241
242 @Override
243 public String getIcon() {
244 return _dlFileEntry.getIcon();
245 }
246
247 @Override
248 public String getIconCssClass() {
249 return _dlFileEntry.getIconCssClass();
250 }
251
252 @Override
253 public Date getLastPublishDate() {
254 return _dlFileEntry.getLastPublishDate();
255 }
256
257 @Override
258 public FileVersion getLatestFileVersion() throws PortalException {
259 return getLatestFileVersion(false);
260 }
261
262 @Override
263 public FileVersion getLatestFileVersion(boolean trusted)
264 throws PortalException {
265
266 return new LiferayFileVersion(
267 _dlFileEntry.getLatestFileVersion(trusted));
268 }
269
270 @Override
271 public Lock getLock() {
272 return _dlFileEntry.getLock();
273 }
274
275 @Override
276 public String getMimeType() {
277 return _dlFileEntry.getMimeType();
278 }
279
280 @Override
281 public String getMimeType(String version) {
282 try {
283 DLFileVersion dlFileVersion =
284 DLFileVersionLocalServiceUtil.getFileVersion(
285 _dlFileEntry.getFileEntryId(), version);
286
287 return dlFileVersion.getMimeType();
288 }
289 catch (Exception e) {
290 }
291
292 return ContentTypes.APPLICATION_OCTET_STREAM;
293 }
294
295 @Override
296 public Object getModel() {
297 return _dlFileEntry;
298 }
299
300 @Override
301 public Class<?> getModelClass() {
302 return LiferayFileEntry.class;
303 }
304
305 @Override
306 public String getModelClassName() {
307 return LiferayFileEntry.class.getName();
308 }
309
310 @Override
311 public Date getModifiedDate() {
312 return _dlFileEntry.getModifiedDate();
313 }
314
315 @Override
316 public long getPrimaryKey() {
317 return _dlFileEntry.getPrimaryKey();
318 }
319
320 @Override
321 public Serializable getPrimaryKeyObj() {
322 return getPrimaryKey();
323 }
324
325 @Override
326 public int getReadCount() {
327 return _dlFileEntry.getReadCount();
328 }
329
330 @Override
331 public <T extends Capability> T getRepositoryCapability(
332 Class<T> capabilityClass) {
333
334 Repository repository = getRepository();
335
336 return repository.getCapability(capabilityClass);
337 }
338
339 @Override
340 public long getRepositoryId() {
341 return _dlFileEntry.getRepositoryId();
342 }
343
344 @Override
345 public long getSize() {
346 return _dlFileEntry.getSize();
347 }
348
349 @Override
350 public StagedModelType getStagedModelType() {
351 return new StagedModelType(DLFileEntryConstants.getClassName());
352 }
353
354 @Override
355 public String getTitle() {
356 return _dlFileEntry.getTitle();
357 }
358
359 @Override
360 public long getUserId() {
361 return _dlFileEntry.getUserId();
362 }
363
364 @Override
365 public String getUserName() {
366 return _dlFileEntry.getUserName();
367 }
368
369 @Override
370 public String getUserUuid() {
371 return _dlFileEntry.getUserUuid();
372 }
373
374 @Override
375 public String getUuid() {
376 return _dlFileEntry.getUuid();
377 }
378
379 @Override
380 public String getVersion() {
381 return _dlFileEntry.getVersion();
382 }
383
384
387 @Deprecated
388 @Override
389 public long getVersionUserId() {
390 long versionUserId = 0;
391
392 try {
393 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
394
395 versionUserId = dlFileVersion.getUserId();
396 }
397 catch (Exception e) {
398 _log.error(e, e);
399 }
400
401 return versionUserId;
402 }
403
404
407 @Deprecated
408 @Override
409 public String getVersionUserName() {
410 String versionUserName = StringPool.BLANK;
411
412 try {
413 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
414
415 versionUserName = dlFileVersion.getUserName();
416 }
417 catch (Exception e) {
418 _log.error(e, e);
419 }
420
421 return versionUserName;
422 }
423
424
427 @Deprecated
428 @Override
429 public String getVersionUserUuid() {
430 String versionUserUuid = StringPool.BLANK;
431
432 try {
433 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
434
435 versionUserUuid = dlFileVersion.getUserUuid();
436 }
437 catch (Exception e) {
438 _log.error(e, e);
439 }
440
441 return versionUserUuid;
442 }
443
444 @Override
445 public int hashCode() {
446 return _dlFileEntry.hashCode();
447 }
448
449 @Override
450 public boolean hasLock() {
451 return _dlFileEntry.hasLock();
452 }
453
454 @Override
455 public boolean isCheckedOut() {
456 return _dlFileEntry.isCheckedOut();
457 }
458
459 @Override
460 public boolean isDefaultRepository() {
461 if (_dlFileEntry.getGroupId() == _dlFileEntry.getRepositoryId()) {
462 return true;
463 }
464 else {
465 return false;
466 }
467 }
468
469 @Override
470 public boolean isEscapedModel() {
471 return _escapedModel;
472 }
473
474 @Override
475 public boolean isInTrash() {
476 return _dlFileEntry.isInTrash();
477 }
478
479 @Override
480 public boolean isInTrashContainer() {
481 try {
482 return _dlFileEntry.isInTrashContainer();
483 }
484 catch (Exception e) {
485 return false;
486 }
487 }
488
489 @Override
490 public boolean isManualCheckInRequired() {
491 return _dlFileEntry.isManualCheckInRequired();
492 }
493
494 @Override
495 public <T extends Capability> boolean isRepositoryCapabilityProvided(
496 Class<T> capabilityClass) {
497
498 Repository repository = getRepository();
499
500 return repository.isCapabilityProvided(capabilityClass);
501 }
502
503 @Override
504 public boolean isSupportsLocking() {
505 return true;
506 }
507
508 @Override
509 public boolean isSupportsMetadata() {
510 return true;
511 }
512
513 @Override
514 public boolean isSupportsSocial() {
515 return true;
516 }
517
518 public void setCachedFileVersion(FileVersion fileVersion) {
519 _dlFileVersion = (DLFileVersion)fileVersion.getModel();
520 }
521
522 @Override
523 public void setCompanyId(long companyId) {
524 _dlFileEntry.setCompanyId(companyId);
525 }
526
527 @Override
528 public void setCreateDate(Date createDate) {
529 _dlFileEntry.setCreateDate(createDate);
530 }
531
532 @Override
533 public void setGroupId(long groupId) {
534 _dlFileEntry.setGroupId(groupId);
535 }
536
537 @Override
538 public void setLastPublishDate(Date lastPublishDate) {
539 _dlFileEntry.setLastPublishDate(lastPublishDate);
540 }
541
542 @Override
543 public void setModifiedDate(Date modifiedDate) {
544 _dlFileEntry.setModifiedDate(modifiedDate);
545 }
546
547 public void setPrimaryKey(long primaryKey) {
548 _dlFileEntry.setPrimaryKey(primaryKey);
549 }
550
551 @Override
552 public void setPrimaryKeyObj(Serializable primaryKeyObj) {
553 setPrimaryKey(((Long)primaryKeyObj).longValue());
554 }
555
556 @Override
557 public void setUserId(long userId) {
558 _dlFileEntry.setUserId(userId);
559 }
560
561 @Override
562 public void setUserName(String userName) {
563 _dlFileEntry.setUserName(userName);
564 }
565
566 @Override
567 public void setUserUuid(String userUuid) {
568 _dlFileEntry.setUserUuid(userUuid);
569 }
570
571 @Override
572 public void setUuid(String uuid) {
573 _dlFileEntry.setUuid(uuid);
574 }
575
576 @Override
577 public FileEntry toEscapedModel() {
578 if (isEscapedModel()) {
579 return this;
580 }
581 else {
582 return new LiferayFileEntry(_dlFileEntry.toEscapedModel(), true);
583 }
584 }
585
586 @Override
587 public String toString() {
588 return _dlFileEntry.toString();
589 }
590
591 @Override
592 public FileEntry toUnescapedModel() {
593 if (isEscapedModel()) {
594 return new LiferayFileEntry(_dlFileEntry.toUnescapedModel(), true);
595 }
596 else {
597 return this;
598 }
599 }
600
601 protected Repository getRepository() {
602 try {
603 return RepositoryProviderUtil.getRepository(getRepositoryId());
604 }
605 catch (PortalException pe) {
606 throw new SystemException(
607 "Unable to get repository for file entry " + getFileEntryId(),
608 pe);
609 }
610 }
611
612 private static final Log _log = LogFactoryUtil.getLog(
613 LiferayFileEntry.class);
614
615 private final DLFileEntry _dlFileEntry;
616 private DLFileVersion _dlFileVersion;
617 private final boolean _escapedModel;
618
619 }