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