com.liferay.bookmarks.service.impl.BookmarksEntryServiceImpl.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.bookmarks.service.impl.BookmarksEntryServiceImpl.java

Source

/**
 * 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);
    }

}