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