001
014
015 package com.liferay.portlet.messageboards.trash;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.repository.model.FileEntry;
019 import com.liferay.portal.kernel.trash.BaseTrashHandler;
020 import com.liferay.portal.model.ContainerModel;
021 import com.liferay.portal.model.TrashedModel;
022 import com.liferay.portal.portletfilerepository.PortletFileRepositoryUtil;
023 import com.liferay.portal.security.permission.PermissionChecker;
024 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
025 import com.liferay.portlet.messageboards.model.MBMessage;
026 import com.liferay.portlet.messageboards.model.MBThread;
027 import com.liferay.portlet.messageboards.service.MBMessageLocalServiceUtil;
028 import com.liferay.portlet.messageboards.service.MBMessageServiceUtil;
029 import com.liferay.portlet.messageboards.service.MBThreadLocalServiceUtil;
030 import com.liferay.portlet.messageboards.service.permission.MBMessagePermission;
031 import com.liferay.portlet.messageboards.util.MBMessageAttachmentsUtil;
032 import com.liferay.portlet.trash.model.TrashEntry;
033
034
039 public class MBMessageTrashHandler extends BaseTrashHandler {
040
041 @Override
042 public void deleteTrashEntry(long classPK) {
043 }
044
045 @Override
046 public String getClassName() {
047 return MBMessage.class.getName();
048 }
049
050 @Override
051 public ContainerModel getContainerModel(long containerModelId)
052 throws PortalException {
053
054 return MBThreadLocalServiceUtil.getThread(containerModelId);
055 }
056
057 @Override
058 public String getContainerModelClassName(long classPK) {
059 return MBThread.class.getName();
060 }
061
062 @Override
063 public ContainerModel getParentContainerModel(TrashedModel trashedModel)
064 throws PortalException {
065
066 MBMessage message = (MBMessage)trashedModel;
067
068 return getContainerModel(message.getThreadId());
069 }
070
071 @Override
072 public TrashEntry getTrashEntry(long classPK) throws PortalException {
073 MBMessage message = MBMessageLocalServiceUtil.getMessage(classPK);
074
075 return message.getTrashEntry();
076 }
077
078 @Override
079 public boolean isDeletable() {
080 return false;
081 }
082
083 @Override
084 public boolean isInTrash(long classPK) throws PortalException {
085 MBMessage message = MBMessageLocalServiceUtil.getMessage(classPK);
086
087 return message.isInTrash();
088 }
089
090 @Override
091 public boolean isInTrashContainer(long classPK) throws PortalException {
092 MBMessage message = MBMessageLocalServiceUtil.getMessage(classPK);
093
094 return message.isInTrashContainer();
095 }
096
097 @Override
098 public void restoreRelatedTrashEntry(String className, long classPK)
099 throws PortalException {
100
101 if (!className.equals(DLFileEntry.class.getName())) {
102 return;
103 }
104
105 FileEntry fileEntry = PortletFileRepositoryUtil.getPortletFileEntry(
106 classPK);
107
108 MBMessage message = MBMessageAttachmentsUtil.getMessage(classPK);
109
110 MBMessageServiceUtil.restoreMessageAttachmentFromTrash(
111 message.getMessageId(), fileEntry.getTitle());
112 }
113
114 @Override
115 public void restoreTrashEntry(long userId, long classPK) {
116 }
117
118 @Override
119 protected boolean hasPermission(
120 PermissionChecker permissionChecker, long classPK, String actionId)
121 throws PortalException {
122
123 return MBMessagePermission.contains(
124 permissionChecker, classPK, actionId);
125 }
126
127 }