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