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.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.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                    _dlFileVersion = dlFileVersion;
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 Map<String, Serializable> getAttributes() {
100                    ExpandoBridge expandoBridge = _dlFileVersion.getExpandoBridge();
101    
102                    return expandoBridge.getAttributes();
103            }
104    
105            @Override
106            public String getChangeLog() {
107                    return _dlFileVersion.getChangeLog();
108            }
109    
110            @Override
111            public long getCompanyId() {
112                    return _dlFileVersion.getCompanyId();
113            }
114    
115            @Override
116            public InputStream getContentStream(boolean incrementCounter)
117                    throws PortalException, SystemException {
118    
119                    InputStream inputStream = _dlFileVersion.getContentStream(
120                            incrementCounter);
121    
122                    try {
123                            DLAppHelperLocalServiceUtil.getFileAsStream(
124                                    PrincipalThreadLocal.getUserId(), getFileEntry(),
125                                    incrementCounter);
126                    }
127                    catch (Exception e) {
128                            _log.error(e, e);
129                    }
130    
131                    return inputStream;
132            }
133    
134            @Override
135            public Date getCreateDate() {
136                    return _dlFileVersion.getCreateDate();
137            }
138    
139            @Override
140            public String getDescription() {
141                    return _dlFileVersion.getDescription();
142            }
143    
144            @Override
145            public ExpandoBridge getExpandoBridge() {
146                    return _dlFileVersion.getExpandoBridge();
147            }
148    
149            @Override
150            public String getExtension() {
151                    return _dlFileVersion.getExtension();
152            }
153    
154            @Override
155            public String getExtraSettings() {
156                    return _dlFileVersion.getExtraSettings();
157            }
158    
159            public File getFile(boolean incrementCounter)
160                    throws PortalException, SystemException {
161    
162                    return DLFileEntryLocalServiceUtil.getFile(
163                            PrincipalThreadLocal.getUserId(), _dlFileVersion.getFileEntryId(),
164                            _dlFileVersion.getVersion(), incrementCounter);
165            }
166    
167            @Override
168            public FileEntry getFileEntry() throws PortalException, SystemException {
169                    return new LiferayFileEntry(_dlFileVersion.getFileEntry());
170            }
171    
172            @Override
173            public long getFileEntryId() {
174                    return _dlFileVersion.getFileEntryId();
175            }
176    
177            @Override
178            public long getFileVersionId() {
179                    return _dlFileVersion.getFileVersionId();
180            }
181    
182            @Override
183            public long getGroupId() {
184                    return _dlFileVersion.getGroupId();
185            }
186    
187            @Override
188            public String getIcon() {
189                    return _dlFileVersion.getIcon();
190            }
191    
192            @Override
193            public String getMimeType() {
194                    return _dlFileVersion.getMimeType();
195            }
196    
197            @Override
198            public Object getModel() {
199                    return _dlFileVersion;
200            }
201    
202            @Override
203            public Class<?> getModelClass() {
204                    return LiferayFileVersion.class;
205            }
206    
207            @Override
208            public String getModelClassName() {
209                    return LiferayFileVersion.class.getName();
210            }
211    
212            @Override
213            public Date getModifiedDate() {
214                    return _dlFileVersion.getModifiedDate();
215            }
216    
217            @Override
218            public long getPrimaryKey() {
219                    return _dlFileVersion.getPrimaryKey();
220            }
221    
222            @Override
223            public Serializable getPrimaryKeyObj() {
224                    return getPrimaryKey();
225            }
226    
227            @Override
228            public long getRepositoryId() {
229                    return _dlFileVersion.getRepositoryId();
230            }
231    
232            @Override
233            public long getSize() {
234                    return _dlFileVersion.getSize();
235            }
236    
237            @Override
238            public StagedModelType getStagedModelType() {
239                    return new StagedModelType(FileVersion.class);
240            }
241    
242            @Override
243            public int getStatus() {
244                    return _dlFileVersion.getStatus();
245            }
246    
247            @Override
248            public long getStatusByUserId() {
249                    return _dlFileVersion.getStatusByUserId();
250            }
251    
252            @Override
253            public String getStatusByUserName() {
254                    return _dlFileVersion.getStatusByUserName();
255            }
256    
257            @Override
258            public String getStatusByUserUuid() throws SystemException {
259                    return _dlFileVersion.getStatusByUserUuid();
260            }
261    
262            @Override
263            public Date getStatusDate() {
264                    return _dlFileVersion.getStatusDate();
265            }
266    
267            @Override
268            public String getTitle() {
269                    return _dlFileVersion.getTitle();
270            }
271    
272            @Override
273            public long getUserId() {
274                    return _dlFileVersion.getUserId();
275            }
276    
277            @Override
278            public String getUserName() {
279                    return _dlFileVersion.getUserName();
280            }
281    
282            @Override
283            public String getUserUuid() throws SystemException {
284                    return _dlFileVersion.getUserUuid();
285            }
286    
287            @Override
288            public String getUuid() {
289                    return _dlFileVersion.getUuid();
290            }
291    
292            @Override
293            public String getVersion() {
294                    return _dlFileVersion.getVersion();
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 date) {
339                    _dlFileVersion.setCreateDate(date);
340            }
341    
342            @Override
343            public void setGroupId(long groupId) {
344                    _dlFileVersion.setGroupId(groupId);
345            }
346    
347            @Override
348            public void setModifiedDate(Date date) {
349            }
350    
351            public void setPrimaryKey(long primaryKey) {
352                    _dlFileVersion.setPrimaryKey(primaryKey);
353            }
354    
355            @Override
356            public void setPrimaryKeyObj(Serializable primaryKeyObj) {
357                    setPrimaryKey(((Long)primaryKeyObj).longValue());
358            }
359    
360            @Override
361            public void setUserId(long userId) {
362                    _dlFileVersion.setUserId(userId);
363            }
364    
365            @Override
366            public void setUserName(String userName) {
367                    _dlFileVersion.setUserName(userName);
368            }
369    
370            @Override
371            public void setUserUuid(String userUuid) {
372                    _dlFileVersion.setUserUuid(userUuid);
373            }
374    
375            @Override
376            public void setUuid(String uuid) {
377                    _dlFileVersion.setUuid(uuid);
378            }
379    
380            @Override
381            public FileVersion toEscapedModel() {
382                    if (isEscapedModel()) {
383                            return this;
384                    }
385                    else {
386                            return new LiferayFileVersion(
387                                    _dlFileVersion.toEscapedModel(), true);
388                    }
389            }
390    
391            @Override
392            public String toString() {
393                    return _dlFileVersion.toString();
394            }
395    
396            @Override
397            public FileVersion toUnescapedModel() {
398                    if (isEscapedModel()) {
399                            return new LiferayFileVersion(
400                                    _dlFileVersion.toUnescapedModel(), true);
401                    }
402                    else {
403                            return this;
404                    }
405            }
406    
407            private static Log _log = LogFactoryUtil.getLog(LiferayFileVersion.class);
408    
409            private DLFileVersion _dlFileVersion;
410            private boolean _escapedModel;
411    
412    }