001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.service;
016    
017    import aQute.bnd.annotation.ProviderType;
018    
019    import com.liferay.portal.kernel.exception.PortalException;
020    import com.liferay.portal.kernel.exception.SystemException;
021    import com.liferay.portal.kernel.search.IndexableType;
022    import com.liferay.portal.kernel.transaction.Isolation;
023    import com.liferay.portal.kernel.transaction.Propagation;
024    import com.liferay.portal.kernel.transaction.Transactional;
025    
026    /**
027     * Provides the local service interface for Subscription. Methods of this
028     * service will not have security checks based on the propagated JAAS
029     * credentials because this service can only be accessed from within the same
030     * VM.
031     *
032     * @author Brian Wing Shun Chan
033     * @see SubscriptionLocalServiceUtil
034     * @see com.liferay.portal.service.base.SubscriptionLocalServiceBaseImpl
035     * @see com.liferay.portal.service.impl.SubscriptionLocalServiceImpl
036     * @generated
037     */
038    @ProviderType
039    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
040            PortalException.class, SystemException.class})
041    public interface SubscriptionLocalService extends BaseLocalService,
042            PersistedModelLocalService {
043            /*
044             * NOTE FOR DEVELOPERS:
045             *
046             * Never modify or reference this interface directly. Always use {@link SubscriptionLocalServiceUtil} to access the subscription local service. Add custom service methods to {@link com.liferay.portal.service.impl.SubscriptionLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
047             */
048    
049            /**
050            * Adds the subscription to the database. Also notifies the appropriate model listeners.
051            *
052            * @param subscription the subscription
053            * @return the subscription that was added
054            * @throws SystemException if a system exception occurred
055            */
056            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
057            public com.liferay.portal.model.Subscription addSubscription(
058                    com.liferay.portal.model.Subscription subscription)
059                    throws com.liferay.portal.kernel.exception.SystemException;
060    
061            /**
062            * Creates a new subscription with the primary key. Does not add the subscription to the database.
063            *
064            * @param subscriptionId the primary key for the new subscription
065            * @return the new subscription
066            */
067            public com.liferay.portal.model.Subscription createSubscription(
068                    long subscriptionId);
069    
070            /**
071            * Deletes the subscription with the primary key from the database. Also notifies the appropriate model listeners.
072            *
073            * @param subscriptionId the primary key of the subscription
074            * @return the subscription that was removed
075            * @throws PortalException if a subscription with the primary key could not be found
076            * @throws SystemException if a system exception occurred
077            */
078            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
079            public com.liferay.portal.model.Subscription deleteSubscription(
080                    long subscriptionId)
081                    throws com.liferay.portal.kernel.exception.PortalException,
082                            com.liferay.portal.kernel.exception.SystemException;
083    
084            /**
085            * Deletes the subscription from the database. Also notifies the appropriate model listeners.
086            *
087            * @param subscription the subscription
088            * @return the subscription that was removed
089            * @throws PortalException
090            * @throws SystemException if a system exception occurred
091            */
092            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.DELETE)
093            public com.liferay.portal.model.Subscription deleteSubscription(
094                    com.liferay.portal.model.Subscription subscription)
095                    throws com.liferay.portal.kernel.exception.PortalException,
096                            com.liferay.portal.kernel.exception.SystemException;
097    
098            public com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery();
099    
100            /**
101            * Performs a dynamic query on the database and returns the matching rows.
102            *
103            * @param dynamicQuery the dynamic query
104            * @return the matching rows
105            * @throws SystemException if a system exception occurred
106            */
107            @SuppressWarnings("rawtypes")
108            public java.util.List dynamicQuery(
109                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
110                    throws com.liferay.portal.kernel.exception.SystemException;
111    
112            /**
113            * Performs a dynamic query on the database and returns a range of the matching rows.
114            *
115            * <p>
116            * 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 {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} 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 and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.SubscriptionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
117            * </p>
118            *
119            * @param dynamicQuery the dynamic query
120            * @param start the lower bound of the range of model instances
121            * @param end the upper bound of the range of model instances (not inclusive)
122            * @return the range of matching rows
123            * @throws SystemException if a system exception occurred
124            */
125            @SuppressWarnings("rawtypes")
126            public java.util.List dynamicQuery(
127                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
128                    int end) throws com.liferay.portal.kernel.exception.SystemException;
129    
130            /**
131            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
132            *
133            * <p>
134            * 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 {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} 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 and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.SubscriptionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
135            * </p>
136            *
137            * @param dynamicQuery the dynamic query
138            * @param start the lower bound of the range of model instances
139            * @param end the upper bound of the range of model instances (not inclusive)
140            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
141            * @return the ordered range of matching rows
142            * @throws SystemException if a system exception occurred
143            */
144            @SuppressWarnings("rawtypes")
145            public java.util.List dynamicQuery(
146                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
147                    int end,
148                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
149                    throws com.liferay.portal.kernel.exception.SystemException;
150    
151            /**
152            * Returns the number of rows that match the dynamic query.
153            *
154            * @param dynamicQuery the dynamic query
155            * @return the number of rows that match the dynamic query
156            * @throws SystemException if a system exception occurred
157            */
158            public long dynamicQueryCount(
159                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
160                    throws com.liferay.portal.kernel.exception.SystemException;
161    
162            /**
163            * Returns the number of rows that match the dynamic query.
164            *
165            * @param dynamicQuery the dynamic query
166            * @param projection the projection to apply to the query
167            * @return the number of rows that match the dynamic query
168            * @throws SystemException if a system exception occurred
169            */
170            public long dynamicQueryCount(
171                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery,
172                    com.liferay.portal.kernel.dao.orm.Projection projection)
173                    throws com.liferay.portal.kernel.exception.SystemException;
174    
175            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
176            public com.liferay.portal.model.Subscription fetchSubscription(
177                    long subscriptionId)
178                    throws com.liferay.portal.kernel.exception.SystemException;
179    
180            /**
181            * Returns the subscription with the primary key.
182            *
183            * @param subscriptionId the primary key of the subscription
184            * @return the subscription
185            * @throws PortalException if a subscription with the primary key could not be found
186            * @throws SystemException if a system exception occurred
187            */
188            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
189            public com.liferay.portal.model.Subscription getSubscription(
190                    long subscriptionId)
191                    throws com.liferay.portal.kernel.exception.PortalException,
192                            com.liferay.portal.kernel.exception.SystemException;
193    
194            @Override
195            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
196            public com.liferay.portal.model.PersistedModel getPersistedModel(
197                    java.io.Serializable primaryKeyObj)
198                    throws com.liferay.portal.kernel.exception.PortalException,
199                            com.liferay.portal.kernel.exception.SystemException;
200    
201            /**
202            * Returns a range of all the subscriptions.
203            *
204            * <p>
205            * 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 {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} 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 and pagination is required (<code>start</code> and <code>end</code> are not {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS}), then the query will include the default ORDER BY logic from {@link com.liferay.portal.model.impl.SubscriptionModelImpl}. If both <code>orderByComparator</code> and pagination are absent, for performance reasons, the query will not have an ORDER BY clause and the returned result set will be sorted on by the primary key in an ascending order.
206            * </p>
207            *
208            * @param start the lower bound of the range of subscriptions
209            * @param end the upper bound of the range of subscriptions (not inclusive)
210            * @return the range of subscriptions
211            * @throws SystemException if a system exception occurred
212            */
213            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
214            public java.util.List<com.liferay.portal.model.Subscription> getSubscriptions(
215                    int start, int end)
216                    throws com.liferay.portal.kernel.exception.SystemException;
217    
218            /**
219            * Returns the number of subscriptions.
220            *
221            * @return the number of subscriptions
222            * @throws SystemException if a system exception occurred
223            */
224            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
225            public int getSubscriptionsCount()
226                    throws com.liferay.portal.kernel.exception.SystemException;
227    
228            /**
229            * Updates the subscription in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
230            *
231            * @param subscription the subscription
232            * @return the subscription that was updated
233            * @throws SystemException if a system exception occurred
234            */
235            @com.liferay.portal.kernel.search.Indexable(type = IndexableType.REINDEX)
236            public com.liferay.portal.model.Subscription updateSubscription(
237                    com.liferay.portal.model.Subscription subscription)
238                    throws com.liferay.portal.kernel.exception.SystemException;
239    
240            /**
241            * Returns the Spring bean ID for this bean.
242            *
243            * @return the Spring bean ID for this bean
244            */
245            public java.lang.String getBeanIdentifier();
246    
247            /**
248            * Sets the Spring bean ID for this bean.
249            *
250            * @param beanIdentifier the Spring bean ID for this bean
251            */
252            public void setBeanIdentifier(java.lang.String beanIdentifier);
253    
254            /**
255            * Subscribes the user to the entity, notifying him the instant the entity
256            * is created, deleted, or modified.
257            *
258            * <p>
259            * If there is no asset entry with the class name and class PK a new asset
260            * entry is created.
261            * </p>
262            *
263            * <p>
264            * A social activity for the subscription is created using the asset entry
265            * associated with the class name and class PK, or the newly created asset
266            * entry.
267            * </p>
268            *
269            * @param userId the primary key of the user
270            * @param groupId the primary key of the entity's group
271            * @param className the entity's class name
272            * @param classPK the primary key of the entity's instance
273            * @return the subscription
274            * @throws PortalException if a matching user or group could not be found
275            * @throws SystemException if a system exception occurred
276            */
277            public com.liferay.portal.model.Subscription addSubscription(long userId,
278                    long groupId, java.lang.String className, long classPK)
279                    throws com.liferay.portal.kernel.exception.PortalException,
280                            com.liferay.portal.kernel.exception.SystemException;
281    
282            /**
283            * Subscribes the user to the entity, notifying him at the given frequency.
284            *
285            * <p>
286            * If there is no asset entry with the class name and class PK a new asset
287            * entry is created.
288            * </p>
289            *
290            * <p>
291            * A social activity for the subscription is created using the asset entry
292            * associated with the class name and class PK, or the newly created asset
293            * entry.
294            * </p>
295            *
296            * @param userId the primary key of the user
297            * @param groupId the primary key of the entity's group
298            * @param className the entity's class name
299            * @param classPK the primary key of the entity's instance
300            * @param frequency the frequency for notifications
301            * @return the subscription
302            * @throws PortalException if a matching user or group could not be found
303            * @throws SystemException if a system exception occurred
304            */
305            public com.liferay.portal.model.Subscription addSubscription(long userId,
306                    long groupId, java.lang.String className, long classPK,
307                    java.lang.String frequency)
308                    throws com.liferay.portal.kernel.exception.PortalException,
309                            com.liferay.portal.kernel.exception.SystemException;
310    
311            /**
312            * Deletes the user's subscription to the entity. A social activity with the
313            * unsubscribe action is created.
314            *
315            * @param userId the primary key of the user
316            * @param className the entity's class name
317            * @param classPK the primary key of the entity's instance
318            * @throws PortalException if a matching user or subscription could not be
319            found
320            * @throws SystemException if a system exception occurred
321            */
322            public void deleteSubscription(long userId, java.lang.String className,
323                    long classPK)
324                    throws com.liferay.portal.kernel.exception.PortalException,
325                            com.liferay.portal.kernel.exception.SystemException;
326    
327            /**
328            * Deletes all the subscriptions of the user.
329            *
330            * @param userId the primary key of the user
331            * @throws PortalException if a portal exception occurred
332            * @throws SystemException if a system exception occurred
333            */
334            public void deleteSubscriptions(long userId)
335                    throws com.liferay.portal.kernel.exception.PortalException,
336                            com.liferay.portal.kernel.exception.SystemException;
337    
338            /**
339            * Deletes all the subscriptions to the entity.
340            *
341            * @param companyId the primary key of the company
342            * @param className the entity's class name
343            * @param classPK the primary key of the entity's instance
344            * @throws PortalException if a portal exception occurred
345            * @throws SystemException if a system exception occurred
346            */
347            public void deleteSubscriptions(long companyId, java.lang.String className,
348                    long classPK)
349                    throws com.liferay.portal.kernel.exception.PortalException,
350                            com.liferay.portal.kernel.exception.SystemException;
351    
352            /**
353            * Returns the subscription of the user to the entity.
354            *
355            * @param companyId the primary key of the company
356            * @param userId the primary key of the user
357            * @param className the entity's class name
358            * @param classPK the primary key of the entity's instance
359            * @return the subscription of the user to the entity
360            * @throws PortalException if a matching subscription could not be found
361            * @throws SystemException if a system exception occurred
362            */
363            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
364            public com.liferay.portal.model.Subscription getSubscription(
365                    long companyId, long userId, java.lang.String className, long classPK)
366                    throws com.liferay.portal.kernel.exception.PortalException,
367                            com.liferay.portal.kernel.exception.SystemException;
368    
369            /**
370            * Returns all the subscriptions of the user to the entities.
371            *
372            * @param companyId the primary key of the company
373            * @param userId the primary key of the user
374            * @param className the entity's class name
375            * @param classPKs the primary key of the entities
376            * @return the subscriptions of the user to the entities
377            * @throws SystemException if a system exception occurred
378            */
379            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
380            public java.util.List<com.liferay.portal.model.Subscription> getSubscriptions(
381                    long companyId, long userId, java.lang.String className, long[] classPKs)
382                    throws com.liferay.portal.kernel.exception.SystemException;
383    
384            /**
385            * Returns all the subscriptions to the entity.
386            *
387            * @param companyId the primary key of the company
388            * @param className the entity's class name
389            * @param classPK the primary key of the entity's instance
390            * @return the subscriptions to the entity
391            * @throws SystemException if a system exception occurred
392            */
393            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
394            public java.util.List<com.liferay.portal.model.Subscription> getSubscriptions(
395                    long companyId, java.lang.String className, long classPK)
396                    throws com.liferay.portal.kernel.exception.SystemException;
397    
398            /**
399            * Returns an ordered range of all the subscriptions of the user.
400            *
401            * @param userId the primary key of the user
402            * @param start the lower bound of the range of results
403            * @param end the upper bound of the range of results (not inclusive)
404            * @param orderByComparator the comparator to order the subscriptions
405            * @return the range of subscriptions of the user
406            * @throws SystemException if a system exception occurred
407            */
408            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
409            public java.util.List<com.liferay.portal.model.Subscription> getUserSubscriptions(
410                    long userId, int start, int end,
411                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
412                    throws com.liferay.portal.kernel.exception.SystemException;
413    
414            /**
415            * Returns all the subscriptions of the user to the entities with the class
416            * name.
417            *
418            * @param userId the primary key of the user
419            * @param className the entity's class name
420            * @return the subscriptions of the user to the entities with the class name
421            * @throws SystemException if a system exception occurred
422            */
423            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
424            public java.util.List<com.liferay.portal.model.Subscription> getUserSubscriptions(
425                    long userId, java.lang.String className)
426                    throws com.liferay.portal.kernel.exception.SystemException;
427    
428            /**
429            * Returns the number of subscriptions of the user.
430            *
431            * @param userId the primary key of the user
432            * @return the number of subscriptions of the user
433            * @throws SystemException if a system exception occurred
434            */
435            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
436            public int getUserSubscriptionsCount(long userId)
437                    throws com.liferay.portal.kernel.exception.SystemException;
438    
439            /**
440            * Returns <code>true</code> if the user is subscribed to the entity.
441            *
442            * @param companyId the primary key of the company
443            * @param userId the primary key of the user
444            * @param className the entity's class name
445            * @param classPK the primary key of the entity's instance
446            * @return <code>true</code> if the user is subscribed to the entity;
447            <code>false</code> otherwise
448            * @throws SystemException if a system exception occurred
449            */
450            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
451            public boolean isSubscribed(long companyId, long userId,
452                    java.lang.String className, long classPK)
453                    throws com.liferay.portal.kernel.exception.SystemException;
454    
455            /**
456            * Returns <code>true</code> if the user is subscribed to any of the
457            * entities.
458            *
459            * @param companyId the primary key of the company
460            * @param userId the primary key of the user
461            * @param className the entity's class name
462            * @param classPKs the primary key of the entities
463            * @return <code>true</code> if the user is subscribed to any of the
464            entities; <code>false</code> otherwise
465            * @throws SystemException if a system exception occurred
466            */
467            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
468            public boolean isSubscribed(long companyId, long userId,
469                    java.lang.String className, long[] classPKs)
470                    throws com.liferay.portal.kernel.exception.SystemException;
471    }