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