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 BookmarksFolder folder = getBookmarksFolder(classPK);
062
063 List<BookmarksFolder> folders =
064 BookmarksFolderLocalServiceUtil.getFolders(
065 folder.getGroupId(), parentContainerModelId, start, end);
066
067 List<ContainerModel> containerModels = new ArrayList<ContainerModel>(
068 folders.size());
069
070 for (BookmarksFolder curFolder : folders) {
071 containerModels.add(curFolder);
072 }
073
074 return containerModels;
075 }
076
077 @Override
078 public int getContainerModelsCount(
079 long classPK, long parentContainerModelId)
080 throws PortalException, SystemException {
081
082 BookmarksFolder folder = getBookmarksFolder(classPK);
083
084 return BookmarksFolderLocalServiceUtil.getFoldersCount(
085 folder.getGroupId(), parentContainerModelId);
086 }
087
088 @Override
089 public List<ContainerModel> getParentContainerModels(long classPK)
090 throws PortalException, SystemException {
091
092 List<ContainerModel> containerModels = new ArrayList<ContainerModel>();
093
094 ContainerModel containerModel = getParentContainerModel(classPK);
095
096 if (containerModel == null) {
097 return containerModels;
098 }
099
100 containerModels.add(containerModel);
101
102 while (containerModel.getParentContainerModelId() > 0) {
103 containerModel = getContainerModel(
104 containerModel.getParentContainerModelId());
105
106 if (containerModel == null) {
107 break;
108 }
109
110 containerModels.add(containerModel);
111 }
112
113 return containerModels;
114 }
115
116 @Override
117 public String getRootContainerModelName() {
118 return "home";
119 }
120
121 @Override
122 public String getTrashContainedModelName() {
123 return "bookmarks";
124 }
125
126 @Override
127 public int getTrashContainedModelsCount(long classPK)
128 throws PortalException, SystemException {
129
130 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
131 classPK);
132
133 return BookmarksEntryLocalServiceUtil.getEntriesCount(
134 folder.getGroupId(), classPK);
135 }
136
137 @Override
138 public List<TrashRenderer> getTrashContainedModelTrashRenderers(
139 long classPK, int start, int end)
140 throws PortalException, SystemException {
141
142 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
143
144 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
145 classPK);
146
147 List<BookmarksEntry> entries =
148 BookmarksEntryLocalServiceUtil.getEntries(
149 folder.getGroupId(), classPK, start, end);
150
151 for (BookmarksEntry entry : entries) {
152 TrashHandler trashHandler =
153 TrashHandlerRegistryUtil.getTrashHandler(
154 BookmarksEntry.class.getName());
155
156 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
157 entry.getEntryId());
158
159 trashRenderers.add(trashRenderer);
160 }
161
162 return trashRenderers;
163 }
164
165 @Override
166 public String getTrashContainerModelName() {
167 return "folders";
168 }
169
170 @Override
171 public int getTrashContainerModelsCount(long classPK)
172 throws PortalException, SystemException {
173
174 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
175 classPK);
176
177 return BookmarksFolderLocalServiceUtil.getFoldersCount(
178 folder.getGroupId(), classPK);
179 }
180
181 @Override
182 public List<TrashRenderer> getTrashContainerModelTrashRenderers(
183 long classPK, int start, int end)
184 throws PortalException, SystemException {
185
186 List<TrashRenderer> trashRenderers = new ArrayList<TrashRenderer>();
187
188 BookmarksFolder folder = BookmarksFolderLocalServiceUtil.getFolder(
189 classPK);
190
191 List<BookmarksFolder> folders =
192 BookmarksFolderLocalServiceUtil.getFolders(
193 folder.getGroupId(), classPK, start, end);
194
195 for (BookmarksFolder curFolder : folders) {
196 TrashHandler trashHandler =
197 TrashHandlerRegistryUtil.getTrashHandler(
198 BookmarksFolder.class.getName());
199
200 TrashRenderer trashRenderer = trashHandler.getTrashRenderer(
201 curFolder.getPrimaryKey());
202
203 trashRenderers.add(trashRenderer);
204 }
205
206 return trashRenderers;
207 }
208
209 @Override
210 public boolean isMovable() {
211 return true;
212 }
213
214 protected abstract BookmarksFolder getBookmarksFolder(long classPK)
215 throws PortalException, SystemException;
216
217 }