001
014
015 package com.liferay.portlet.bookmarks.trash;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.exception.SystemException;
019 import com.liferay.portal.kernel.trash.BaseTrashHandler;
020 import com.liferay.portal.kernel.trash.TrashHandler;
021 import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil;
022 import com.liferay.portal.kernel.trash.TrashRenderer;
023 import com.liferay.portal.model.ContainerModel;
024 import com.liferay.portlet.bookmarks.model.BookmarksEntry;
025 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
026 import com.liferay.portlet.bookmarks.service.BookmarksEntryLocalServiceUtil;
027 import com.liferay.portlet.bookmarks.service.BookmarksFolderLocalServiceUtil;
028
029 import java.util.ArrayList;
030 import java.util.List;
031
032
037 public abstract class BookmarksBaseTrashHandler extends BaseTrashHandler {
038
039 @Override
040 public ContainerModel getContainerModel(long containerModelId)
041 throws PortalException, SystemException {
042
043 return BookmarksFolderLocalServiceUtil.getFolder(containerModelId);
044 }
045
046 @Override
047 public String getContainerModelClassName() {
048 return BookmarksFolder.class.getName();
049 }
050
051 @Override
052 public String getContainerModelName() {
053 return "folder";
054 }
055
056 @Override
057 public List<ContainerModel> getContainerModels(
058 long classPK, long parentContainerModelId, int start, int end)
059 throws PortalException, SystemException {
060
061 List<BookmarksFolder> folders =
062 BookmarksFolderLocalServiceUtil.getFolders(
063 getGroupId(classPK), parentContainerModelId, start, end);
064
065 List<ContainerModel> containerModels = new ArrayList<ContainerModel>(
066 folders.size());
067
068 for (BookmarksFolder curFolder : folders) {
069 containerModels.add(curFolder);
070 }
071
072 return containerModels;
073 }
074
075 @Override
076 public int getContainerModelsCount(
077 long classPK, long parentContainerModelId)
078 throws PortalException, SystemException {
079
080 return BookmarksFolderLocalServiceUtil.getFoldersCount(
081 getGroupId(classPK), parentContainerModelId);
082 }
083
084 @Override
085 public List<ContainerModel> getParentContainerModels(long classPK)
086 throws PortalException, SystemException {
087
088 List<ContainerModel> containerModels = new ArrayList<ContainerModel>();
089
090 ContainerModel containerModel = getParentContainerModel(classPK);
091
092 if (containerModel == null) {
093 return containerModels;
094 }
095
096 containerModels.add(containerModel);
097
098 while (containerModel.getParentContainerModelId() > 0) {
099 containerModel = getContainerModel(
100 containerModel.getParentContainerModelId());
101
102 if (containerModel == null) {
103 break;
104 }
105
106 containerModels.add(containerModel);
107 }
108
109 return containerModels;
110 }
111
112 @Override
113 public String getRootContainerModelName() {
114 return "home";
115 }
116
117 @Override
118 public String getTrashContainedModelName() {
119 return "bookmarks";
120 }
121
122 @Override
123 public int getTrashContainedModelsCount(long classPK)
124 throws PortalException, SystemException {
125
126 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
127 classPK);
128
129 return BookmarksEntryLocalServiceUtil.getEntriesCount(
130 folder.getGroupId(), classPK);
131 }
132
133 @Override
134 public List<TrashRenderer> getTrashContainedModelTrashRenderers(
135 long classPK, int start, int end)
136 throws PortalException, SystemException {
137
138 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
139
140 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
141 classPK);
142
143 List<BookmarksEntry> entries =
144 BookmarksEntryLocalServiceUtil.getEntries(
145 folder.getGroupId(), classPK, start, end);
146
147 for (BookmarksEntry entry : entries) {
148 TrashHandler trashHandler =
149 TrashHandlerRegistryUtil.getTrashHandler(
150 BookmarksEntry.class.getName());
151
152 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
153 entry.getEntryId());
154
155 trashRenderers.add(trashRenderer);
156 }
157
158 return trashRenderers;
159 }
160
161 @Override
162 public String getTrashContainerModelName() {
163 return "folders";
164 }
165
166 @Override
167 public int getTrashContainerModelsCount(long classPK)
168 throws PortalException, SystemException {
169
170 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
171 classPK);
172
173 return BookmarksFolderLocalServiceUtil.getFoldersCount(
174 folder.getGroupId(), classPK);
175 }
176
177 @Override
178 public List<TrashRenderer> getTrashContainerModelTrashRenderers(
179 long classPK, int start, int end)
180 throws PortalException, SystemException {
181
182 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
183
184 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
185 classPK);
186
187 List<BookmarksFolder> folders =
188 BookmarksFolderLocalServiceUtil.getFolders(
189 folder.getGroupId(), classPK, start, end);
190
191 for (BookmarksFolder curFolder : folders) {
192 TrashHandler trashHandler =
193 TrashHandlerRegistryUtil.getTrashHandler(
194 BookmarksFolder.class.getName());
195
196 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
197 curFolder.getPrimaryKey());
198
199 trashRenderers.add(trashRenderer);
200 }
201
202 return trashRenderers;
203 }
204
205 @Override
206 public boolean isMovable() {
207 return true;
208 }
209
210 protected abstract long getGroupId(long classPK)
211 throws PortalException, SystemException;
212
213 }