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