com.liferay.portal.kernel.trash.BaseTrashHandler Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.portal.kernel Show documentation
Show all versions of com.liferay.portal.kernel Show documentation
Contains interfaces for the portal services. Interfaces are only loaded by the global class loader and are shared by all plugins.
/**
* 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.kernel.trash;
import aQute.bnd.annotation.ProviderType;
import com.liferay.asset.kernel.AssetRendererFactoryRegistryUtil;
import com.liferay.asset.kernel.model.AssetRenderer;
import com.liferay.asset.kernel.model.AssetRendererFactory;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.model.ContainerModel;
import com.liferay.portal.kernel.model.SystemEvent;
import com.liferay.portal.kernel.model.SystemEventConstants;
import com.liferay.portal.kernel.model.TrashedModel;
import com.liferay.portal.kernel.search.Query;
import com.liferay.portal.kernel.search.SearchContext;
import com.liferay.portal.kernel.search.filter.Filter;
import com.liferay.portal.kernel.security.permission.ActionKeys;
import com.liferay.portal.kernel.security.permission.PermissionChecker;
import com.liferay.portal.kernel.service.ServiceContext;
import com.liferay.portal.kernel.service.SystemEventLocalServiceUtil;
import com.liferay.portal.kernel.util.OrderByComparator;
import com.liferay.portal.kernel.util.StringPool;
import com.liferay.trash.kernel.model.TrashEntry;
import java.util.Collections;
import java.util.List;
import javax.portlet.PortletRequest;
/**
* Provides the base implementation of {@link TrashHandler}.
*
* @author Alexander Chow
* @author Zsolt Berentey
* @see TrashHandler
*/
@ProviderType
public abstract class BaseTrashHandler implements TrashHandler {
@Override
public SystemEvent addDeletionSystemEvent(
long userId, long groupId, long classPK, String classUuid,
String referrerClassName)
throws PortalException {
JSONObject extraDataJSONObject = JSONFactoryUtil.createJSONObject();
extraDataJSONObject.put("inTrash", true);
return SystemEventLocalServiceUtil.addSystemEvent(
userId, groupId, getSystemEventClassName(), classPK, classUuid,
referrerClassName, SystemEventConstants.TYPE_DELETE,
extraDataJSONObject.toString());
}
/**
* @deprecated As of 7.0.0, replaced by {@link #checkRestorableEntry(long,
* long, String)}
*/
@Deprecated
@Override
public void checkDuplicateEntry(
long classPK, long containerModelId, String newName)
throws PortalException {
checkRestorableEntry(classPK, containerModelId, newName);
}
/**
* @deprecated As of 7.0.0, replaced by {@link
* #checkRestorableEntry(TrashEntry, long, String)}
*/
@Deprecated
@Override
public void checkDuplicateTrashEntry(
TrashEntry trashEntry, long containerModelId, String newName)
throws PortalException {
checkRestorableEntry(trashEntry, containerModelId, newName);
}
@Override
@SuppressWarnings("unused")
public void checkRestorableEntry(
long classPK, long containerModelId, String newName)
throws PortalException {
}
@Override
@SuppressWarnings("unused")
public void checkRestorableEntry(
TrashEntry trashEntry, long containerModelId, String newName)
throws PortalException {
}
@Override
@SuppressWarnings("unused")
public ContainerModel getContainerModel(long containerModelId)
throws PortalException {
return null;
}
/**
* @deprecated As of 7.0.0, replaced by {@link #getContainerModel(long)}
*/
@Deprecated
@Override
public String getContainerModelClassName() {
return getContainerModelClassName(0);
}
@Override
public String getContainerModelClassName(long classPK) {
return StringPool.BLANK;
}
@Override
public String getContainerModelName() {
return StringPool.BLANK;
}
@Override
@SuppressWarnings("unused")
public List getContainerModels(
long classPK, long containerModelId, int start, int end)
throws PortalException {
return Collections.emptyList();
}
@Override
@SuppressWarnings("unused")
public int getContainerModelsCount(long classPK, long containerModelId)
throws PortalException {
return 0;
}
@Override
public String getDeleteMessage() {
return "deleted-in-x";
}
@Override
public long getDestinationContainerModelId(
long classPK, long destinationContainerModelId) {
return destinationContainerModelId;
}
@Override
public Filter getExcludeFilter(SearchContext searchContext) {
return null;
}
/**
* @deprecated As of 7.0.0, replaced by {@link
* #getExcludeFilter(SearchContext)}
*/
@Deprecated
@Override
public Query getExcludeQuery(SearchContext searchContext) {
return null;
}
@Override
@SuppressWarnings("unused")
public ContainerModel getParentContainerModel(long classPK)
throws PortalException {
return null;
}
@Override
public ContainerModel getParentContainerModel(TrashedModel trashedModel)
throws PortalException {
if ((trashedModel == null) ||
!(trashedModel instanceof ContainerModel)) {
return null;
}
ContainerModel containerModel = (ContainerModel)trashedModel;
return getContainerModel(containerModel.getParentContainerModelId());
}
@Override
@SuppressWarnings("unused")
public List getParentContainerModels(long classPK)
throws PortalException {
return Collections.emptyList();
}
@Override
@SuppressWarnings("unused")
public String getRestoreContainedModelLink(
PortletRequest portletRequest, long classPK)
throws PortalException {
return StringPool.BLANK;
}
@Override
@SuppressWarnings("unused")
public String getRestoreContainerModelLink(
PortletRequest portletRequest, long classPK)
throws PortalException {
return StringPool.BLANK;
}
@Override
@SuppressWarnings("unused")
public String getRestoreMessage(PortletRequest portletRequest, long classPK)
throws PortalException {
return StringPool.BLANK;
}
@Override
public String getRootContainerModelName() {
return StringPool.BLANK;
}
@Override
public String getSubcontainerModelName() {
return StringPool.BLANK;
}
@Override
public String getSystemEventClassName() {
return getClassName();
}
@Override
public String getTrashContainedModelName() {
return StringPool.BLANK;
}
@Override
@SuppressWarnings("unused")
public int getTrashContainedModelsCount(long classPK)
throws PortalException {
return 0;
}
@Override
@SuppressWarnings("unused")
public List getTrashContainedModelTrashRenderers(
long classPK, int start, int end)
throws PortalException {
return Collections.emptyList();
}
@Override
public String getTrashContainerModelName() {
return StringPool.BLANK;
}
@Override
@SuppressWarnings("unused")
public int getTrashContainerModelsCount(long classPK)
throws PortalException {
return 0;
}
@Override
@SuppressWarnings("unused")
public List getTrashContainerModelTrashRenderers(
long classPK, int start, int end)
throws PortalException {
return Collections.emptyList();
}
@Override
@SuppressWarnings("unused")
public TrashEntry getTrashEntry(long classPK) throws PortalException {
return null;
}
@Override
@SuppressWarnings("unused")
public int getTrashModelsCount(long classPK) throws PortalException {
return 0;
}
@Override
@SuppressWarnings("unused")
public List getTrashModelTrashRenderers(
long classPK, int start, int end, OrderByComparator> obc)
throws PortalException {
return Collections.emptyList();
}
@Override
public TrashRenderer getTrashRenderer(long classPK) throws PortalException {
AssetRendererFactory> assetRendererFactory =
getAssetRendererFactory();
if (assetRendererFactory != null) {
AssetRenderer> assetRenderer =
assetRendererFactory.getAssetRenderer(classPK);
if (assetRenderer instanceof TrashRenderer) {
return (TrashRenderer)assetRenderer;
}
}
return null;
}
@Override
public boolean hasTrashPermission(
PermissionChecker permissionChecker, long groupId, long classPK,
String trashActionId)
throws PortalException {
String actionId = trashActionId;
if (trashActionId.equals(ActionKeys.DELETE)) {
actionId = ActionKeys.DELETE;
}
else if (trashActionId.equals(TrashActionKeys.OVERWRITE)) {
actionId = ActionKeys.DELETE;
}
else if (trashActionId.equals(TrashActionKeys.MOVE)) {
return false;
}
else if (trashActionId.equals(TrashActionKeys.RENAME)) {
actionId = ActionKeys.UPDATE;
}
else if (trashActionId.equals(TrashActionKeys.RESTORE)) {
actionId = ActionKeys.DELETE;
}
return hasPermission(permissionChecker, classPK, actionId);
}
@Override
public boolean isContainerModel() {
return false;
}
@Override
public boolean isDeletable() {
return true;
}
@Override
@SuppressWarnings("unused")
public boolean isInTrashContainer(long classPK) throws PortalException {
return false;
}
@Override
public boolean isMovable() {
return false;
}
@Override
@SuppressWarnings("unused")
public boolean isRestorable(long classPK) throws PortalException {
return true;
}
@Override
@SuppressWarnings("unused")
public void moveEntry(
long userId, long classPK, long containerModelId,
ServiceContext serviceContext)
throws PortalException {
}
@Override
public void moveTrashEntry(
long userId, long classPK, long containerModelId,
ServiceContext serviceContext)
throws PortalException {
if (isRestorable(classPK)) {
restoreTrashEntry(userId, classPK);
}
Class> clazz = getClass();
_log.error("moveTrashEntry() is not implemented in " + clazz.getName());
throw new SystemException();
}
@Override
@SuppressWarnings("unused")
public void restoreRelatedTrashEntry(String className, long classPK)
throws PortalException {
}
@Override
@SuppressWarnings("unused")
public void updateTitle(long classPK, String title) throws PortalException {
}
protected AssetRendererFactory> getAssetRendererFactory() {
return AssetRendererFactoryRegistryUtil.
getAssetRendererFactoryByClassName(getClassName());
}
protected abstract boolean hasPermission(
PermissionChecker permissionChecker, long classPK, String actionId)
throws PortalException;
private static final Log _log = LogFactoryUtil.getLog(
BaseTrashHandler.class);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy