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 FileVersion getLatestFileVersion() throws PortalException {
254 return getLatestFileVersion(false);
255 }
256
257 @Override
258 public FileVersion getLatestFileVersion(boolean trusted)
259 throws PortalException {
260
261 return new LiferayFileVersion(
262 _dlFileEntry.getLatestFileVersion(trusted));
263 }
264
265 @Override
266 public Lock getLock() {
267 return _dlFileEntry.getLock();
268 }
269
270 @Override
271 public String getMimeType() {
272 return _dlFileEntry.getMimeType();
273 }
274
275 @Override
276 public String getMimeType(String version) {
277 try {
278 DLFileVersion dlFileVersion =
279 DLFileVersionLocalServiceUtil.getFileVersion(
280 _dlFileEntry.getFileEntryId(), version);
281
282 return dlFileVersion.getMimeType();
283 }
284 catch (Exception e) {
285 }
286
287 return ContentTypes.APPLICATION_OCTET_STREAM;
288 }
289
290 @Override
291 public Object getModel() {
292 return _dlFileEntry;
293 }
294
295 @Override
296 public Class<?> getModelClass() {
297 return LiferayFileEntry.class;
298 }
299
300 @Override
301 public String getModelClassName() {
302 return LiferayFileEntry.class.getName();
303 }
304
305 @Override
306 public Date getModifiedDate() {
307 return _dlFileEntry.getModifiedDate();
308 }
309
310 @Override
311 public long getPrimaryKey() {
312 return _dlFileEntry.getPrimaryKey();
313 }
314
315 @Override
316 public Serializable getPrimaryKeyObj() {
317 return getPrimaryKey();
318 }
319
320 @Override
321 public int getReadCount() {
322 return _dlFileEntry.getReadCount();
323 }
324
325 @Override
326 public <T extends Capability> T getRepositoryCapability(
327 Class<T> capabilityClass) {
328
329 Repository repository = getRepository();
330
331 return repository.getCapability(capabilityClass);
332 }
333
334 @Override
335 public long getRepositoryId() {
336 return _dlFileEntry.getRepositoryId();
337 }
338
339 @Override
340 public long getSize() {
341 return _dlFileEntry.getSize();
342 }
343
344 @Override
345 public StagedModelType getStagedModelType() {
346 return new StagedModelType(DLFileEntryConstants.getClassName());
347 }
348
349 @Override
350 public String getTitle() {
351 return _dlFileEntry.getTitle();
352 }
353
354 @Override
355 public long getUserId() {
356 return _dlFileEntry.getUserId();
357 }
358
359 @Override
360 public String getUserName() {
361 return _dlFileEntry.getUserName();
362 }
363
364 @Override
365 public String getUserUuid() {
366 return _dlFileEntry.getUserUuid();
367 }
368
369 @Override
370 public String getUuid() {
371 return _dlFileEntry.getUuid();
372 }
373
374 @Override
375 public String getVersion() {
376 return _dlFileEntry.getVersion();
377 }
378
379
382 @Deprecated
383 @Override
384 public long getVersionUserId() {
385 long versionUserId = 0;
386
387 try {
388 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
389
390 versionUserId = dlFileVersion.getUserId();
391 }
392 catch (Exception e) {
393 _log.error(e, e);
394 }
395
396 return versionUserId;
397 }
398
399
402 @Deprecated
403 @Override
404 public String getVersionUserName() {
405 String versionUserName = StringPool.BLANK;
406
407 try {
408 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
409
410 versionUserName = dlFileVersion.getUserName();
411 }
412 catch (Exception e) {
413 _log.error(e, e);
414 }
415
416 return versionUserName;
417 }
418
419
422 @Deprecated
423 @Override
424 public String getVersionUserUuid() {
425 String versionUserUuid = StringPool.BLANK;
426
427 try {
428 DLFileVersion dlFileVersion = _dlFileEntry.getFileVersion();
429
430 versionUserUuid = dlFileVersion.getUserUuid();
431 }
432 catch (Exception e) {
433 _log.error(e, e);
434 }
435
436 return versionUserUuid;
437 }
438
439 @Override
440 public int hashCode() {
441 return _dlFileEntry.hashCode();
442 }
443
444 @Override
445 public boolean hasLock() {
446 return _dlFileEntry.hasLock();
447 }
448
449 @Override
450 public boolean isCheckedOut() {
451 return _dlFileEntry.isCheckedOut();
452 }
453
454 @Override
455 public boolean isDefaultRepository() {
456 if (_dlFileEntry.getGroupId() == _dlFileEntry.getRepositoryId()) {
457 return true;
458 }
459 else {
460 return false;
461 }
462 }
463
464 @Override
465 public boolean isEscapedModel() {
466 return _escapedModel;
467 }
468
469 @Override
470 public boolean isInTrash() {
471 return _dlFileEntry.isInTrash();
472 }
473
474 @Override
475 public boolean isInTrashContainer() {
476 try {
477 return _dlFileEntry.isInTrashContainer();
478 }
479 catch (Exception e) {
480 return false;
481 }
482 }
483
484 @Override
485 public boolean isManualCheckInRequired() {
486 return _dlFileEntry.isManualCheckInRequired();
487 }
488
489 @Override
490 public <T extends Capability> boolean isRepositoryCapabilityProvided(
491 Class<T> capabilityClass) {
492
493 Repository repository = getRepository();
494
495 return repository.isCapabilityProvided(capabilityClass);
496 }
497
498 @Override
499 public boolean isSupportsLocking() {
500 return true;
501 }
502
503 @Override
504 public boolean isSupportsMetadata() {
505 return true;
506 }
507
508 @Override
509 public boolean isSupportsSocial() {
510 return true;
511 }
512
513 public void setCachedFileVersion(FileVersion fileVersion) {
514 _dlFileVersion = (DLFileVersion)fileVersion.getModel();
515 }
516
517 @Override
518 public void setCompanyId(long companyId) {
519 _dlFileEntry.setCompanyId(companyId);
520 }
521
522 @Override
523 public void setCreateDate(Date date) {
524 _dlFileEntry.setCreateDate(date);
525 }
526
527 @Override
528 public void setGroupId(long groupId) {
529 _dlFileEntry.setGroupId(groupId);
530 }
531
532 @Override
533 public void setModifiedDate(Date date) {
534 _dlFileEntry.setModifiedDate(date);
535 }
536
537 public void setPrimaryKey(long primaryKey) {
538 _dlFileEntry.setPrimaryKey(primaryKey);
539 }
540
541 @Override
542 public void setPrimaryKeyObj(Serializable primaryKeyObj) {
543 setPrimaryKey(((Long)primaryKeyObj).longValue());
544 }
545
546 @Override
547 public void setUserId(long userId) {
548 _dlFileEntry.setUserId(userId);
549 }
550
551 @Override
552 public void setUserName(String userName) {
553 _dlFileEntry.setUserName(userName);
554 }
555
556 @Override
557 public void setUserUuid(String userUuid) {
558 _dlFileEntry.setUserUuid(userUuid);
559 }
560
561 @Override
562 public void setUuid(String uuid) {
563 _dlFileEntry.setUuid(uuid);
564 }
565
566 @Override
567 public FileEntry toEscapedModel() {
568 if (isEscapedModel()) {
569 return this;
570 }
571 else {
572 return new LiferayFileEntry(_dlFileEntry.toEscapedModel(), true);
573 }
574 }
575
576 @Override
577 public String toString() {
578 return _dlFileEntry.toString();
579 }
580
581 @Override
582 public FileEntry toUnescapedModel() {
583 if (isEscapedModel()) {
584 return new LiferayFileEntry(_dlFileEntry.toUnescapedModel(), true);
585 }
586 else {
587 return this;
588 }
589 }
590
591 protected Repository getRepository() {
592 try {
593 return RepositoryProviderUtil.getRepository(getRepositoryId());
594 }
595 catch (PortalException pe) {
596 throw new SystemException(
597 "Unable to get repository for file entry " + getFileEntryId(),
598 pe);
599 }
600 }
601
602 private static final Log _log = LogFactoryUtil.getLog(
603 LiferayFileEntry.class);
604
605 private final DLFileEntry _dlFileEntry;
606 private DLFileVersion _dlFileVersion;
607 private final boolean _escapedModel;
608
609 }