001
014
015 package com.liferay.portlet.bookmarks.service.impl;
016
017 import com.liferay.portal.kernel.dao.orm.QueryDefinition;
018 import com.liferay.portal.kernel.exception.PortalException;
019 import com.liferay.portal.kernel.workflow.WorkflowConstants;
020 import com.liferay.portal.security.permission.ActionKeys;
021 import com.liferay.portal.service.ServiceContext;
022 import com.liferay.portlet.bookmarks.model.BookmarksFolder;
023 import com.liferay.portlet.bookmarks.service.base.BookmarksFolderServiceBaseImpl;
024 import com.liferay.portlet.bookmarks.service.permission.BookmarksFolderPermission;
025
026 import java.util.ArrayList;
027 import java.util.List;
028
029
032 public class BookmarksFolderServiceImpl extends BookmarksFolderServiceBaseImpl {
033
034 @Override
035 public BookmarksFolder addFolder(
036 long parentFolderId, String name, String description,
037 ServiceContext serviceContext)
038 throws PortalException {
039
040 BookmarksFolderPermission.check(
041 getPermissionChecker(), serviceContext.getScopeGroupId(),
042 parentFolderId, ActionKeys.ADD_FOLDER);
043
044 return bookmarksFolderLocalService.addFolder(
045 getUserId(), parentFolderId, name, description, serviceContext);
046 }
047
048 @Override
049 public void deleteFolder(long folderId) throws PortalException {
050 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
051 folderId);
052
053 BookmarksFolderPermission.check(
054 getPermissionChecker(), folder, ActionKeys.DELETE);
055
056 bookmarksFolderLocalService.deleteFolder(folderId);
057 }
058
059 @Override
060 public void deleteFolder(long folderId, boolean includeTrashedEntries)
061 throws PortalException {
062
063 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
064 folderId);
065
066 BookmarksFolderPermission.check(
067 getPermissionChecker(), folder, ActionKeys.DELETE);
068
069 bookmarksFolderLocalService.deleteFolder(
070 folderId, includeTrashedEntries);
071 }
072
073 @Override
074 public BookmarksFolder getFolder(long folderId) throws PortalException {
075 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
076 folderId);
077
078 BookmarksFolderPermission.check(
079 getPermissionChecker(), folder, ActionKeys.VIEW);
080
081 return folder;
082 }
083
084 @Override
085 public List<Long> getFolderIds(long groupId, long folderId)
086 throws PortalException {
087
088 BookmarksFolderPermission.check(
089 getPermissionChecker(), groupId, folderId, ActionKeys.VIEW);
090
091 List<Long> folderIds = getSubfolderIds(groupId, folderId, true);
092
093 folderIds.add(0, folderId);
094
095 return folderIds;
096 }
097
098 @Override
099 public List<BookmarksFolder> getFolders(long groupId) {
100 return bookmarksFolderPersistence.filterFindByGroupId(groupId);
101 }
102
103 @Override
104 public List<BookmarksFolder> getFolders(long groupId, long parentFolderId) {
105 return bookmarksFolderPersistence.filterFindByG_P_S(
106 groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED);
107 }
108
109 @Override
110 public List<BookmarksFolder> getFolders(
111 long groupId, long parentFolderId, int start, int end) {
112
113 return getFolders(
114 groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED, start,
115 end);
116 }
117
118 @Override
119 public List<BookmarksFolder> getFolders(
120 long groupId, long parentFolderId, int status, int start, int end) {
121
122 if (status == WorkflowConstants.STATUS_ANY) {
123 return bookmarksFolderPersistence.filterFindByG_P(
124 groupId, parentFolderId, start, end);
125 }
126 else {
127 return bookmarksFolderPersistence.filterFindByG_P_S(
128 groupId, parentFolderId, status, start, end);
129 }
130 }
131
132 @Override
133 public List<Object> getFoldersAndEntries(long groupId, long folderId) {
134 return getFoldersAndEntries(
135 groupId, folderId, WorkflowConstants.STATUS_ANY);
136 }
137
138 @Override
139 public List<Object> getFoldersAndEntries(
140 long groupId, long folderId, int status) {
141
142 QueryDefinition<?> queryDefinition = new QueryDefinition<Object>(
143 status);
144
145 return bookmarksFolderFinder.filterFindBF_E_ByG_F(
146 groupId, folderId, queryDefinition);
147 }
148
149 @Override
150 public List<Object> getFoldersAndEntries(
151 long groupId, long folderId, int status, int start, int end) {
152
153 QueryDefinition<?> queryDefinition = new QueryDefinition<Object>(
154 status, start, end, null);
155
156 return bookmarksFolderFinder.filterFindBF_E_ByG_F(
157 groupId, folderId, queryDefinition);
158 }
159
160 @Override
161 public int getFoldersAndEntriesCount(long groupId, long folderId) {
162 return getFoldersAndEntriesCount(
163 groupId, folderId, WorkflowConstants.STATUS_ANY);
164 }
165
166 @Override
167 public int getFoldersAndEntriesCount(
168 long groupId, long folderId, int status) {
169
170 QueryDefinition<?> queryDefinition = new QueryDefinition<Object>(
171 status);
172
173 return bookmarksFolderFinder.filterCountF_E_ByG_F(
174 groupId, folderId, queryDefinition);
175 }
176
177 @Override
178 public int getFoldersCount(long groupId, long parentFolderId) {
179 return getFoldersCount(
180 groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED);
181 }
182
183 @Override
184 public int getFoldersCount(long groupId, long parentFolderId, int status) {
185 if (status == WorkflowConstants.STATUS_ANY) {
186 return bookmarksFolderPersistence.filterCountByG_P_NotS(
187 groupId, parentFolderId, WorkflowConstants.STATUS_IN_TRASH);
188 }
189 else {
190 return bookmarksFolderPersistence.filterCountByG_P_S(
191 groupId, parentFolderId, status);
192 }
193 }
194
195
199 @Deprecated
200 @Override
201 public void getSubfolderIds(
202 List<Long> folderIds, long groupId, long folderId) {
203
204 getSubfolderIds(folderIds, groupId, folderId, true);
205 }
206
207 @Override
208 public void getSubfolderIds(
209 List<Long> folderIds, long groupId, long folderId, boolean recurse) {
210
211 List<BookmarksFolder> folders =
212 bookmarksFolderPersistence.filterFindByG_P_S(
213 groupId, folderId, WorkflowConstants.STATUS_APPROVED);
214
215 for (BookmarksFolder folder : folders) {
216 folderIds.add(folder.getFolderId());
217
218 if (recurse) {
219 getSubfolderIds(
220 folderIds, folder.getGroupId(), folder.getFolderId(),
221 recurse);
222 }
223 }
224 }
225
226 @Override
227 public List<Long> getSubfolderIds(
228 long groupId, long folderId, boolean recurse) {
229
230 List<Long> folderIds = new ArrayList<Long>();
231
232 getSubfolderIds(folderIds, groupId, folderId, recurse);
233
234 return folderIds;
235 }
236
237 @Override
238 public BookmarksFolder moveFolder(long folderId, long parentFolderId)
239 throws PortalException {
240
241 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
242 folderId);
243
244 BookmarksFolderPermission.check(
245 getPermissionChecker(), folder, ActionKeys.UPDATE);
246
247 return bookmarksFolderLocalService.moveFolder(folderId, parentFolderId);
248 }
249
250 @Override
251 public BookmarksFolder moveFolderFromTrash(
252 long folderId, long parentFolderId)
253 throws PortalException {
254
255 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
256 folderId);
257
258 BookmarksFolderPermission.check(
259 getPermissionChecker(), folder, ActionKeys.UPDATE);
260
261 return bookmarksFolderLocalService.moveFolderFromTrash(
262 getUserId(), folderId, parentFolderId);
263 }
264
265 @Override
266 public BookmarksFolder moveFolderToTrash(long folderId)
267 throws PortalException {
268
269 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
270 folderId);
271
272 BookmarksFolderPermission.check(
273 getPermissionChecker(), folder, ActionKeys.DELETE);
274
275 return bookmarksFolderLocalService.moveFolderToTrash(
276 getUserId(), folderId);
277 }
278
279 @Override
280 public void restoreFolderFromTrash(long folderId) throws PortalException {
281 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
282 folderId);
283
284 BookmarksFolderPermission.check(
285 getPermissionChecker(), folder, ActionKeys.UPDATE);
286
287 bookmarksFolderLocalService.restoreFolderFromTrash(
288 getUserId(), folderId);
289 }
290
291 @Override
292 public void subscribeFolder(long groupId, long folderId)
293 throws PortalException {
294
295 BookmarksFolderPermission.check(
296 getPermissionChecker(), groupId, folderId, ActionKeys.SUBSCRIBE);
297
298 bookmarksFolderLocalService.subscribeFolder(
299 getUserId(), groupId, folderId);
300 }
301
302 @Override
303 public void unsubscribeFolder(long groupId, long folderId)
304 throws PortalException {
305
306 BookmarksFolderPermission.check(
307 getPermissionChecker(), groupId, folderId, ActionKeys.SUBSCRIBE);
308
309 bookmarksFolderLocalService.unsubscribeFolder(
310 getUserId(), groupId, folderId);
311 }
312
313 @Override
314 public BookmarksFolder updateFolder(
315 long folderId, long parentFolderId, String name, String description,
316 boolean mergeWithParentFolder, ServiceContext serviceContext)
317 throws PortalException {
318
319 BookmarksFolder folder = bookmarksFolderLocalService.getFolder(
320 folderId);
321
322 BookmarksFolderPermission.check(
323 getPermissionChecker(), folder, ActionKeys.UPDATE);
324
325 return bookmarksFolderLocalService.updateFolder(
326 getUserId(), folderId, parentFolderId, name, description,
327 mergeWithParentFolder, serviceContext);
328 }
329
330 }