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