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