001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
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.repository.model.FileEntry;
021    import com.liferay.portal.kernel.repository.model.FileVersion;
022    import com.liferay.portal.kernel.util.Validator;
023    import com.liferay.portal.security.auth.PrincipalThreadLocal;
024    import com.liferay.portlet.documentlibrary.model.DLFileVersion;
025    import com.liferay.portlet.documentlibrary.model.DLFolder;
026    import com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil;
027    import com.liferay.portlet.expando.model.ExpandoBridge;
028    
029    import java.io.File;
030    import java.io.InputStream;
031    import java.io.Serializable;
032    
033    import java.util.Date;
034    import java.util.Map;
035    
036    /**
037     * @author Alexander Chow
038     */
039    public class LiferayFileVersion extends LiferayModel implements FileVersion {
040    
041            public LiferayFileVersion(DLFileVersion dlFileVersion) {
042                    _dlFileVersion = dlFileVersion;
043            }
044    
045            public LiferayFileVersion(
046                    DLFileVersion dlFileVersion, boolean escapedModel) {
047    
048                    _dlFileVersion = dlFileVersion;
049                    _escapedModel = escapedModel;
050            }
051    
052            @Override
053            public Object clone() {
054                    LiferayFileVersion liferayFileVersion = new LiferayFileVersion(
055                            _dlFileVersion, _escapedModel);
056    
057                    liferayFileVersion.setCompanyId(getCompanyId());
058                    liferayFileVersion.setCreateDate(getCreateDate());
059                    liferayFileVersion.setGroupId(getGroupId());
060                    liferayFileVersion.setPrimaryKey(getPrimaryKey());
061                    liferayFileVersion.setUserId(getUserId());
062                    liferayFileVersion.setUserName(getUserName());
063    
064                    try {
065                            liferayFileVersion.setUserUuid(getUserUuid());
066                    }
067                    catch (Exception e) {
068                    }
069    
070                    liferayFileVersion.setUuid(getUuid());
071    
072                    return liferayFileVersion;
073            }
074    
075            @Override
076            public boolean equals(Object obj) {
077                    if (this == obj) {
078                            return true;
079                    }
080    
081                    if (!(obj instanceof LiferayFileVersion)) {
082                            return false;
083                    }
084    
085                    LiferayFileVersion liferayFileVersion = (LiferayFileVersion)obj;
086    
087                    if (Validator.equals(
088                                    _dlFileVersion, liferayFileVersion._dlFileVersion)) {
089    
090                            return true;
091                    }
092    
093                    return false;
094            }
095    
096            @Override
097            public Map<String, Serializable> getAttributes() {
098                    ExpandoBridge expandoBridge = _dlFileVersion.getExpandoBridge();
099    
100                    return expandoBridge.getAttributes();
101            }
102    
103            @Override
104            public String getChangeLog() {
105                    return _dlFileVersion.getChangeLog();
106            }
107    
108            @Override
109            public long getCompanyId() {
110                    return _dlFileVersion.getCompanyId();
111            }
112    
113            @Override
114            public InputStream getContentStream(boolean incrementCounter)
115                    throws PortalException, SystemException {
116    
117                    return _dlFileVersion.getContentStream(incrementCounter);
118            }
119    
120            @Override
121            public Date getCreateDate() {
122                    return _dlFileVersion.getCreateDate();
123            }
124    
125            @Override
126            public String getDescription() {
127                    return _dlFileVersion.getDescription();
128            }
129    
130            @Override
131            public ExpandoBridge getExpandoBridge() {
132                    return _dlFileVersion.getExpandoBridge();
133            }
134    
135            @Override
136            public String getExtension() {
137                    return _dlFileVersion.getExtension();
138            }
139    
140            @Override
141            public String getExtraSettings() {
142                    return _dlFileVersion.getExtraSettings();
143            }
144    
145            public File getFile(boolean incrementCounter)
146                    throws PortalException, SystemException {
147    
148                    return DLFileEntryLocalServiceUtil.getFile(
149                            PrincipalThreadLocal.getUserId(), _dlFileVersion.getFileEntryId(),
150                            _dlFileVersion.getVersion(), incrementCounter);
151            }
152    
153            @Override
154            public FileEntry getFileEntry() throws PortalException, SystemException {
155                    return new LiferayFileEntry(_dlFileVersion.getFileEntry());
156            }
157    
158            @Override
159            public long getFileEntryId() {
160                    return _dlFileVersion.getFileEntryId();
161            }
162    
163            @Override
164            public long getFileVersionId() {
165                    return _dlFileVersion.getFileVersionId();
166            }
167    
168            @Override
169            public long getGroupId() {
170                    return _dlFileVersion.getGroupId();
171            }
172    
173            @Override
174            public String getIcon() {
175                    return _dlFileVersion.getIcon();
176            }
177    
178            @Override
179            public String getMimeType() {
180                    return _dlFileVersion.getMimeType();
181            }
182    
183            @Override
184            public Object getModel() {
185                    return _dlFileVersion;
186            }
187    
188            @Override
189            public Class<?> getModelClass() {
190                    return LiferayFileVersion.class;
191            }
192    
193            @Override
194            public String getModelClassName() {
195                    return LiferayFileVersion.class.getName();
196            }
197    
198            @Override
199            public Date getModifiedDate() {
200                    return _dlFileVersion.getModifiedDate();
201            }
202    
203            @Override
204            public long getPrimaryKey() {
205                    return _dlFileVersion.getPrimaryKey();
206            }
207    
208            @Override
209            public Serializable getPrimaryKeyObj() {
210                    return getPrimaryKey();
211            }
212    
213            @Override
214            public long getRepositoryId() {
215                    return _dlFileVersion.getRepositoryId();
216            }
217    
218            @Override
219            public long getSize() {
220                    return _dlFileVersion.getSize();
221            }
222    
223            @Override
224            public StagedModelType getStagedModelType() {
225                    return new StagedModelType(FileVersion.class);
226            }
227    
228            @Override
229            public int getStatus() {
230                    return _dlFileVersion.getStatus();
231            }
232    
233            @Override
234            public long getStatusByUserId() {
235                    return _dlFileVersion.getStatusByUserId();
236            }
237    
238            @Override
239            public String getStatusByUserName() {
240                    return _dlFileVersion.getStatusByUserName();
241            }
242    
243            @Override
244            public String getStatusByUserUuid() throws SystemException {
245                    return _dlFileVersion.getStatusByUserUuid();
246            }
247    
248            @Override
249            public Date getStatusDate() {
250                    return _dlFileVersion.getStatusDate();
251            }
252    
253            @Override
254            public String getTitle() {
255                    return _dlFileVersion.getTitle();
256            }
257    
258            public DLFolder getTrashContainer() {
259                    DLFolder dlFolder = null;
260    
261                    try {
262                            dlFolder = _dlFileVersion.getTrashContainer();
263                    }
264                    catch (Exception e) {
265                            return null;
266                    }
267    
268                    return dlFolder;
269            }
270    
271            @Override
272            public long getUserId() {
273                    return _dlFileVersion.getUserId();
274            }
275    
276            @Override
277            public String getUserName() {
278                    return _dlFileVersion.getUserName();
279            }
280    
281            @Override
282            public String getUserUuid() throws SystemException {
283                    return _dlFileVersion.getUserUuid();
284            }
285    
286            @Override
287            public String getUuid() {
288                    return _dlFileVersion.getUuid();
289            }
290    
291            @Override
292            public String getVersion() {
293                    return _dlFileVersion.getVersion();
294            }
295    
296            @Override
297            public boolean isApproved() {
298                    return _dlFileVersion.isApproved();
299            }
300    
301            @Override
302            public boolean isDefaultRepository() {
303                    if (_dlFileVersion.getGroupId() == _dlFileVersion.getRepositoryId()) {
304                            return true;
305                    }
306                    else {
307                            return false;
308                    }
309            }
310    
311            @Override
312            public boolean isDraft() {
313                    return _dlFileVersion.isDraft();
314            }
315    
316            @Override
317            public boolean isEscapedModel() {
318                    return _escapedModel;
319            }
320    
321            @Override
322            public boolean isExpired() {
323                    return _dlFileVersion.isExpired();
324            }
325    
326            @Override
327            public boolean isInTrash() {
328                    return _dlFileVersion.isInTrash();
329            }
330    
331            @Override
332            public boolean isInTrashContainer() {
333                    try {
334                            return _dlFileVersion.isInTrashContainer();
335                    }
336                    catch (Exception e) {
337                            return false;
338                    }
339            }
340    
341            @Override
342            public boolean isPending() {
343                    return _dlFileVersion.isPending();
344            }
345    
346            @Override
347            public void setCompanyId(long companyId) {
348                    _dlFileVersion.setCompanyId(companyId);
349            }
350    
351            @Override
352            public void setCreateDate(Date date) {
353                    _dlFileVersion.setCreateDate(date);
354            }
355    
356            @Override
357            public void setGroupId(long groupId) {
358                    _dlFileVersion.setGroupId(groupId);
359            }
360    
361            @Override
362            public void setModifiedDate(Date date) {
363            }
364    
365            public void setPrimaryKey(long primaryKey) {
366                    _dlFileVersion.setPrimaryKey(primaryKey);
367            }
368    
369            @Override
370            public void setPrimaryKeyObj(Serializable primaryKeyObj) {
371                    setPrimaryKey(((Long)primaryKeyObj).longValue());
372            }
373    
374            @Override
375            public void setUserId(long userId) {
376                    _dlFileVersion.setUserId(userId);
377            }
378    
379            @Override
380            public void setUserName(String userName) {
381                    _dlFileVersion.setUserName(userName);
382            }
383    
384            @Override
385            public void setUserUuid(String userUuid) {
386                    _dlFileVersion.setUserUuid(userUuid);
387            }
388    
389            @Override
390            public void setUuid(String uuid) {
391                    _dlFileVersion.setUuid(uuid);
392            }
393    
394            @Override
395            public FileVersion toEscapedModel() {
396                    if (isEscapedModel()) {
397                            return this;
398                    }
399                    else {
400                            return new LiferayFileVersion(
401                                    _dlFileVersion.toEscapedModel(), true);
402                    }
403            }
404    
405            @Override
406            public String toString() {
407                    return _dlFileVersion.toString();
408            }
409    
410            @Override
411            public FileVersion toUnescapedModel() {
412                    if (isEscapedModel()) {
413                            return new LiferayFileVersion(
414                                    _dlFileVersion.toUnescapedModel(), true);
415                    }
416                    else {
417                            return this;
418                    }
419            }
420    
421            private DLFileVersion _dlFileVersion;
422            private boolean _escapedModel;
423    
424    }