Java tutorial
/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.bookmarks.service.impl; import com.liferay.bookmarks.model.BookmarksFolder; import com.liferay.bookmarks.service.base.BookmarksFolderServiceBaseImpl; import com.liferay.bookmarks.service.permission.BookmarksFolderPermissionChecker; import com.liferay.portal.kernel.dao.orm.QueryDefinition; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.security.permission.ActionKeys; import com.liferay.portal.kernel.service.ServiceContext; import com.liferay.portal.kernel.workflow.WorkflowConstants; import java.util.ArrayList; import java.util.List; /** * @author Brian Wing Shun Chan */ public class BookmarksFolderServiceImpl extends BookmarksFolderServiceBaseImpl { @Override public BookmarksFolder addFolder(long parentFolderId, String name, String description, ServiceContext serviceContext) throws PortalException { BookmarksFolderPermissionChecker.check(getPermissionChecker(), serviceContext.getScopeGroupId(), parentFolderId, ActionKeys.ADD_FOLDER); return bookmarksFolderLocalService.addFolder(getUserId(), parentFolderId, name, description, serviceContext); } @Override public void deleteFolder(long folderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.DELETE); bookmarksFolderLocalService.deleteFolder(folderId); } @Override public void deleteFolder(long folderId, boolean includeTrashedEntries) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.DELETE); bookmarksFolderLocalService.deleteFolder(folderId, includeTrashedEntries); } @Override public BookmarksFolder getFolder(long folderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.VIEW); return folder; } @Override public List<Long> getFolderIds(long groupId, long folderId) throws PortalException { BookmarksFolderPermissionChecker.check(getPermissionChecker(), groupId, folderId, ActionKeys.VIEW); List<Long> folderIds = getSubfolderIds(groupId, folderId, true); folderIds.add(0, folderId); return folderIds; } @Override public List<BookmarksFolder> getFolders(long groupId) { return bookmarksFolderPersistence.filterFindByGroupId(groupId); } @Override public List<BookmarksFolder> getFolders(long groupId, long parentFolderId) { return bookmarksFolderPersistence.filterFindByG_P_S(groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED); } @Override public List<BookmarksFolder> getFolders(long groupId, long parentFolderId, int start, int end) { return getFolders(groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED, start, end); } @Override public List<BookmarksFolder> getFolders(long groupId, long parentFolderId, int status, int start, int end) { if (status == WorkflowConstants.STATUS_ANY) { return bookmarksFolderPersistence.filterFindByG_P(groupId, parentFolderId, start, end); } else { return bookmarksFolderPersistence.filterFindByG_P_S(groupId, parentFolderId, status, start, end); } } @Override public List<Object> getFoldersAndEntries(long groupId, long folderId) { return getFoldersAndEntries(groupId, folderId, WorkflowConstants.STATUS_ANY); } @Override public List<Object> getFoldersAndEntries(long groupId, long folderId, int status) { QueryDefinition<?> queryDefinition = new QueryDefinition<>(status); return bookmarksFolderFinder.filterFindBF_E_ByG_F(groupId, folderId, queryDefinition); } @Override public List<Object> getFoldersAndEntries(long groupId, long folderId, int status, int start, int end) { QueryDefinition<?> queryDefinition = new QueryDefinition<>(status, start, end, null); return bookmarksFolderFinder.filterFindBF_E_ByG_F(groupId, folderId, queryDefinition); } @Override public int getFoldersAndEntriesCount(long groupId, long folderId) { return getFoldersAndEntriesCount(groupId, folderId, WorkflowConstants.STATUS_ANY); } @Override public int getFoldersAndEntriesCount(long groupId, long folderId, int status) { QueryDefinition<?> queryDefinition = new QueryDefinition<>(status); return bookmarksFolderFinder.filterCountF_E_ByG_F(groupId, folderId, queryDefinition); } @Override public int getFoldersCount(long groupId, long parentFolderId) { return getFoldersCount(groupId, parentFolderId, WorkflowConstants.STATUS_APPROVED); } @Override public int getFoldersCount(long groupId, long parentFolderId, int status) { if (status == WorkflowConstants.STATUS_ANY) { return bookmarksFolderPersistence.filterCountByG_P_NotS(groupId, parentFolderId, WorkflowConstants.STATUS_IN_TRASH); } else { return bookmarksFolderPersistence.filterCountByG_P_S(groupId, parentFolderId, status); } } /** * @deprecated As of 7.0.0, replaced by {@link #getSubfolderIds(List, long, * long, boolean)} */ @Deprecated @Override public void getSubfolderIds(List<Long> folderIds, long groupId, long folderId) { getSubfolderIds(folderIds, groupId, folderId, true); } @Override public void getSubfolderIds(List<Long> folderIds, long groupId, long folderId, boolean recurse) { List<BookmarksFolder> folders = bookmarksFolderPersistence.filterFindByG_P_S(groupId, folderId, WorkflowConstants.STATUS_APPROVED); for (BookmarksFolder folder : folders) { folderIds.add(folder.getFolderId()); if (recurse) { getSubfolderIds(folderIds, folder.getGroupId(), folder.getFolderId(), recurse); } } } @Override public List<Long> getSubfolderIds(long groupId, long folderId, boolean recurse) { List<Long> folderIds = new ArrayList<>(); getSubfolderIds(folderIds, groupId, folderId, recurse); return folderIds; } @Override public void mergeFolders(long folderId, long parentFolderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); bookmarksFolderLocalService.mergeFolders(folderId, parentFolderId); } @Override public BookmarksFolder moveFolder(long folderId, long parentFolderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); return bookmarksFolderLocalService.moveFolder(folderId, parentFolderId); } @Override public BookmarksFolder moveFolderFromTrash(long folderId, long parentFolderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); return bookmarksFolderLocalService.moveFolderFromTrash(getUserId(), folderId, parentFolderId); } @Override public BookmarksFolder moveFolderToTrash(long folderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.DELETE); return bookmarksFolderLocalService.moveFolderToTrash(getUserId(), folderId); } @Override public void restoreFolderFromTrash(long folderId) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); bookmarksFolderLocalService.restoreFolderFromTrash(getUserId(), folderId); } @Override public void subscribeFolder(long groupId, long folderId) throws PortalException { BookmarksFolderPermissionChecker.check(getPermissionChecker(), groupId, folderId, ActionKeys.SUBSCRIBE); bookmarksFolderLocalService.subscribeFolder(getUserId(), groupId, folderId); } @Override public void unsubscribeFolder(long groupId, long folderId) throws PortalException { BookmarksFolderPermissionChecker.check(getPermissionChecker(), groupId, folderId, ActionKeys.SUBSCRIBE); bookmarksFolderLocalService.unsubscribeFolder(getUserId(), groupId, folderId); } /** * @deprecated As of 7.0.0, replaced by {@link #updateFolder(long, long, * String, String, ServiceContext)} and {@link * #mergeFolders(long, long)} */ @Deprecated @Override public BookmarksFolder updateFolder(long folderId, long parentFolderId, String name, String description, boolean mergeWithParentFolder, ServiceContext serviceContext) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); return bookmarksFolderLocalService.updateFolder(getUserId(), folderId, parentFolderId, name, description, mergeWithParentFolder, serviceContext); } @Override public BookmarksFolder updateFolder(long folderId, long parentFolderId, String name, String description, ServiceContext serviceContext) throws PortalException { BookmarksFolder folder = bookmarksFolderLocalService.getFolder(folderId); BookmarksFolderPermissionChecker.check(getPermissionChecker(), folder, ActionKeys.UPDATE); return bookmarksFolderLocalService.updateFolder(getUserId(), folderId, parentFolderId, name, description, serviceContext); } }