/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.repository.liferayrepository.model;
import com.liferay.document.library.kernel.model.DLFolder;
import com.liferay.document.library.kernel.model.DLFolderConstants;
import com.liferay.expando.kernel.model.ExpandoBridge;
import com.liferay.exportimport.kernel.lar.StagedModelType;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.repository.model.Folder;
import com.liferay.portal.kernel.repository.model.RepositoryModelOperation;
import com.liferay.portal.kernel.security.permission.PermissionChecker;
import com.liferay.portlet.documentlibrary.service.permission.DLFolderPermission;
import com.liferay.portlet.documentlibrary.util.RepositoryModelUtil;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* @author Alexander Chow
*/
public class LiferayFolder extends LiferayModel implements Folder {
public LiferayFolder(DLFolder dlFolder) {
_dlFolder = dlFolder;
if (dlFolder == null) {
_escapedModel = false;
}
else {
_escapedModel = dlFolder.isEscapedModel();
}
}
public LiferayFolder(DLFolder dlFolder, boolean escapedModel) {
_dlFolder = dlFolder;
_escapedModel = escapedModel;
}
@Override
public Object clone() {
return new LiferayFolder(_dlFolder);
}
@Override
public boolean containsPermission(
PermissionChecker permissionChecker, String actionId)
throws PortalException {
return DLFolderPermission.contains(
permissionChecker, _dlFolder, actionId);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof LiferayFolder)) {
return false;
}
LiferayFolder liferayFolder = (LiferayFolder)obj;
if (Objects.equals(_dlFolder, liferayFolder._dlFolder)) {
return true;
}
return false;
}
@Override
public void execute(RepositoryModelOperation repositoryModelOperation)
throws PortalException {
repositoryModelOperation.execute(this);
}
@Override
public List<Long> getAncestorFolderIds() throws PortalException {
return _dlFolder.getAncestorFolderIds();
}
@Override
public List<Folder> getAncestors() throws PortalException {
return RepositoryModelUtil.toFolders(_dlFolder.getAncestors());
}
@Override
public Map<String, Serializable> getAttributes() {
ExpandoBridge expandoBridge = getExpandoBridge();
return expandoBridge.getAttributes();
}
@Override
public long getCompanyId() {
return _dlFolder.getCompanyId();
}
@Override
public Date getCreateDate() {
return _dlFolder.getCreateDate();
}
@Override
public String getDescription() {
return _dlFolder.getDescription();
}
@Override
public ExpandoBridge getExpandoBridge() {
return _dlFolder.getExpandoBridge();
}
@Override
public long getFolderId() {
return _dlFolder.getFolderId();
}
@Override
public long getGroupId() {
return _dlFolder.getGroupId();
}
@Override
public Date getLastPostDate() {
return _dlFolder.getLastPostDate();
}
@Override
public Date getLastPublishDate() {
return _dlFolder.getLastPublishDate();
}
@Override
public Object getModel() {
return _dlFolder;
}
@Override
public Class<?> getModelClass() {
return LiferayFolder.class;
}
@Override
public String getModelClassName() {
return LiferayFolder.class.getName();
}
@Override
public Date getModifiedDate() {
return _dlFolder.getModifiedDate();
}
@Override
public String getName() {
return _dlFolder.getName();
}
@Override
public Folder getParentFolder() throws PortalException {
DLFolder dlParentFolder = _dlFolder.getParentFolder();
if (dlParentFolder == null) {
return null;
}
else {
return new LiferayFolder(dlParentFolder);
}
}
@Override
public long getParentFolderId() {
return _dlFolder.getParentFolderId();
}
@Override
public long getPrimaryKey() {
return _dlFolder.getPrimaryKey();
}
@Override
public Serializable getPrimaryKeyObj() {
return getPrimaryKey();
}
@Override
public long getRepositoryId() {
return _dlFolder.getRepositoryId();
}
@Override
public StagedModelType getStagedModelType() {
return new StagedModelType(DLFolderConstants.getClassName());
}
@Override
public long getUserId() {
return _dlFolder.getUserId();
}
@Override
public String getUserName() {
return _dlFolder.getUserName();
}
@Override
public String getUserUuid() {
return _dlFolder.getUserUuid();
}
@Override
public String getUuid() {
return _dlFolder.getUuid();
}
@Override
public int hashCode() {
return _dlFolder.hashCode();
}
@Override
public boolean hasInheritableLock() {
return _dlFolder.hasInheritableLock();
}
@Override
public boolean hasLock() {
return _dlFolder.hasLock();
}
@Override
public boolean isDefaultRepository() {
if (_dlFolder.getGroupId() == _dlFolder.getRepositoryId()) {
return true;
}
else {
return false;
}
}
@Override
public boolean isEscapedModel() {
return _escapedModel;
}
@Override
public boolean isLocked() {
return _dlFolder.isLocked();
}
@Override
public boolean isMountPoint() {
return _dlFolder.isMountPoint();
}
@Override
public boolean isRoot() {
return _dlFolder.isRoot();
}
@Override
public boolean isSupportsLocking() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public boolean isSupportsMetadata() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public boolean isSupportsMultipleUpload() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public boolean isSupportsShortcuts() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public boolean isSupportsSocial() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public boolean isSupportsSubscribing() {
if (isMountPoint()) {
return false;
}
else {
return true;
}
}
@Override
public void setCompanyId(long companyId) {
_dlFolder.setCompanyId(companyId);
}
@Override
public void setCreateDate(Date createDate) {
_dlFolder.setCreateDate(createDate);
}
@Override
public void setGroupId(long groupId) {
_dlFolder.setGroupId(groupId);
}
@Override
public void setLastPublishDate(Date lastPublishDate) {
_dlFolder.setLastPublishDate(lastPublishDate);
}
@Override
public void setModifiedDate(Date modifiedDate) {
_dlFolder.setModifiedDate(modifiedDate);
}
public void setPrimaryKey(long primaryKey) {
_dlFolder.setPrimaryKey(primaryKey);
}
@Override
public void setPrimaryKeyObj(Serializable primaryKeyObj) {
setPrimaryKey(((Long)primaryKeyObj).longValue());
}
@Override
public void setUserId(long userId) {
_dlFolder.setUserId(userId);
}
@Override
public void setUserName(String userName) {
_dlFolder.setUserName(userName);
}
@Override
public void setUserUuid(String userUuid) {
_dlFolder.setUserUuid(userUuid);
}
@Override
public void setUuid(String uuid) {
_dlFolder.setUuid(uuid);
}
@Override
public Folder toEscapedModel() {
if (isEscapedModel()) {
return this;
}
else {
return new LiferayFolder(_dlFolder.toEscapedModel(), true);
}
}
@Override
public String toString() {
return _dlFolder.toString();
}
@Override
public Folder toUnescapedModel() {
if (isEscapedModel()) {
return new LiferayFolder(_dlFolder.toUnescapedModel(), true);
}
else {
return this;
}
}
private final DLFolder _dlFolder;
private final boolean _escapedModel;
}