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 }