com.liferay.portal.kernel.service.SubscriptionLocalService.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portal.kernel.service.SubscriptionLocalService.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.portal.kernel.service;

import com.liferay.portal.kernel.dao.orm.ActionableDynamicQuery;
import com.liferay.portal.kernel.dao.orm.DynamicQuery;
import com.liferay.portal.kernel.dao.orm.IndexableActionableDynamicQuery;
import com.liferay.portal.kernel.dao.orm.Projection;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.model.PersistedModel;
import com.liferay.portal.kernel.model.Subscription;
import com.liferay.portal.kernel.search.Indexable;
import com.liferay.portal.kernel.search.IndexableType;
import com.liferay.portal.kernel.transaction.Isolation;
import com.liferay.portal.kernel.transaction.Propagation;
import com.liferay.portal.kernel.transaction.Transactional;
import com.liferay.portal.kernel.util.OrderByComparator;

import java.io.Serializable;

import java.util.List;

import org.osgi.annotation.versioning.ProviderType;

/**
 * Provides the local service interface for Subscription. Methods of this
 * service will not have security checks based on the propagated JAAS
 * credentials because this service can only be accessed from within the same
 * VM.
 *
 * @author Brian Wing Shun Chan
 * @see SubscriptionLocalServiceUtil
 * @deprecated As of Judson (7.1.x), replaced by {@link
 com.liferay.subscription.service.impl.SubscriptionLocalServiceImpl}
 * @generated
 */
@Deprecated
@ProviderType
@Transactional(isolation = Isolation.PORTAL, rollbackFor = { PortalException.class, SystemException.class })
public interface SubscriptionLocalService extends BaseLocalService, PersistedModelLocalService {

    /**
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. Always use {@link SubscriptionLocalServiceUtil} to access the subscription local service. Add custom service methods to <code>com.liferay.portal.service.impl.SubscriptionLocalServiceImpl</code> and rerun ServiceBuilder to automatically copy the method declarations to this interface.
     */

    /**
     * Subscribes the user to the entity, notifying him the instant the entity
     * is created, deleted, or modified.
     *
     * <p>
     * If there is no asset entry with the class name and class PK a new asset
     * entry is created.
     * </p>
     *
     * <p>
     * A social activity for the subscription is created using the asset entry
     * associated with the class name and class PK, or the newly created asset
     * entry.
     * </p>
     *
     * @param userId the primary key of the user
     * @param groupId the primary key of the entity's group
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     * @return the subscription
     */
    public Subscription addSubscription(long userId, long groupId, String className, long classPK)
            throws PortalException;

    /**
     * Subscribes the user to the entity, notifying him at the given frequency.
     *
     * <p>
     * If there is no asset entry with the class name and class PK a new asset
     * entry is created.
     * </p>
     *
     * <p>
     * A social activity for the subscription is created using the asset entry
     * associated with the class name and class PK, or the newly created asset
     * entry.
     * </p>
     *
     * @param userId the primary key of the user
     * @param groupId the primary key of the entity's group
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     * @param frequency the frequency for notifications
     * @return the subscription
     */
    public Subscription addSubscription(long userId, long groupId, String className, long classPK, String frequency)
            throws PortalException;

    /**
     * Adds the subscription to the database. Also notifies the appropriate model listeners.
     *
     * @param subscription the subscription
     * @return the subscription that was added
     */
    @Indexable(type = IndexableType.REINDEX)
    public Subscription addSubscription(Subscription subscription);

    /**
     * Creates a new subscription with the primary key. Does not add the subscription to the database.
     *
     * @param subscriptionId the primary key for the new subscription
     * @return the new subscription
     */
    @Transactional(enabled = false)
    public Subscription createSubscription(long subscriptionId);

    /**
     * @throws PortalException
     */
    @Override
    public PersistedModel deletePersistedModel(PersistedModel persistedModel) throws PortalException;

    /**
     * Deletes the subscription with the primary key from the database. Also notifies the appropriate model listeners.
     *
     * @param subscriptionId the primary key of the subscription
     * @return the subscription that was removed
     * @throws PortalException if a subscription with the primary key could not be found
     */
    @Indexable(type = IndexableType.DELETE)
    public Subscription deleteSubscription(long subscriptionId) throws PortalException;

    /**
     * Deletes the user's subscription to the entity. A social activity with the
     * unsubscribe action is created.
     *
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     */
    public void deleteSubscription(long userId, String className, long classPK) throws PortalException;

    /**
     * Deletes the subscription from the database. Also notifies the appropriate model listeners.
     *
     * @param subscription the subscription
     * @return the subscription that was removed
     * @throws PortalException
     */
    @Indexable(type = IndexableType.DELETE)
    public Subscription deleteSubscription(Subscription subscription) throws PortalException;

    /**
     * Deletes all the subscriptions of the user.
     *
     * @param userId the primary key of the user
     */
    public void deleteSubscriptions(long userId) throws PortalException;

    public void deleteSubscriptions(long userId, long groupId) throws PortalException;

    /**
     * Deletes all the subscriptions to the entity.
     *
     * @param companyId the primary key of the company
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     */
    public void deleteSubscriptions(long companyId, String className, long classPK) throws PortalException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public DynamicQuery dynamicQuery();

    /**
     * Performs a dynamic query on the database and returns the matching rows.
     *
     * @param dynamicQuery the dynamic query
     * @return the matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery);

    /**
     * Performs a dynamic query on the database and returns a range of the matching rows.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.SubscriptionModelImpl</code>.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @return the range of matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, int end);

    /**
     * Performs a dynamic query on the database and returns an ordered range of the matching rows.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.SubscriptionModelImpl</code>.
     * </p>
     *
     * @param dynamicQuery the dynamic query
     * @param start the lower bound of the range of model instances
     * @param end the upper bound of the range of model instances (not inclusive)
     * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
     * @return the ordered range of matching rows
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public <T> List<T> dynamicQuery(DynamicQuery dynamicQuery, int start, int end,
            OrderByComparator<T> orderByComparator);

    /**
     * Returns the number of rows matching the dynamic query.
     *
     * @param dynamicQuery the dynamic query
     * @return the number of rows matching the dynamic query
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public long dynamicQueryCount(DynamicQuery dynamicQuery);

    /**
     * Returns the number of rows matching the dynamic query.
     *
     * @param dynamicQuery the dynamic query
     * @param projection the projection to apply to the query
     * @return the number of rows matching the dynamic query
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public long dynamicQueryCount(DynamicQuery dynamicQuery, Projection projection);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Subscription fetchSubscription(long subscriptionId);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Subscription fetchSubscription(long companyId, long userId, String className, long classPK);

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public ActionableDynamicQuery getActionableDynamicQuery();

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public IndexableActionableDynamicQuery getIndexableActionableDynamicQuery();

    /**
     * Returns the OSGi service identifier.
     *
     * @return the OSGi service identifier
     */
    public String getOSGiServiceIdentifier();

    @Override
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public PersistedModel getPersistedModel(Serializable primaryKeyObj) throws PortalException;

    /**
     * Returns the subscription with the primary key.
     *
     * @param subscriptionId the primary key of the subscription
     * @return the subscription
     * @throws PortalException if a subscription with the primary key could not be found
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Subscription getSubscription(long subscriptionId) throws PortalException;

    /**
     * Returns the subscription of the user to the entity.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     * @return the subscription of the user to the entity
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public Subscription getSubscription(long companyId, long userId, String className, long classPK)
            throws PortalException;

    /**
     * Returns a range of all the subscriptions.
     *
     * <p>
     * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to <code>com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS</code> will return the full result set. If <code>orderByComparator</code> is specified, then the query will include the given ORDER BY logic. If <code>orderByComparator</code> is absent, then the query will include the default ORDER BY logic from <code>com.liferay.portal.model.impl.SubscriptionModelImpl</code>.
     * </p>
     *
     * @param start the lower bound of the range of subscriptions
     * @param end the upper bound of the range of subscriptions (not inclusive)
     * @return the range of subscriptions
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Subscription> getSubscriptions(int start, int end);

    /**
     * Returns all the subscriptions of the user to the entities.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @param classPKs the primary key of the entities
     * @return the subscriptions of the user to the entities
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Subscription> getSubscriptions(long companyId, long userId, String className, long[] classPKs);

    /**
     * Returns all the subscriptions to the entity.
     *
     * @param companyId the primary key of the company
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     * @return the subscriptions to the entity
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Subscription> getSubscriptions(long companyId, String className, long classPK);

    /**
     * Returns the number of subscriptions.
     *
     * @return the number of subscriptions
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public int getSubscriptionsCount();

    /**
     * Returns an ordered range of all the subscriptions of the user.
     *
     * @param userId the primary key of the user
     * @param start the lower bound of the range of results
     * @param end the upper bound of the range of results (not inclusive)
     * @param orderByComparator the comparator to order the subscriptions
     * @return the range of subscriptions of the user
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Subscription> getUserSubscriptions(long userId, int start, int end,
            OrderByComparator<Subscription> orderByComparator);

    /**
     * Returns all the subscriptions of the user to the entities with the class
     * name.
     *
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @return the subscriptions of the user to the entities with the class name
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public List<Subscription> getUserSubscriptions(long userId, String className);

    /**
     * Returns the number of subscriptions of the user.
     *
     * @param userId the primary key of the user
     * @return the number of subscriptions of the user
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public int getUserSubscriptionsCount(long userId);

    /**
     * Returns <code>true</code> if the user is subscribed to the entity.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @param classPK the primary key of the entity's instance
     * @return <code>true</code> if the user is subscribed to the entity;
     <code>false</code> otherwise
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public boolean isSubscribed(long companyId, long userId, String className, long classPK);

    /**
     * Returns <code>true</code> if the user is subscribed to any of the
     * entities.
     *
     * @param companyId the primary key of the company
     * @param userId the primary key of the user
     * @param className the entity's class name
     * @param classPKs the primary key of the entities
     * @return <code>true</code> if the user is subscribed to any of the
     entities; <code>false</code> otherwise
     */
    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public boolean isSubscribed(long companyId, long userId, String className, long[] classPKs);

    /**
     * Updates the subscription in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
     *
     * @param subscription the subscription
     * @return the subscription that was updated
     */
    @Indexable(type = IndexableType.REINDEX)
    public Subscription updateSubscription(Subscription subscription);

}