001    /**
002     * Copyright (c) 2000-2011 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.portlet.social.service;
016    
017    import com.liferay.portal.kernel.exception.PortalException;
018    import com.liferay.portal.kernel.exception.SystemException;
019    import com.liferay.portal.kernel.transaction.Isolation;
020    import com.liferay.portal.kernel.transaction.Propagation;
021    import com.liferay.portal.kernel.transaction.Transactional;
022    import com.liferay.portal.service.PersistedModelLocalService;
023    
024    /**
025     * The interface for the social equity log local service.
026     *
027     * <p>
028     * This is a local service. 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.
029     * </p>
030     *
031     * @author Brian Wing Shun Chan
032     * @see SocialEquityLogLocalServiceUtil
033     * @see com.liferay.portlet.social.service.base.SocialEquityLogLocalServiceBaseImpl
034     * @see com.liferay.portlet.social.service.impl.SocialEquityLogLocalServiceImpl
035     * @generated
036     */
037    @Transactional(isolation = Isolation.PORTAL, rollbackFor =  {
038            PortalException.class, SystemException.class})
039    public interface SocialEquityLogLocalService extends PersistedModelLocalService {
040            /*
041             * NOTE FOR DEVELOPERS:
042             *
043             * Never modify or reference this interface directly. Always use {@link SocialEquityLogLocalServiceUtil} to access the social equity log local service. Add custom service methods to {@link com.liferay.portlet.social.service.impl.SocialEquityLogLocalServiceImpl} and rerun ServiceBuilder to automatically copy the method declarations to this interface.
044             */
045    
046            /**
047            * Adds the social equity log to the database. Also notifies the appropriate model listeners.
048            *
049            * @param socialEquityLog the social equity log
050            * @return the social equity log that was added
051            * @throws SystemException if a system exception occurred
052            */
053            public com.liferay.portlet.social.model.SocialEquityLog addSocialEquityLog(
054                    com.liferay.portlet.social.model.SocialEquityLog socialEquityLog)
055                    throws com.liferay.portal.kernel.exception.SystemException;
056    
057            /**
058            * Creates a new social equity log with the primary key. Does not add the social equity log to the database.
059            *
060            * @param equityLogId the primary key for the new social equity log
061            * @return the new social equity log
062            */
063            public com.liferay.portlet.social.model.SocialEquityLog createSocialEquityLog(
064                    long equityLogId);
065    
066            /**
067            * Deletes the social equity log with the primary key from the database. Also notifies the appropriate model listeners.
068            *
069            * @param equityLogId the primary key of the social equity log
070            * @throws PortalException if a social equity log with the primary key could not be found
071            * @throws SystemException if a system exception occurred
072            */
073            public void deleteSocialEquityLog(long equityLogId)
074                    throws com.liferay.portal.kernel.exception.PortalException,
075                            com.liferay.portal.kernel.exception.SystemException;
076    
077            /**
078            * Deletes the social equity log from the database. Also notifies the appropriate model listeners.
079            *
080            * @param socialEquityLog the social equity log
081            * @throws SystemException if a system exception occurred
082            */
083            public void deleteSocialEquityLog(
084                    com.liferay.portlet.social.model.SocialEquityLog socialEquityLog)
085                    throws com.liferay.portal.kernel.exception.SystemException;
086    
087            /**
088            * Performs a dynamic query on the database and returns the matching rows.
089            *
090            * @param dynamicQuery the dynamic query
091            * @return the matching rows
092            * @throws SystemException if a system exception occurred
093            */
094            @SuppressWarnings("rawtypes")
095            public java.util.List dynamicQuery(
096                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
097                    throws com.liferay.portal.kernel.exception.SystemException;
098    
099            /**
100            * Performs a dynamic query on the database and returns a range of the matching rows.
101            *
102            * <p>
103            * 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.
104            * </p>
105            *
106            * @param dynamicQuery the dynamic query
107            * @param start the lower bound of the range of model instances
108            * @param end the upper bound of the range of model instances (not inclusive)
109            * @return the range of matching rows
110            * @throws SystemException if a system exception occurred
111            */
112            @SuppressWarnings("rawtypes")
113            public java.util.List dynamicQuery(
114                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
115                    int end) throws com.liferay.portal.kernel.exception.SystemException;
116    
117            /**
118            * Performs a dynamic query on the database and returns an ordered range of the matching rows.
119            *
120            * <p>
121            * 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.
122            * </p>
123            *
124            * @param dynamicQuery the dynamic query
125            * @param start the lower bound of the range of model instances
126            * @param end the upper bound of the range of model instances (not inclusive)
127            * @param orderByComparator the comparator to order the results by (optionally <code>null</code>)
128            * @return the ordered range of matching rows
129            * @throws SystemException if a system exception occurred
130            */
131            @SuppressWarnings("rawtypes")
132            public java.util.List dynamicQuery(
133                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
134                    int end,
135                    com.liferay.portal.kernel.util.OrderByComparator orderByComparator)
136                    throws com.liferay.portal.kernel.exception.SystemException;
137    
138            /**
139            * Returns the number of rows that match the dynamic query.
140            *
141            * @param dynamicQuery the dynamic query
142            * @return the number of rows that match the dynamic query
143            * @throws SystemException if a system exception occurred
144            */
145            public long dynamicQueryCount(
146                    com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
147                    throws com.liferay.portal.kernel.exception.SystemException;
148    
149            /**
150            * Returns the social equity log with the primary key.
151            *
152            * @param equityLogId the primary key of the social equity log
153            * @return the social equity log
154            * @throws PortalException if a social equity log with the primary key could not be found
155            * @throws SystemException if a system exception occurred
156            */
157            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
158            public com.liferay.portlet.social.model.SocialEquityLog getSocialEquityLog(
159                    long equityLogId)
160                    throws com.liferay.portal.kernel.exception.PortalException,
161                            com.liferay.portal.kernel.exception.SystemException;
162    
163            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
164            public com.liferay.portal.model.PersistedModel getPersistedModel(
165                    java.io.Serializable primaryKeyObj)
166                    throws com.liferay.portal.kernel.exception.PortalException,
167                            com.liferay.portal.kernel.exception.SystemException;
168    
169            /**
170            * Returns a range of all the social equity logs.
171            *
172            * <p>
173            * 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.
174            * </p>
175            *
176            * @param start the lower bound of the range of social equity logs
177            * @param end the upper bound of the range of social equity logs (not inclusive)
178            * @return the range of social equity logs
179            * @throws SystemException if a system exception occurred
180            */
181            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
182            public java.util.List<com.liferay.portlet.social.model.SocialEquityLog> getSocialEquityLogs(
183                    int start, int end)
184                    throws com.liferay.portal.kernel.exception.SystemException;
185    
186            /**
187            * Returns the number of social equity logs.
188            *
189            * @return the number of social equity logs
190            * @throws SystemException if a system exception occurred
191            */
192            @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
193            public int getSocialEquityLogsCount()
194                    throws com.liferay.portal.kernel.exception.SystemException;
195    
196            /**
197            * Updates the social equity log in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
198            *
199            * @param socialEquityLog the social equity log
200            * @return the social equity log that was updated
201            * @throws SystemException if a system exception occurred
202            */
203            public com.liferay.portlet.social.model.SocialEquityLog updateSocialEquityLog(
204                    com.liferay.portlet.social.model.SocialEquityLog socialEquityLog)
205                    throws com.liferay.portal.kernel.exception.SystemException;
206    
207            /**
208            * Updates the social equity log in the database or adds it if it does not yet exist. Also notifies the appropriate model listeners.
209            *
210            * @param socialEquityLog the social equity log
211            * @param merge whether to merge the social equity log with the current session. See {@link com.liferay.portal.service.persistence.BatchSession#update(com.liferay.portal.kernel.dao.orm.Session, com.liferay.portal.model.BaseModel, boolean)} for an explanation.
212            * @return the social equity log that was updated
213            * @throws SystemException if a system exception occurred
214            */
215            public com.liferay.portlet.social.model.SocialEquityLog updateSocialEquityLog(
216                    com.liferay.portlet.social.model.SocialEquityLog socialEquityLog,
217                    boolean merge)
218                    throws com.liferay.portal.kernel.exception.SystemException;
219    
220            /**
221            * Returns the Spring bean ID for this bean.
222            *
223            * @return the Spring bean ID for this bean
224            */
225            public java.lang.String getBeanIdentifier();
226    
227            /**
228            * Sets the Spring bean ID for this bean.
229            *
230            * @param beanIdentifier the Spring bean ID for this bean
231            */
232            public void setBeanIdentifier(java.lang.String beanIdentifier);
233    
234            /**
235            * Records the social equity action and adjusts social equity scores.
236            *
237            * @param userId the primary key of the acting user
238            * @param assetEntryId the primary key of the target asset entry
239            * @param actionId the ID of the action
240            * @throws PortalException if the asset entry could not be found
241            * @throws SystemException if a system exception occurred
242            * @deprecated Replaced by {@link #addEquityLogs(long, long, String,
243            String)} to support the <code>extraData</code> parameter
244            */
245            public void addEquityLogs(long userId, long assetEntryId,
246                    java.lang.String actionId)
247                    throws com.liferay.portal.kernel.exception.PortalException,
248                            com.liferay.portal.kernel.exception.SystemException;
249    
250            /**
251            * Records the social equity action and adjusts social equity scores based
252            * on the user's action done on the target asset entry.
253            *
254            * <p>
255            * The <code>extraData</code> parameter can contain further information
256            * about the action such as the file name for a download action. It is used
257            * to distinguish between otherwise equal actions, such as multiple
258            * downloads of message boards attachments.
259            * </p>
260            *
261            * @param userId the primary key of the acting user
262            * @param assetEntryId the primary key of the target asset entry
263            * @param actionId the ID of the action
264            * @param extraData the extra data associated with the action
265            * @throws PortalException if the asset entry could not be found
266            * @throws SystemException if a system exception occurred
267            */
268            public void addEquityLogs(long userId, long assetEntryId,
269                    java.lang.String actionId, java.lang.String extraData)
270                    throws com.liferay.portal.kernel.exception.PortalException,
271                            com.liferay.portal.kernel.exception.SystemException;
272    
273            /**
274            * Records the social equity action and adjusts social equity scores based
275            * on the user's action done on the target asset entry identified by the
276            * className/classPK pair.
277            *
278            * <p>
279            * The <code>extraData</code> parameter can contain further information
280            * about the action such as the file name for a download action. It is used
281            * to distinguish between otherwise equal actions, such as multiple
282            * downloads of message boards attachments.
283            * </p>
284            *
285            * @param userId the primary key of the acting user
286            * @param className the class name of the target asset
287            * @param classPK the primary key of the target asset (not the asset entry
288            referring to it)
289            * @param actionId the ID of the action
290            * @param extraData the extra data associated with the action
291            * @throws PortalException if the asset entry could not be found
292            * @throws SystemException if a system exception occurred
293            */
294            public void addEquityLogs(long userId, java.lang.String className,
295                    long classPK, java.lang.String actionId, java.lang.String extraData)
296                    throws com.liferay.portal.kernel.exception.PortalException,
297                            com.liferay.portal.kernel.exception.SystemException;
298    
299            /**
300            * Inserts a new row for the asset entry into the
301            * <code>SocialEquityAssetEntry</code> table.
302            *
303            * <p>
304            * This method should not be used directly by portlets. It is made public
305            * so that it can be in its own transaction to safeguard against
306            * concurrency issues.
307            * </p>
308            *
309            * @param assetEntry the asset entry
310            * @throws SystemException if a system exception occurred
311            */
312            public void addSocialEquityAssetEntry(
313                    com.liferay.portlet.asset.model.AssetEntry assetEntry)
314                    throws com.liferay.portal.kernel.exception.SystemException;
315    
316            /**
317            * Inserts a new row for the user into the <code>SocialEquityUser</code>
318            * table.
319            *
320            * <p>
321            * This method should not be used directly by portlets. It is made public
322            * so that it can be in its own transaction to safeguard against
323            * concurrency issues.
324            * </p>
325            *
326            * @param groupId the primary key of the group the user is currently
327            acting in
328            * @param user the acting user
329            * @throws SystemException if a system exception occurred
330            */
331            public void addSocialEquityUser(long groupId,
332                    com.liferay.portal.model.User user)
333                    throws com.liferay.portal.kernel.exception.SystemException;
334    
335            /**
336            * This is a cleanup method to remove expired actions and any data
337            * associated with them.
338            *
339            * <p>
340            * <i>This method should normally only be called by the portal.</i>
341            * </p>
342            *
343            * <p>
344            * By default it is run by the scheduler once a day, but the frequency can
345            * be modified by overriding the
346            * <code>social.equity.equity.log.check.interval</code> property found in
347            * <code>portal.properties</code>.
348            * </p>
349            *
350            * @throws SystemException if a system exception occurred
351            */
352            public void checkEquityLogs()
353                    throws com.liferay.portal.kernel.exception.SystemException;
354    
355            /**
356            * Removes all actions associated with the asset and adjusts equity scores
357            * accordingly.
358            *
359            * <p>
360            * This method is called by the <code>AssetEntry</code> service
361            * automatically when an asset entry is deleted.
362            * </p>
363            *
364            * @param assetEntryId the primary key of the asset entry
365            * @throws SystemException if a system exception occurred
366            */
367            public void deactivateEquityLogs(long assetEntryId)
368                    throws com.liferay.portal.kernel.exception.SystemException;
369    
370            /**
371            * Removes actions identified by the acting user, the action ID and the
372            * target asset's primary key.
373            *
374            * @param userId the primary key of the acting user
375            * @param assetEntryId the primary key of the target asset entry
376            * @param actionId the ID of the action
377            * @throws PortalException if the asset entry could not be found
378            * @throws SystemException if a system exception occurred
379            * @deprecated Replaced by {@link #deactivateEquityLogs(long, String, long,
380            String, String)} to support the <code>extraData</code>
381            parameter
382            */
383            public void deactivateEquityLogs(long userId, long assetEntryId,
384                    java.lang.String actionId)
385                    throws com.liferay.portal.kernel.exception.PortalException,
386                            com.liferay.portal.kernel.exception.SystemException;
387    
388            /**
389            * Removes actions identified by the acting user, the action ID and the
390            * target asset's className/classPK pair.
391            *
392            * @param userId the primary key of the acting user
393            * @param className the class name of the target asset
394            * @param classPK the primary key of the target asset (not the asset
395            entry referring to it)
396            * @param actionId the ID of the action
397            * @throws PortalException if the asset entry cannot be retrieved
398            * @throws SystemException if a system exception occurred
399            * @deprecated Replaced by {@link #deactivateEquityLogs(long, String, long,
400            String, String)} to support the <code>extraData</code>
401            parameter
402            */
403            public void deactivateEquityLogs(long userId, java.lang.String className,
404                    long classPK, java.lang.String actionId)
405                    throws com.liferay.portal.kernel.exception.PortalException,
406                            com.liferay.portal.kernel.exception.SystemException;
407    
408            /**
409            * Removes actions identified by the acting user, the action ID and the
410            * target asset's className/classPK pair.
411            *
412            * <p>
413            * The <code>extraData</code> parameter can be used to further identify the
414            * action.
415            * </p>
416            *
417            * @param userId the primary key of the acting user
418            * @param className the class name of the target asset
419            * @param classPK the primary key of the target asset (not the asset entry
420            referring to it)
421            * @param actionId the ID of the action
422            * @param extraData the extra data associated with the action
423            * @throws PortalException if the asset entry cannot be retrieved
424            * @throws SystemException if a system exception occurred
425            */
426            public void deactivateEquityLogs(long userId, java.lang.String className,
427                    long classPK, java.lang.String actionId, java.lang.String extraData)
428                    throws com.liferay.portal.kernel.exception.PortalException,
429                            com.liferay.portal.kernel.exception.SystemException;
430    
431            /**
432            * Removes actions identified by action ID done on an asset by any user.
433            *
434            * @param className the class name of the target asset
435            * @param classPK the primary key of the target asset (not the asset entry
436            referring to it)
437            * @param actionId the ID of the action
438            * @param extraData the extra data associated with the action
439            * @throws PortalException if the asset entry cannot be retrieved
440            * @throws SystemException if a system exception occurred
441            */
442            public void deactivateEquityLogs(java.lang.String className, long classPK,
443                    java.lang.String actionId, java.lang.String extraData)
444                    throws com.liferay.portal.kernel.exception.PortalException,
445                            com.liferay.portal.kernel.exception.SystemException;
446    
447            /**
448            * Removes all actions done by the user.
449            *
450            * <p>
451            * This method is called by the portal when a user is deleted.
452            * </p>
453            *
454            * @param userId the primary key of the user
455            * @throws SystemException if a system exception occurred
456            */
457            public void deactivateUserEquityLogs(long userId)
458                    throws com.liferay.portal.kernel.exception.SystemException;
459    
460            /**
461            * Increments the information equity value of the asset by the number set
462            * in the equity payload.
463            *
464            * <p>
465            * This method is annotated with the <code>BufferedIncrement</code>
466            * annotation, which means that in case of heavy load, invocations of this
467            * method can be aggregated into one method call containing the sum of the
468            * individual increments.
469            * </p>
470            *
471            * <p>
472            * <i>This method should not be called directly by portlets. It is made
473            * public only to accommodate the <code>BufferedIncrement</code>
474            * annotation.</i>
475            * </p>
476            *
477            * @param assetEntryId the primary key of the target asset entry
478            * @param equityPayload the equity payload containing the increments
479            * @throws SystemException if a system exception occurred
480            */
481            public void incrementSocialEquityAssetEntry_IQ(long assetEntryId,
482                    com.liferay.portlet.social.model.SocialEquityIncrementPayload equityPayload)
483                    throws com.liferay.portal.kernel.exception.SystemException;
484    
485            /**
486            * Increments the contribution equity value of the user by the number set
487            * in the equity payload.
488            *
489            * <p>
490            * This method is annotated with the <code>BufferedIncrement</code>
491            * annotation, which means that in case of heavy load, invocations of this
492            * method can be aggregated into one method call containing the sum of the
493            * individual increments.
494            * </p>
495            *
496            * <P>
497            * <i>This method should not be called directly by portlets. It is made
498            * public only to accommodate the <code>BufferedIncrement</code>
499            * annotation.</i>
500            * </p>
501            *
502            * @param groupId the primary key of the group in which the user is acting
503            * @param userId the primary key of the acting user
504            * @param equityPayload the equity payload containing the increments
505            * @throws SystemException if a system exception occurred
506            */
507            public void incrementSocialEquityUser_CQ(long groupId, long userId,
508                    com.liferay.portlet.social.model.SocialEquityIncrementPayload equityPayload)
509                    throws com.liferay.portal.kernel.exception.SystemException;
510    
511            /**
512            * Increments the participation equity value of the user by the number set
513            * in the equity payload.
514            *
515            * <p>
516            * This method is annotated with the <code>BufferedIncrement</code>
517            * annotation, which means that in case of heavy load, invocations of this
518            * method can be aggregated into one method call containing the sum of the
519            * individual increments.
520            * </p>
521            *
522            * <p>
523            * <i>This method should not be called directly by portlets. It is made
524            * public only to accommodate the <code>BufferedIncrement</code>
525            * annotation. </i>
526            * </p>
527            *
528            * @param groupId the primary key of the group in which the user is acting
529            * @param userId the primary key of the acting user
530            * @param equityPayload the equity payload containing the increments
531            * @throws SystemException if a system exception occurred
532            */
533            public void incrementSocialEquityUser_PQ(long groupId, long userId,
534                    com.liferay.portlet.social.model.SocialEquityIncrementPayload equityPayload)
535                    throws com.liferay.portal.kernel.exception.SystemException;
536    
537            /**
538            * Updates user ranking for all groups.
539            */
540            public void updateRanks();
541    
542            /**
543            * Updates user ranking for a group.
544            *
545            * @param groupId the primary key of the group
546            */
547            public void updateRanks(long groupId);
548    }