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