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.BookmarksEntry; import com.liferay.bookmarks.model.BookmarksFolderConstants; import com.liferay.bookmarks.service.base.BookmarksEntryServiceBaseImpl; import com.liferay.bookmarks.service.permission.BookmarksEntryPermissionChecker; import com.liferay.bookmarks.service.permission.BookmarksFolderPermissionChecker; import com.liferay.bookmarks.util.comparator.EntryModifiedDateComparator; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.search.Hits; import com.liferay.portal.kernel.security.permission.ActionKeys; import com.liferay.portal.kernel.service.ServiceContext; import com.liferay.portal.kernel.util.ArrayUtil; import com.liferay.portal.kernel.util.OrderByComparator; import com.liferay.portal.kernel.workflow.WorkflowConstants; import java.util.Collections; import java.util.List; /** * @author Brian Wing Shun Chan * @author Levente Hudk */ public class BookmarksEntryServiceImpl extends BookmarksEntryServiceBaseImpl { @Override public BookmarksEntry addEntry(long groupId, long folderId, String name, String url, String description, ServiceContext serviceContext) throws PortalException { BookmarksFolderPermissionChecker.check(getPermissionChecker(), groupId, folderId, ActionKeys.ADD_ENTRY); return bookmarksEntryLocalService.addEntry(getUserId(), groupId, folderId, name, url, description, serviceContext); } @Override public void deleteEntry(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.DELETE); bookmarksEntryLocalService.deleteEntry(entryId); } @Override public List<BookmarksEntry> getEntries(long groupId, long folderId, int start, int end) { return bookmarksEntryPersistence.filterFindByG_F_S(groupId, folderId, WorkflowConstants.STATUS_APPROVED, start, end); } @Override public List<BookmarksEntry> getEntries(long groupId, long folderId, int start, int end, OrderByComparator<BookmarksEntry> orderByComparator) { return bookmarksEntryPersistence.filterFindByG_F_S(groupId, folderId, WorkflowConstants.STATUS_APPROVED, start, end, orderByComparator); } @Override public int getEntriesCount(long groupId, long folderId) { return getEntriesCount(groupId, folderId, WorkflowConstants.STATUS_APPROVED); } @Override public int getEntriesCount(long groupId, long folderId, int status) { if (status == WorkflowConstants.STATUS_ANY) { return bookmarksEntryPersistence.filterCountByG_F_NotS(groupId, folderId, WorkflowConstants.STATUS_IN_TRASH); } else { return bookmarksEntryPersistence.filterCountByG_F_S(groupId, folderId, status); } } @Override public BookmarksEntry getEntry(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.VIEW); return bookmarksEntryLocalService.getEntry(entryId); } @Override public int getFoldersEntriesCount(long groupId, List<Long> folderIds) { return bookmarksEntryPersistence.filterCountByG_F_S(groupId, ArrayUtil.toArray(folderIds.toArray(new Long[folderIds.size()])), WorkflowConstants.STATUS_APPROVED); } @Override public List<BookmarksEntry> getGroupEntries(long groupId, int start, int end) throws PortalException { return getGroupEntries(groupId, 0, WorkflowConstants.STATUS_APPROVED, start, end); } @Override public List<BookmarksEntry> getGroupEntries(long groupId, long userId, int start, int end) throws PortalException { return getGroupEntries(groupId, userId, BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID, start, end); } @Override public List<BookmarksEntry> getGroupEntries(long groupId, long userId, long rootFolderId, int start, int end) throws PortalException { if (rootFolderId == BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) { if (userId <= 0) { return bookmarksEntryPersistence.filterFindByG_NotS(groupId, WorkflowConstants.STATUS_IN_TRASH, start, end, new EntryModifiedDateComparator()); } else { return bookmarksEntryPersistence.filterFindByG_U_NotS(groupId, userId, WorkflowConstants.STATUS_IN_TRASH, start, end, new EntryModifiedDateComparator()); } } List<Long> folderIds = bookmarksFolderService.getFolderIds(groupId, rootFolderId); if (folderIds.isEmpty()) { return Collections.emptyList(); } else if (userId <= 0) { return bookmarksEntryPersistence.filterFindByG_F_S(groupId, ArrayUtil.toLongArray(folderIds), WorkflowConstants.STATUS_APPROVED, start, end, new EntryModifiedDateComparator()); } else { return bookmarksEntryPersistence.filterFindByG_U_F_S(groupId, userId, ArrayUtil.toLongArray(folderIds), WorkflowConstants.STATUS_APPROVED, start, end, new EntryModifiedDateComparator()); } } @Override public int getGroupEntriesCount(long groupId) throws PortalException { return getGroupEntriesCount(groupId, 0); } @Override public int getGroupEntriesCount(long groupId, long userId) throws PortalException { return getGroupEntriesCount(groupId, userId, BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID); } @Override public int getGroupEntriesCount(long groupId, long userId, long rootFolderId) throws PortalException { if (rootFolderId == BookmarksFolderConstants.DEFAULT_PARENT_FOLDER_ID) { if (userId <= 0) { return bookmarksEntryPersistence.filterCountByG_NotS(groupId, WorkflowConstants.STATUS_IN_TRASH); } else { return bookmarksEntryPersistence.filterCountByG_U_NotS(groupId, userId, WorkflowConstants.STATUS_IN_TRASH); } } List<Long> folderIds = bookmarksFolderService.getFolderIds(groupId, rootFolderId); if (folderIds.isEmpty()) { return 0; } else if (userId <= 0) { return bookmarksEntryPersistence.filterCountByG_F_S(groupId, ArrayUtil.toLongArray(folderIds), WorkflowConstants.STATUS_APPROVED); } else { return bookmarksEntryPersistence.filterCountByG_U_F_S(groupId, userId, ArrayUtil.toLongArray(folderIds), WorkflowConstants.STATUS_APPROVED); } } @Override public BookmarksEntry moveEntry(long entryId, long parentFolderId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.UPDATE); return bookmarksEntryLocalService.moveEntry(entryId, parentFolderId); } @Override public BookmarksEntry moveEntryFromTrash(long entryId, long parentFolderId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.UPDATE); return bookmarksEntryLocalService.moveEntryFromTrash(getUserId(), entryId, parentFolderId); } @Override public BookmarksEntry moveEntryToTrash(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.DELETE); return bookmarksEntryLocalService.moveEntryToTrash(getUserId(), entryId); } @Override public BookmarksEntry openEntry(BookmarksEntry entry) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entry, ActionKeys.VIEW); return bookmarksEntryLocalService.openEntry(getGuestOrUserId(), entry); } @Override public BookmarksEntry openEntry(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.VIEW); return bookmarksEntryLocalService.openEntry(getGuestOrUserId(), entryId); } @Override public void restoreEntryFromTrash(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.UPDATE); bookmarksEntryLocalService.restoreEntryFromTrash(getUserId(), entryId); } @Override public Hits search(long groupId, long creatorUserId, int status, int start, int end) throws PortalException { return bookmarksEntryLocalService.search(groupId, getUserId(), creatorUserId, status, start, end); } @Override public void subscribeEntry(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.SUBSCRIBE); bookmarksEntryLocalService.subscribeEntry(getUserId(), entryId); } @Override public void unsubscribeEntry(long entryId) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.SUBSCRIBE); bookmarksEntryLocalService.unsubscribeEntry(getUserId(), entryId); } @Override public BookmarksEntry updateEntry(long entryId, long groupId, long folderId, String name, String url, String description, ServiceContext serviceContext) throws PortalException { BookmarksEntryPermissionChecker.check(getPermissionChecker(), entryId, ActionKeys.UPDATE); return bookmarksEntryLocalService.updateEntry(getUserId(), entryId, groupId, folderId, name, url, description, serviceContext); } }