1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portlet.social.service.persistence;
21  
22  import com.liferay.portal.SystemException;
23  import com.liferay.portal.kernel.annotation.BeanReference;
24  import com.liferay.portal.kernel.cache.CacheRegistry;
25  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
26  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
27  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
28  import com.liferay.portal.kernel.dao.orm.FinderPath;
29  import com.liferay.portal.kernel.dao.orm.Query;
30  import com.liferay.portal.kernel.dao.orm.QueryPos;
31  import com.liferay.portal.kernel.dao.orm.QueryUtil;
32  import com.liferay.portal.kernel.dao.orm.Session;
33  import com.liferay.portal.kernel.log.Log;
34  import com.liferay.portal.kernel.log.LogFactoryUtil;
35  import com.liferay.portal.kernel.util.CalendarUtil;
36  import com.liferay.portal.kernel.util.GetterUtil;
37  import com.liferay.portal.kernel.util.OrderByComparator;
38  import com.liferay.portal.kernel.util.StringPool;
39  import com.liferay.portal.kernel.util.StringUtil;
40  import com.liferay.portal.kernel.util.Validator;
41  import com.liferay.portal.model.ModelListener;
42  import com.liferay.portal.service.persistence.BatchSessionUtil;
43  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
44  
45  import com.liferay.portlet.social.NoSuchActivityException;
46  import com.liferay.portlet.social.model.SocialActivity;
47  import com.liferay.portlet.social.model.impl.SocialActivityImpl;
48  import com.liferay.portlet.social.model.impl.SocialActivityModelImpl;
49  
50  import java.util.ArrayList;
51  import java.util.Collections;
52  import java.util.Date;
53  import java.util.List;
54  
55  /**
56   * <a href="SocialActivityPersistenceImpl.java.html"><b><i>View Source</i></b></a>
57   *
58   * @author Brian Wing Shun Chan
59   *
60   */
61  public class SocialActivityPersistenceImpl extends BasePersistenceImpl
62      implements SocialActivityPersistence {
63      public static final String FINDER_CLASS_NAME_ENTITY = SocialActivityImpl.class.getName();
64      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
65          ".List";
66      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
67              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
68              FINDER_CLASS_NAME_LIST, "findByGroupId",
69              new String[] { Long.class.getName() });
70      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
71              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
72              FINDER_CLASS_NAME_LIST, "findByGroupId",
73              new String[] {
74                  Long.class.getName(),
75                  
76              "java.lang.Integer", "java.lang.Integer",
77                  "com.liferay.portal.kernel.util.OrderByComparator"
78              });
79      public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
80              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
81              FINDER_CLASS_NAME_LIST, "countByGroupId",
82              new String[] { Long.class.getName() });
83      public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
84              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "findByCompanyId",
86              new String[] { Long.class.getName() });
87      public static final FinderPath FINDER_PATH_FIND_BY_OBC_COMPANYID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
88              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
89              FINDER_CLASS_NAME_LIST, "findByCompanyId",
90              new String[] {
91                  Long.class.getName(),
92                  
93              "java.lang.Integer", "java.lang.Integer",
94                  "com.liferay.portal.kernel.util.OrderByComparator"
95              });
96      public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
97              SocialActivityModelImpl.FINDER_CACHE_ENABLED,
98              FINDER_CLASS_NAME_LIST, "countByCompanyId",
99              new String[] { Long.class.getName() });
100     public static final FinderPath FINDER_PATH_FIND_BY_USERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
101             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
102             FINDER_CLASS_NAME_LIST, "findByUserId",
103             new String[] { Long.class.getName() });
104     public static final FinderPath FINDER_PATH_FIND_BY_OBC_USERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
105             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
106             FINDER_CLASS_NAME_LIST, "findByUserId",
107             new String[] {
108                 Long.class.getName(),
109                 
110             "java.lang.Integer", "java.lang.Integer",
111                 "com.liferay.portal.kernel.util.OrderByComparator"
112             });
113     public static final FinderPath FINDER_PATH_COUNT_BY_USERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
114             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
115             FINDER_CLASS_NAME_LIST, "countByUserId",
116             new String[] { Long.class.getName() });
117     public static final FinderPath FINDER_PATH_FETCH_BY_MIRRORACTIVITYID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
118             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
119             FINDER_CLASS_NAME_ENTITY, "fetchByMirrorActivityId",
120             new String[] { Long.class.getName() });
121     public static final FinderPath FINDER_PATH_COUNT_BY_MIRRORACTIVITYID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
122             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
123             FINDER_CLASS_NAME_LIST, "countByMirrorActivityId",
124             new String[] { Long.class.getName() });
125     public static final FinderPath FINDER_PATH_FIND_BY_CLASSNAMEID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
126             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
127             FINDER_CLASS_NAME_LIST, "findByClassNameId",
128             new String[] { Long.class.getName() });
129     public static final FinderPath FINDER_PATH_FIND_BY_OBC_CLASSNAMEID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
130             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
131             FINDER_CLASS_NAME_LIST, "findByClassNameId",
132             new String[] {
133                 Long.class.getName(),
134                 
135             "java.lang.Integer", "java.lang.Integer",
136                 "com.liferay.portal.kernel.util.OrderByComparator"
137             });
138     public static final FinderPath FINDER_PATH_COUNT_BY_CLASSNAMEID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
139             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
140             FINDER_CLASS_NAME_LIST, "countByClassNameId",
141             new String[] { Long.class.getName() });
142     public static final FinderPath FINDER_PATH_FIND_BY_RECEIVERUSERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
143             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
144             FINDER_CLASS_NAME_LIST, "findByReceiverUserId",
145             new String[] { Long.class.getName() });
146     public static final FinderPath FINDER_PATH_FIND_BY_OBC_RECEIVERUSERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
147             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
148             FINDER_CLASS_NAME_LIST, "findByReceiverUserId",
149             new String[] {
150                 Long.class.getName(),
151                 
152             "java.lang.Integer", "java.lang.Integer",
153                 "com.liferay.portal.kernel.util.OrderByComparator"
154             });
155     public static final FinderPath FINDER_PATH_COUNT_BY_RECEIVERUSERID = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
156             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
157             FINDER_CLASS_NAME_LIST, "countByReceiverUserId",
158             new String[] { Long.class.getName() });
159     public static final FinderPath FINDER_PATH_FIND_BY_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
160             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
161             FINDER_CLASS_NAME_LIST, "findByC_C",
162             new String[] { Long.class.getName(), Long.class.getName() });
163     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
164             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
165             FINDER_CLASS_NAME_LIST, "findByC_C",
166             new String[] {
167                 Long.class.getName(), Long.class.getName(),
168                 
169             "java.lang.Integer", "java.lang.Integer",
170                 "com.liferay.portal.kernel.util.OrderByComparator"
171             });
172     public static final FinderPath FINDER_PATH_COUNT_BY_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
173             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
174             FINDER_CLASS_NAME_LIST, "countByC_C",
175             new String[] { Long.class.getName(), Long.class.getName() });
176     public static final FinderPath FINDER_PATH_FIND_BY_M_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
177             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
178             FINDER_CLASS_NAME_LIST, "findByM_C_C",
179             new String[] {
180                 Long.class.getName(), Long.class.getName(), Long.class.getName()
181             });
182     public static final FinderPath FINDER_PATH_FIND_BY_OBC_M_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
183             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
184             FINDER_CLASS_NAME_LIST, "findByM_C_C",
185             new String[] {
186                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
187                 
188             "java.lang.Integer", "java.lang.Integer",
189                 "com.liferay.portal.kernel.util.OrderByComparator"
190             });
191     public static final FinderPath FINDER_PATH_COUNT_BY_M_C_C = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
192             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
193             FINDER_CLASS_NAME_LIST, "countByM_C_C",
194             new String[] {
195                 Long.class.getName(), Long.class.getName(), Long.class.getName()
196             });
197     public static final FinderPath FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
198             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
199             FINDER_CLASS_NAME_ENTITY, "fetchByG_U_CD_C_C_T_R",
200             new String[] {
201                 Long.class.getName(), Long.class.getName(), Date.class.getName(),
202                 Long.class.getName(), Long.class.getName(),
203                 Integer.class.getName(), Long.class.getName()
204             });
205     public static final FinderPath FINDER_PATH_COUNT_BY_G_U_CD_C_C_T_R = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
206             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
207             FINDER_CLASS_NAME_LIST, "countByG_U_CD_C_C_T_R",
208             new String[] {
209                 Long.class.getName(), Long.class.getName(), Date.class.getName(),
210                 Long.class.getName(), Long.class.getName(),
211                 Integer.class.getName(), Long.class.getName()
212             });
213     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
214             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
215             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
216     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
217             SocialActivityModelImpl.FINDER_CACHE_ENABLED,
218             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
219 
220     public void cacheResult(SocialActivity socialActivity) {
221         EntityCacheUtil.putResult(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
222             SocialActivityImpl.class, socialActivity.getPrimaryKey(),
223             socialActivity);
224 
225         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
226             new Object[] { new Long(socialActivity.getMirrorActivityId()) },
227             socialActivity);
228 
229         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
230             new Object[] {
231                 new Long(socialActivity.getGroupId()),
232                 new Long(socialActivity.getUserId()),
233                 
234             socialActivity.getCreateDate(),
235                 new Long(socialActivity.getClassNameId()),
236                 new Long(socialActivity.getClassPK()),
237                 new Integer(socialActivity.getType()),
238                 new Long(socialActivity.getReceiverUserId())
239             }, socialActivity);
240     }
241 
242     public void cacheResult(List<SocialActivity> socialActivities) {
243         for (SocialActivity socialActivity : socialActivities) {
244             if (EntityCacheUtil.getResult(
245                         SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
246                         SocialActivityImpl.class,
247                         socialActivity.getPrimaryKey(), this) == null) {
248                 cacheResult(socialActivity);
249             }
250         }
251     }
252 
253     public void clearCache() {
254         CacheRegistry.clear(SocialActivityImpl.class.getName());
255         EntityCacheUtil.clearCache(SocialActivityImpl.class.getName());
256         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
257         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
258     }
259 
260     public SocialActivity create(long activityId) {
261         SocialActivity socialActivity = new SocialActivityImpl();
262 
263         socialActivity.setNew(true);
264         socialActivity.setPrimaryKey(activityId);
265 
266         return socialActivity;
267     }
268 
269     public SocialActivity remove(long activityId)
270         throws NoSuchActivityException, SystemException {
271         Session session = null;
272 
273         try {
274             session = openSession();
275 
276             SocialActivity socialActivity = (SocialActivity)session.get(SocialActivityImpl.class,
277                     new Long(activityId));
278 
279             if (socialActivity == null) {
280                 if (_log.isWarnEnabled()) {
281                     _log.warn("No SocialActivity exists with the primary key " +
282                         activityId);
283                 }
284 
285                 throw new NoSuchActivityException(
286                     "No SocialActivity exists with the primary key " +
287                     activityId);
288             }
289 
290             return remove(socialActivity);
291         }
292         catch (NoSuchActivityException nsee) {
293             throw nsee;
294         }
295         catch (Exception e) {
296             throw processException(e);
297         }
298         finally {
299             closeSession(session);
300         }
301     }
302 
303     public SocialActivity remove(SocialActivity socialActivity)
304         throws SystemException {
305         for (ModelListener<SocialActivity> listener : listeners) {
306             listener.onBeforeRemove(socialActivity);
307         }
308 
309         socialActivity = removeImpl(socialActivity);
310 
311         for (ModelListener<SocialActivity> listener : listeners) {
312             listener.onAfterRemove(socialActivity);
313         }
314 
315         return socialActivity;
316     }
317 
318     protected SocialActivity removeImpl(SocialActivity socialActivity)
319         throws SystemException {
320         Session session = null;
321 
322         try {
323             session = openSession();
324 
325             if (socialActivity.isCachedModel() || BatchSessionUtil.isEnabled()) {
326                 Object staleObject = session.get(SocialActivityImpl.class,
327                         socialActivity.getPrimaryKeyObj());
328 
329                 if (staleObject != null) {
330                     session.evict(staleObject);
331                 }
332             }
333 
334             session.delete(socialActivity);
335 
336             session.flush();
337         }
338         catch (Exception e) {
339             throw processException(e);
340         }
341         finally {
342             closeSession(session);
343         }
344 
345         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
346 
347         SocialActivityModelImpl socialActivityModelImpl = (SocialActivityModelImpl)socialActivity;
348 
349         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
350             new Object[] {
351                 new Long(socialActivityModelImpl.getOriginalMirrorActivityId())
352             });
353 
354         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
355             new Object[] {
356                 new Long(socialActivityModelImpl.getOriginalGroupId()),
357                 new Long(socialActivityModelImpl.getOriginalUserId()),
358                 
359             socialActivityModelImpl.getOriginalCreateDate(),
360                 new Long(socialActivityModelImpl.getOriginalClassNameId()),
361                 new Long(socialActivityModelImpl.getOriginalClassPK()),
362                 new Integer(socialActivityModelImpl.getOriginalType()),
363                 new Long(socialActivityModelImpl.getOriginalReceiverUserId())
364             });
365 
366         EntityCacheUtil.removeResult(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
367             SocialActivityImpl.class, socialActivity.getPrimaryKey());
368 
369         return socialActivity;
370     }
371 
372     /**
373      * @deprecated Use <code>update(SocialActivity socialActivity, boolean merge)</code>.
374      */
375     public SocialActivity update(SocialActivity socialActivity)
376         throws SystemException {
377         if (_log.isWarnEnabled()) {
378             _log.warn(
379                 "Using the deprecated update(SocialActivity socialActivity) method. Use update(SocialActivity socialActivity, boolean merge) instead.");
380         }
381 
382         return update(socialActivity, false);
383     }
384 
385     /**
386      * Add, update, or merge, the entity. This method also calls the model
387      * listeners to trigger the proper events associated with adding, deleting,
388      * or updating an entity.
389      *
390      * @param        socialActivity the entity to add, update, or merge
391      * @param        merge boolean value for whether to merge the entity. The
392      *                default value is false. Setting merge to true is more
393      *                expensive and should only be true when socialActivity is
394      *                transient. See LEP-5473 for a detailed discussion of this
395      *                method.
396      * @return        true if the portlet can be displayed via Ajax
397      */
398     public SocialActivity update(SocialActivity socialActivity, boolean merge)
399         throws SystemException {
400         boolean isNew = socialActivity.isNew();
401 
402         for (ModelListener<SocialActivity> listener : listeners) {
403             if (isNew) {
404                 listener.onBeforeCreate(socialActivity);
405             }
406             else {
407                 listener.onBeforeUpdate(socialActivity);
408             }
409         }
410 
411         socialActivity = updateImpl(socialActivity, merge);
412 
413         for (ModelListener<SocialActivity> listener : listeners) {
414             if (isNew) {
415                 listener.onAfterCreate(socialActivity);
416             }
417             else {
418                 listener.onAfterUpdate(socialActivity);
419             }
420         }
421 
422         return socialActivity;
423     }
424 
425     public SocialActivity updateImpl(
426         com.liferay.portlet.social.model.SocialActivity socialActivity,
427         boolean merge) throws SystemException {
428         boolean isNew = socialActivity.isNew();
429 
430         SocialActivityModelImpl socialActivityModelImpl = (SocialActivityModelImpl)socialActivity;
431 
432         Session session = null;
433 
434         try {
435             session = openSession();
436 
437             BatchSessionUtil.update(session, socialActivity, merge);
438 
439             socialActivity.setNew(false);
440         }
441         catch (Exception e) {
442             throw processException(e);
443         }
444         finally {
445             closeSession(session);
446         }
447 
448         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
449 
450         EntityCacheUtil.putResult(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
451             SocialActivityImpl.class, socialActivity.getPrimaryKey(),
452             socialActivity);
453 
454         if (!isNew &&
455                 (socialActivity.getMirrorActivityId() != socialActivityModelImpl.getOriginalMirrorActivityId())) {
456             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
457                 new Object[] {
458                     new Long(socialActivityModelImpl.getOriginalMirrorActivityId())
459                 });
460         }
461 
462         if (isNew ||
463                 (socialActivity.getMirrorActivityId() != socialActivityModelImpl.getOriginalMirrorActivityId())) {
464             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
465                 new Object[] { new Long(socialActivity.getMirrorActivityId()) },
466                 socialActivity);
467         }
468 
469         if (!isNew &&
470                 ((socialActivity.getGroupId() != socialActivityModelImpl.getOriginalGroupId()) ||
471                 (socialActivity.getUserId() != socialActivityModelImpl.getOriginalUserId()) ||
472                 !Validator.equals(socialActivity.getCreateDate(),
473                     socialActivityModelImpl.getOriginalCreateDate()) ||
474                 (socialActivity.getClassNameId() != socialActivityModelImpl.getOriginalClassNameId()) ||
475                 (socialActivity.getClassPK() != socialActivityModelImpl.getOriginalClassPK()) ||
476                 (socialActivity.getType() != socialActivityModelImpl.getOriginalType()) ||
477                 (socialActivity.getReceiverUserId() != socialActivityModelImpl.getOriginalReceiverUserId()))) {
478             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
479                 new Object[] {
480                     new Long(socialActivityModelImpl.getOriginalGroupId()),
481                     new Long(socialActivityModelImpl.getOriginalUserId()),
482                     
483                 socialActivityModelImpl.getOriginalCreateDate(),
484                     new Long(socialActivityModelImpl.getOriginalClassNameId()),
485                     new Long(socialActivityModelImpl.getOriginalClassPK()),
486                     new Integer(socialActivityModelImpl.getOriginalType()),
487                     new Long(socialActivityModelImpl.getOriginalReceiverUserId())
488                 });
489         }
490 
491         if (isNew ||
492                 ((socialActivity.getGroupId() != socialActivityModelImpl.getOriginalGroupId()) ||
493                 (socialActivity.getUserId() != socialActivityModelImpl.getOriginalUserId()) ||
494                 !Validator.equals(socialActivity.getCreateDate(),
495                     socialActivityModelImpl.getOriginalCreateDate()) ||
496                 (socialActivity.getClassNameId() != socialActivityModelImpl.getOriginalClassNameId()) ||
497                 (socialActivity.getClassPK() != socialActivityModelImpl.getOriginalClassPK()) ||
498                 (socialActivity.getType() != socialActivityModelImpl.getOriginalType()) ||
499                 (socialActivity.getReceiverUserId() != socialActivityModelImpl.getOriginalReceiverUserId()))) {
500             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
501                 new Object[] {
502                     new Long(socialActivity.getGroupId()),
503                     new Long(socialActivity.getUserId()),
504                     
505                 socialActivity.getCreateDate(),
506                     new Long(socialActivity.getClassNameId()),
507                     new Long(socialActivity.getClassPK()),
508                     new Integer(socialActivity.getType()),
509                     new Long(socialActivity.getReceiverUserId())
510                 }, socialActivity);
511         }
512 
513         return socialActivity;
514     }
515 
516     public SocialActivity findByPrimaryKey(long activityId)
517         throws NoSuchActivityException, SystemException {
518         SocialActivity socialActivity = fetchByPrimaryKey(activityId);
519 
520         if (socialActivity == null) {
521             if (_log.isWarnEnabled()) {
522                 _log.warn("No SocialActivity exists with the primary key " +
523                     activityId);
524             }
525 
526             throw new NoSuchActivityException(
527                 "No SocialActivity exists with the primary key " + activityId);
528         }
529 
530         return socialActivity;
531     }
532 
533     public SocialActivity fetchByPrimaryKey(long activityId)
534         throws SystemException {
535         SocialActivity socialActivity = (SocialActivity)EntityCacheUtil.getResult(SocialActivityModelImpl.ENTITY_CACHE_ENABLED,
536                 SocialActivityImpl.class, activityId, this);
537 
538         if (socialActivity == null) {
539             Session session = null;
540 
541             try {
542                 session = openSession();
543 
544                 socialActivity = (SocialActivity)session.get(SocialActivityImpl.class,
545                         new Long(activityId));
546             }
547             catch (Exception e) {
548                 throw processException(e);
549             }
550             finally {
551                 if (socialActivity != null) {
552                     cacheResult(socialActivity);
553                 }
554 
555                 closeSession(session);
556             }
557         }
558 
559         return socialActivity;
560     }
561 
562     public List<SocialActivity> findByGroupId(long groupId)
563         throws SystemException {
564         Object[] finderArgs = new Object[] { new Long(groupId) };
565 
566         List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
567                 finderArgs, this);
568 
569         if (list == null) {
570             Session session = null;
571 
572             try {
573                 session = openSession();
574 
575                 StringBuilder query = new StringBuilder();
576 
577                 query.append(
578                     "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
579 
580                 query.append("socialActivity.groupId = ?");
581 
582                 query.append(" ");
583 
584                 query.append("ORDER BY ");
585 
586                 query.append("socialActivity.createDate DESC");
587 
588                 Query q = session.createQuery(query.toString());
589 
590                 QueryPos qPos = QueryPos.getInstance(q);
591 
592                 qPos.add(groupId);
593 
594                 list = q.list();
595             }
596             catch (Exception e) {
597                 throw processException(e);
598             }
599             finally {
600                 if (list == null) {
601                     list = new ArrayList<SocialActivity>();
602                 }
603 
604                 cacheResult(list);
605 
606                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
607                     finderArgs, list);
608 
609                 closeSession(session);
610             }
611         }
612 
613         return list;
614     }
615 
616     public List<SocialActivity> findByGroupId(long groupId, int start, int end)
617         throws SystemException {
618         return findByGroupId(groupId, start, end, null);
619     }
620 
621     public List<SocialActivity> findByGroupId(long groupId, int start, int end,
622         OrderByComparator obc) throws SystemException {
623         Object[] finderArgs = new Object[] {
624                 new Long(groupId),
625                 
626                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
627             };
628 
629         List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
630                 finderArgs, this);
631 
632         if (list == null) {
633             Session session = null;
634 
635             try {
636                 session = openSession();
637 
638                 StringBuilder query = new StringBuilder();
639 
640                 query.append(
641                     "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
642 
643                 query.append("socialActivity.groupId = ?");
644 
645                 query.append(" ");
646 
647                 if (obc != null) {
648                     query.append("ORDER BY ");
649 
650                     String[] orderByFields = obc.getOrderByFields();
651 
652                     for (int i = 0; i < orderByFields.length; i++) {
653                         query.append("socialActivity.");
654                         query.append(orderByFields[i]);
655 
656                         if (obc.isAscending()) {
657                             query.append(" ASC");
658                         }
659                         else {
660                             query.append(" DESC");
661                         }
662 
663                         if ((i + 1) < orderByFields.length) {
664                             query.append(", ");
665                         }
666                     }
667                 }
668 
669                 else {
670                     query.append("ORDER BY ");
671 
672                     query.append("socialActivity.createDate DESC");
673                 }
674 
675                 Query q = session.createQuery(query.toString());
676 
677                 QueryPos qPos = QueryPos.getInstance(q);
678 
679                 qPos.add(groupId);
680 
681                 list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
682                         start, end);
683             }
684             catch (Exception e) {
685                 throw processException(e);
686             }
687             finally {
688                 if (list == null) {
689                     list = new ArrayList<SocialActivity>();
690                 }
691 
692                 cacheResult(list);
693 
694                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
695                     finderArgs, list);
696 
697                 closeSession(session);
698             }
699         }
700 
701         return list;
702     }
703 
704     public SocialActivity findByGroupId_First(long groupId,
705         OrderByComparator obc) throws NoSuchActivityException, SystemException {
706         List<SocialActivity> list = findByGroupId(groupId, 0, 1, obc);
707 
708         if (list.isEmpty()) {
709             StringBuilder msg = new StringBuilder();
710 
711             msg.append("No SocialActivity exists with the key {");
712 
713             msg.append("groupId=" + groupId);
714 
715             msg.append(StringPool.CLOSE_CURLY_BRACE);
716 
717             throw new NoSuchActivityException(msg.toString());
718         }
719         else {
720             return list.get(0);
721         }
722     }
723 
724     public SocialActivity findByGroupId_Last(long groupId, OrderByComparator obc)
725         throws NoSuchActivityException, SystemException {
726         int count = countByGroupId(groupId);
727 
728         List<SocialActivity> list = findByGroupId(groupId, count - 1, count, obc);
729 
730         if (list.isEmpty()) {
731             StringBuilder msg = new StringBuilder();
732 
733             msg.append("No SocialActivity exists with the key {");
734 
735             msg.append("groupId=" + groupId);
736 
737             msg.append(StringPool.CLOSE_CURLY_BRACE);
738 
739             throw new NoSuchActivityException(msg.toString());
740         }
741         else {
742             return list.get(0);
743         }
744     }
745 
746     public SocialActivity[] findByGroupId_PrevAndNext(long activityId,
747         long groupId, OrderByComparator obc)
748         throws NoSuchActivityException, SystemException {
749         SocialActivity socialActivity = findByPrimaryKey(activityId);
750 
751         int count = countByGroupId(groupId);
752 
753         Session session = null;
754 
755         try {
756             session = openSession();
757 
758             StringBuilder query = new StringBuilder();
759 
760             query.append(
761                 "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
762 
763             query.append("socialActivity.groupId = ?");
764 
765             query.append(" ");
766 
767             if (obc != null) {
768                 query.append("ORDER BY ");
769 
770                 String[] orderByFields = obc.getOrderByFields();
771 
772                 for (int i = 0; i < orderByFields.length; i++) {
773                     query.append("socialActivity.");
774                     query.append(orderByFields[i]);
775 
776                     if (obc.isAscending()) {
777                         query.append(" ASC");
778                     }
779                     else {
780                         query.append(" DESC");
781                     }
782 
783                     if ((i + 1) < orderByFields.length) {
784                         query.append(", ");
785                     }
786                 }
787             }
788 
789             else {
790                 query.append("ORDER BY ");
791 
792                 query.append("socialActivity.createDate DESC");
793             }
794 
795             Query q = session.createQuery(query.toString());
796 
797             QueryPos qPos = QueryPos.getInstance(q);
798 
799             qPos.add(groupId);
800 
801             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
802                     socialActivity);
803 
804             SocialActivity[] array = new SocialActivityImpl[3];
805 
806             array[0] = (SocialActivity)objArray[0];
807             array[1] = (SocialActivity)objArray[1];
808             array[2] = (SocialActivity)objArray[2];
809 
810             return array;
811         }
812         catch (Exception e) {
813             throw processException(e);
814         }
815         finally {
816             closeSession(session);
817         }
818     }
819 
820     public List<SocialActivity> findByCompanyId(long companyId)
821         throws SystemException {
822         Object[] finderArgs = new Object[] { new Long(companyId) };
823 
824         List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
825                 finderArgs, this);
826 
827         if (list == null) {
828             Session session = null;
829 
830             try {
831                 session = openSession();
832 
833                 StringBuilder query = new StringBuilder();
834 
835                 query.append(
836                     "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
837 
838                 query.append("socialActivity.companyId = ?");
839 
840                 query.append(" ");
841 
842                 query.append("ORDER BY ");
843 
844                 query.append("socialActivity.createDate DESC");
845 
846                 Query q = session.createQuery(query.toString());
847 
848                 QueryPos qPos = QueryPos.getInstance(q);
849 
850                 qPos.add(companyId);
851 
852                 list = q.list();
853             }
854             catch (Exception e) {
855                 throw processException(e);
856             }
857             finally {
858                 if (list == null) {
859                     list = new ArrayList<SocialActivity>();
860                 }
861 
862                 cacheResult(list);
863 
864                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
865                     finderArgs, list);
866 
867                 closeSession(session);
868             }
869         }
870 
871         return list;
872     }
873 
874     public List<SocialActivity> findByCompanyId(long companyId, int start,
875         int end) throws SystemException {
876         return findByCompanyId(companyId, start, end, null);
877     }
878 
879     public List<SocialActivity> findByCompanyId(long companyId, int start,
880         int end, OrderByComparator obc) throws SystemException {
881         Object[] finderArgs = new Object[] {
882                 new Long(companyId),
883                 
884                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
885             };
886 
887         List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
888                 finderArgs, this);
889 
890         if (list == null) {
891             Session session = null;
892 
893             try {
894                 session = openSession();
895 
896                 StringBuilder query = new StringBuilder();
897 
898                 query.append(
899                     "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
900 
901                 query.append("socialActivity.companyId = ?");
902 
903                 query.append(" ");
904 
905                 if (obc != null) {
906                     query.append("ORDER BY ");
907 
908                     String[] orderByFields = obc.getOrderByFields();
909 
910                     for (int i = 0; i < orderByFields.length; i++) {
911                         query.append("socialActivity.");
912                         query.append(orderByFields[i]);
913 
914                         if (obc.isAscending()) {
915                             query.append(" ASC");
916                         }
917                         else {
918                             query.append(" DESC");
919                         }
920 
921                         if ((i + 1) < orderByFields.length) {
922                             query.append(", ");
923                         }
924                     }
925                 }
926 
927                 else {
928                     query.append("ORDER BY ");
929 
930                     query.append("socialActivity.createDate DESC");
931                 }
932 
933                 Query q = session.createQuery(query.toString());
934 
935                 QueryPos qPos = QueryPos.getInstance(q);
936 
937                 qPos.add(companyId);
938 
939                 list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
940                         start, end);
941             }
942             catch (Exception e) {
943                 throw processException(e);
944             }
945             finally {
946                 if (list == null) {
947                     list = new ArrayList<SocialActivity>();
948                 }
949 
950                 cacheResult(list);
951 
952                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
953                     finderArgs, list);
954 
955                 closeSession(session);
956             }
957         }
958 
959         return list;
960     }
961 
962     public SocialActivity findByCompanyId_First(long companyId,
963         OrderByComparator obc) throws NoSuchActivityException, SystemException {
964         List<SocialActivity> list = findByCompanyId(companyId, 0, 1, obc);
965 
966         if (list.isEmpty()) {
967             StringBuilder msg = new StringBuilder();
968 
969             msg.append("No SocialActivity exists with the key {");
970 
971             msg.append("companyId=" + companyId);
972 
973             msg.append(StringPool.CLOSE_CURLY_BRACE);
974 
975             throw new NoSuchActivityException(msg.toString());
976         }
977         else {
978             return list.get(0);
979         }
980     }
981 
982     public SocialActivity findByCompanyId_Last(long companyId,
983         OrderByComparator obc) throws NoSuchActivityException, SystemException {
984         int count = countByCompanyId(companyId);
985 
986         List<SocialActivity> list = findByCompanyId(companyId, count - 1,
987                 count, obc);
988 
989         if (list.isEmpty()) {
990             StringBuilder msg = new StringBuilder();
991 
992             msg.append("No SocialActivity exists with the key {");
993 
994             msg.append("companyId=" + companyId);
995 
996             msg.append(StringPool.CLOSE_CURLY_BRACE);
997 
998             throw new NoSuchActivityException(msg.toString());
999         }
1000        else {
1001            return list.get(0);
1002        }
1003    }
1004
1005    public SocialActivity[] findByCompanyId_PrevAndNext(long activityId,
1006        long companyId, OrderByComparator obc)
1007        throws NoSuchActivityException, SystemException {
1008        SocialActivity socialActivity = findByPrimaryKey(activityId);
1009
1010        int count = countByCompanyId(companyId);
1011
1012        Session session = null;
1013
1014        try {
1015            session = openSession();
1016
1017            StringBuilder query = new StringBuilder();
1018
1019            query.append(
1020                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1021
1022            query.append("socialActivity.companyId = ?");
1023
1024            query.append(" ");
1025
1026            if (obc != null) {
1027                query.append("ORDER BY ");
1028
1029                String[] orderByFields = obc.getOrderByFields();
1030
1031                for (int i = 0; i < orderByFields.length; i++) {
1032                    query.append("socialActivity.");
1033                    query.append(orderByFields[i]);
1034
1035                    if (obc.isAscending()) {
1036                        query.append(" ASC");
1037                    }
1038                    else {
1039                        query.append(" DESC");
1040                    }
1041
1042                    if ((i + 1) < orderByFields.length) {
1043                        query.append(", ");
1044                    }
1045                }
1046            }
1047
1048            else {
1049                query.append("ORDER BY ");
1050
1051                query.append("socialActivity.createDate DESC");
1052            }
1053
1054            Query q = session.createQuery(query.toString());
1055
1056            QueryPos qPos = QueryPos.getInstance(q);
1057
1058            qPos.add(companyId);
1059
1060            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1061                    socialActivity);
1062
1063            SocialActivity[] array = new SocialActivityImpl[3];
1064
1065            array[0] = (SocialActivity)objArray[0];
1066            array[1] = (SocialActivity)objArray[1];
1067            array[2] = (SocialActivity)objArray[2];
1068
1069            return array;
1070        }
1071        catch (Exception e) {
1072            throw processException(e);
1073        }
1074        finally {
1075            closeSession(session);
1076        }
1077    }
1078
1079    public List<SocialActivity> findByUserId(long userId)
1080        throws SystemException {
1081        Object[] finderArgs = new Object[] { new Long(userId) };
1082
1083        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_USERID,
1084                finderArgs, this);
1085
1086        if (list == null) {
1087            Session session = null;
1088
1089            try {
1090                session = openSession();
1091
1092                StringBuilder query = new StringBuilder();
1093
1094                query.append(
1095                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1096
1097                query.append("socialActivity.userId = ?");
1098
1099                query.append(" ");
1100
1101                query.append("ORDER BY ");
1102
1103                query.append("socialActivity.createDate DESC");
1104
1105                Query q = session.createQuery(query.toString());
1106
1107                QueryPos qPos = QueryPos.getInstance(q);
1108
1109                qPos.add(userId);
1110
1111                list = q.list();
1112            }
1113            catch (Exception e) {
1114                throw processException(e);
1115            }
1116            finally {
1117                if (list == null) {
1118                    list = new ArrayList<SocialActivity>();
1119                }
1120
1121                cacheResult(list);
1122
1123                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_USERID,
1124                    finderArgs, list);
1125
1126                closeSession(session);
1127            }
1128        }
1129
1130        return list;
1131    }
1132
1133    public List<SocialActivity> findByUserId(long userId, int start, int end)
1134        throws SystemException {
1135        return findByUserId(userId, start, end, null);
1136    }
1137
1138    public List<SocialActivity> findByUserId(long userId, int start, int end,
1139        OrderByComparator obc) throws SystemException {
1140        Object[] finderArgs = new Object[] {
1141                new Long(userId),
1142                
1143                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1144            };
1145
1146        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_USERID,
1147                finderArgs, this);
1148
1149        if (list == null) {
1150            Session session = null;
1151
1152            try {
1153                session = openSession();
1154
1155                StringBuilder query = new StringBuilder();
1156
1157                query.append(
1158                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1159
1160                query.append("socialActivity.userId = ?");
1161
1162                query.append(" ");
1163
1164                if (obc != null) {
1165                    query.append("ORDER BY ");
1166
1167                    String[] orderByFields = obc.getOrderByFields();
1168
1169                    for (int i = 0; i < orderByFields.length; i++) {
1170                        query.append("socialActivity.");
1171                        query.append(orderByFields[i]);
1172
1173                        if (obc.isAscending()) {
1174                            query.append(" ASC");
1175                        }
1176                        else {
1177                            query.append(" DESC");
1178                        }
1179
1180                        if ((i + 1) < orderByFields.length) {
1181                            query.append(", ");
1182                        }
1183                    }
1184                }
1185
1186                else {
1187                    query.append("ORDER BY ");
1188
1189                    query.append("socialActivity.createDate DESC");
1190                }
1191
1192                Query q = session.createQuery(query.toString());
1193
1194                QueryPos qPos = QueryPos.getInstance(q);
1195
1196                qPos.add(userId);
1197
1198                list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
1199                        start, end);
1200            }
1201            catch (Exception e) {
1202                throw processException(e);
1203            }
1204            finally {
1205                if (list == null) {
1206                    list = new ArrayList<SocialActivity>();
1207                }
1208
1209                cacheResult(list);
1210
1211                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_USERID,
1212                    finderArgs, list);
1213
1214                closeSession(session);
1215            }
1216        }
1217
1218        return list;
1219    }
1220
1221    public SocialActivity findByUserId_First(long userId, OrderByComparator obc)
1222        throws NoSuchActivityException, SystemException {
1223        List<SocialActivity> list = findByUserId(userId, 0, 1, obc);
1224
1225        if (list.isEmpty()) {
1226            StringBuilder msg = new StringBuilder();
1227
1228            msg.append("No SocialActivity exists with the key {");
1229
1230            msg.append("userId=" + userId);
1231
1232            msg.append(StringPool.CLOSE_CURLY_BRACE);
1233
1234            throw new NoSuchActivityException(msg.toString());
1235        }
1236        else {
1237            return list.get(0);
1238        }
1239    }
1240
1241    public SocialActivity findByUserId_Last(long userId, OrderByComparator obc)
1242        throws NoSuchActivityException, SystemException {
1243        int count = countByUserId(userId);
1244
1245        List<SocialActivity> list = findByUserId(userId, count - 1, count, obc);
1246
1247        if (list.isEmpty()) {
1248            StringBuilder msg = new StringBuilder();
1249
1250            msg.append("No SocialActivity exists with the key {");
1251
1252            msg.append("userId=" + userId);
1253
1254            msg.append(StringPool.CLOSE_CURLY_BRACE);
1255
1256            throw new NoSuchActivityException(msg.toString());
1257        }
1258        else {
1259            return list.get(0);
1260        }
1261    }
1262
1263    public SocialActivity[] findByUserId_PrevAndNext(long activityId,
1264        long userId, OrderByComparator obc)
1265        throws NoSuchActivityException, SystemException {
1266        SocialActivity socialActivity = findByPrimaryKey(activityId);
1267
1268        int count = countByUserId(userId);
1269
1270        Session session = null;
1271
1272        try {
1273            session = openSession();
1274
1275            StringBuilder query = new StringBuilder();
1276
1277            query.append(
1278                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1279
1280            query.append("socialActivity.userId = ?");
1281
1282            query.append(" ");
1283
1284            if (obc != null) {
1285                query.append("ORDER BY ");
1286
1287                String[] orderByFields = obc.getOrderByFields();
1288
1289                for (int i = 0; i < orderByFields.length; i++) {
1290                    query.append("socialActivity.");
1291                    query.append(orderByFields[i]);
1292
1293                    if (obc.isAscending()) {
1294                        query.append(" ASC");
1295                    }
1296                    else {
1297                        query.append(" DESC");
1298                    }
1299
1300                    if ((i + 1) < orderByFields.length) {
1301                        query.append(", ");
1302                    }
1303                }
1304            }
1305
1306            else {
1307                query.append("ORDER BY ");
1308
1309                query.append("socialActivity.createDate DESC");
1310            }
1311
1312            Query q = session.createQuery(query.toString());
1313
1314            QueryPos qPos = QueryPos.getInstance(q);
1315
1316            qPos.add(userId);
1317
1318            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1319                    socialActivity);
1320
1321            SocialActivity[] array = new SocialActivityImpl[3];
1322
1323            array[0] = (SocialActivity)objArray[0];
1324            array[1] = (SocialActivity)objArray[1];
1325            array[2] = (SocialActivity)objArray[2];
1326
1327            return array;
1328        }
1329        catch (Exception e) {
1330            throw processException(e);
1331        }
1332        finally {
1333            closeSession(session);
1334        }
1335    }
1336
1337    public SocialActivity findByMirrorActivityId(long mirrorActivityId)
1338        throws NoSuchActivityException, SystemException {
1339        SocialActivity socialActivity = fetchByMirrorActivityId(mirrorActivityId);
1340
1341        if (socialActivity == null) {
1342            StringBuilder msg = new StringBuilder();
1343
1344            msg.append("No SocialActivity exists with the key {");
1345
1346            msg.append("mirrorActivityId=" + mirrorActivityId);
1347
1348            msg.append(StringPool.CLOSE_CURLY_BRACE);
1349
1350            if (_log.isWarnEnabled()) {
1351                _log.warn(msg.toString());
1352            }
1353
1354            throw new NoSuchActivityException(msg.toString());
1355        }
1356
1357        return socialActivity;
1358    }
1359
1360    public SocialActivity fetchByMirrorActivityId(long mirrorActivityId)
1361        throws SystemException {
1362        return fetchByMirrorActivityId(mirrorActivityId, true);
1363    }
1364
1365    public SocialActivity fetchByMirrorActivityId(long mirrorActivityId,
1366        boolean retrieveFromCache) throws SystemException {
1367        Object[] finderArgs = new Object[] { new Long(mirrorActivityId) };
1368
1369        Object result = null;
1370
1371        if (retrieveFromCache) {
1372            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
1373                    finderArgs, this);
1374        }
1375
1376        if (result == null) {
1377            Session session = null;
1378
1379            try {
1380                session = openSession();
1381
1382                StringBuilder query = new StringBuilder();
1383
1384                query.append(
1385                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1386
1387                query.append("socialActivity.mirrorActivityId = ?");
1388
1389                query.append(" ");
1390
1391                query.append("ORDER BY ");
1392
1393                query.append("socialActivity.createDate DESC");
1394
1395                Query q = session.createQuery(query.toString());
1396
1397                QueryPos qPos = QueryPos.getInstance(q);
1398
1399                qPos.add(mirrorActivityId);
1400
1401                List<SocialActivity> list = q.list();
1402
1403                result = list;
1404
1405                SocialActivity socialActivity = null;
1406
1407                if (list.isEmpty()) {
1408                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
1409                        finderArgs, list);
1410                }
1411                else {
1412                    socialActivity = list.get(0);
1413
1414                    cacheResult(socialActivity);
1415
1416                    if ((socialActivity.getMirrorActivityId() != mirrorActivityId)) {
1417                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
1418                            finderArgs, socialActivity);
1419                    }
1420                }
1421
1422                return socialActivity;
1423            }
1424            catch (Exception e) {
1425                throw processException(e);
1426            }
1427            finally {
1428                if (result == null) {
1429                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_MIRRORACTIVITYID,
1430                        finderArgs, new ArrayList<SocialActivity>());
1431                }
1432
1433                closeSession(session);
1434            }
1435        }
1436        else {
1437            if (result instanceof List) {
1438                return null;
1439            }
1440            else {
1441                return (SocialActivity)result;
1442            }
1443        }
1444    }
1445
1446    public List<SocialActivity> findByClassNameId(long classNameId)
1447        throws SystemException {
1448        Object[] finderArgs = new Object[] { new Long(classNameId) };
1449
1450        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_CLASSNAMEID,
1451                finderArgs, this);
1452
1453        if (list == null) {
1454            Session session = null;
1455
1456            try {
1457                session = openSession();
1458
1459                StringBuilder query = new StringBuilder();
1460
1461                query.append(
1462                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1463
1464                query.append("socialActivity.classNameId = ?");
1465
1466                query.append(" ");
1467
1468                query.append("ORDER BY ");
1469
1470                query.append("socialActivity.createDate DESC");
1471
1472                Query q = session.createQuery(query.toString());
1473
1474                QueryPos qPos = QueryPos.getInstance(q);
1475
1476                qPos.add(classNameId);
1477
1478                list = q.list();
1479            }
1480            catch (Exception e) {
1481                throw processException(e);
1482            }
1483            finally {
1484                if (list == null) {
1485                    list = new ArrayList<SocialActivity>();
1486                }
1487
1488                cacheResult(list);
1489
1490                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_CLASSNAMEID,
1491                    finderArgs, list);
1492
1493                closeSession(session);
1494            }
1495        }
1496
1497        return list;
1498    }
1499
1500    public List<SocialActivity> findByClassNameId(long classNameId, int start,
1501        int end) throws SystemException {
1502        return findByClassNameId(classNameId, start, end, null);
1503    }
1504
1505    public List<SocialActivity> findByClassNameId(long classNameId, int start,
1506        int end, OrderByComparator obc) throws SystemException {
1507        Object[] finderArgs = new Object[] {
1508                new Long(classNameId),
1509                
1510                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1511            };
1512
1513        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_CLASSNAMEID,
1514                finderArgs, this);
1515
1516        if (list == null) {
1517            Session session = null;
1518
1519            try {
1520                session = openSession();
1521
1522                StringBuilder query = new StringBuilder();
1523
1524                query.append(
1525                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1526
1527                query.append("socialActivity.classNameId = ?");
1528
1529                query.append(" ");
1530
1531                if (obc != null) {
1532                    query.append("ORDER BY ");
1533
1534                    String[] orderByFields = obc.getOrderByFields();
1535
1536                    for (int i = 0; i < orderByFields.length; i++) {
1537                        query.append("socialActivity.");
1538                        query.append(orderByFields[i]);
1539
1540                        if (obc.isAscending()) {
1541                            query.append(" ASC");
1542                        }
1543                        else {
1544                            query.append(" DESC");
1545                        }
1546
1547                        if ((i + 1) < orderByFields.length) {
1548                            query.append(", ");
1549                        }
1550                    }
1551                }
1552
1553                else {
1554                    query.append("ORDER BY ");
1555
1556                    query.append("socialActivity.createDate DESC");
1557                }
1558
1559                Query q = session.createQuery(query.toString());
1560
1561                QueryPos qPos = QueryPos.getInstance(q);
1562
1563                qPos.add(classNameId);
1564
1565                list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
1566                        start, end);
1567            }
1568            catch (Exception e) {
1569                throw processException(e);
1570            }
1571            finally {
1572                if (list == null) {
1573                    list = new ArrayList<SocialActivity>();
1574                }
1575
1576                cacheResult(list);
1577
1578                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_CLASSNAMEID,
1579                    finderArgs, list);
1580
1581                closeSession(session);
1582            }
1583        }
1584
1585        return list;
1586    }
1587
1588    public SocialActivity findByClassNameId_First(long classNameId,
1589        OrderByComparator obc) throws NoSuchActivityException, SystemException {
1590        List<SocialActivity> list = findByClassNameId(classNameId, 0, 1, obc);
1591
1592        if (list.isEmpty()) {
1593            StringBuilder msg = new StringBuilder();
1594
1595            msg.append("No SocialActivity exists with the key {");
1596
1597            msg.append("classNameId=" + classNameId);
1598
1599            msg.append(StringPool.CLOSE_CURLY_BRACE);
1600
1601            throw new NoSuchActivityException(msg.toString());
1602        }
1603        else {
1604            return list.get(0);
1605        }
1606    }
1607
1608    public SocialActivity findByClassNameId_Last(long classNameId,
1609        OrderByComparator obc) throws NoSuchActivityException, SystemException {
1610        int count = countByClassNameId(classNameId);
1611
1612        List<SocialActivity> list = findByClassNameId(classNameId, count - 1,
1613                count, obc);
1614
1615        if (list.isEmpty()) {
1616            StringBuilder msg = new StringBuilder();
1617
1618            msg.append("No SocialActivity exists with the key {");
1619
1620            msg.append("classNameId=" + classNameId);
1621
1622            msg.append(StringPool.CLOSE_CURLY_BRACE);
1623
1624            throw new NoSuchActivityException(msg.toString());
1625        }
1626        else {
1627            return list.get(0);
1628        }
1629    }
1630
1631    public SocialActivity[] findByClassNameId_PrevAndNext(long activityId,
1632        long classNameId, OrderByComparator obc)
1633        throws NoSuchActivityException, SystemException {
1634        SocialActivity socialActivity = findByPrimaryKey(activityId);
1635
1636        int count = countByClassNameId(classNameId);
1637
1638        Session session = null;
1639
1640        try {
1641            session = openSession();
1642
1643            StringBuilder query = new StringBuilder();
1644
1645            query.append(
1646                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1647
1648            query.append("socialActivity.classNameId = ?");
1649
1650            query.append(" ");
1651
1652            if (obc != null) {
1653                query.append("ORDER BY ");
1654
1655                String[] orderByFields = obc.getOrderByFields();
1656
1657                for (int i = 0; i < orderByFields.length; i++) {
1658                    query.append("socialActivity.");
1659                    query.append(orderByFields[i]);
1660
1661                    if (obc.isAscending()) {
1662                        query.append(" ASC");
1663                    }
1664                    else {
1665                        query.append(" DESC");
1666                    }
1667
1668                    if ((i + 1) < orderByFields.length) {
1669                        query.append(", ");
1670                    }
1671                }
1672            }
1673
1674            else {
1675                query.append("ORDER BY ");
1676
1677                query.append("socialActivity.createDate DESC");
1678            }
1679
1680            Query q = session.createQuery(query.toString());
1681
1682            QueryPos qPos = QueryPos.getInstance(q);
1683
1684            qPos.add(classNameId);
1685
1686            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1687                    socialActivity);
1688
1689            SocialActivity[] array = new SocialActivityImpl[3];
1690
1691            array[0] = (SocialActivity)objArray[0];
1692            array[1] = (SocialActivity)objArray[1];
1693            array[2] = (SocialActivity)objArray[2];
1694
1695            return array;
1696        }
1697        catch (Exception e) {
1698            throw processException(e);
1699        }
1700        finally {
1701            closeSession(session);
1702        }
1703    }
1704
1705    public List<SocialActivity> findByReceiverUserId(long receiverUserId)
1706        throws SystemException {
1707        Object[] finderArgs = new Object[] { new Long(receiverUserId) };
1708
1709        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_RECEIVERUSERID,
1710                finderArgs, this);
1711
1712        if (list == null) {
1713            Session session = null;
1714
1715            try {
1716                session = openSession();
1717
1718                StringBuilder query = new StringBuilder();
1719
1720                query.append(
1721                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1722
1723                query.append("socialActivity.receiverUserId = ?");
1724
1725                query.append(" ");
1726
1727                query.append("ORDER BY ");
1728
1729                query.append("socialActivity.createDate DESC");
1730
1731                Query q = session.createQuery(query.toString());
1732
1733                QueryPos qPos = QueryPos.getInstance(q);
1734
1735                qPos.add(receiverUserId);
1736
1737                list = q.list();
1738            }
1739            catch (Exception e) {
1740                throw processException(e);
1741            }
1742            finally {
1743                if (list == null) {
1744                    list = new ArrayList<SocialActivity>();
1745                }
1746
1747                cacheResult(list);
1748
1749                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_RECEIVERUSERID,
1750                    finderArgs, list);
1751
1752                closeSession(session);
1753            }
1754        }
1755
1756        return list;
1757    }
1758
1759    public List<SocialActivity> findByReceiverUserId(long receiverUserId,
1760        int start, int end) throws SystemException {
1761        return findByReceiverUserId(receiverUserId, start, end, null);
1762    }
1763
1764    public List<SocialActivity> findByReceiverUserId(long receiverUserId,
1765        int start, int end, OrderByComparator obc) throws SystemException {
1766        Object[] finderArgs = new Object[] {
1767                new Long(receiverUserId),
1768                
1769                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1770            };
1771
1772        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_RECEIVERUSERID,
1773                finderArgs, this);
1774
1775        if (list == null) {
1776            Session session = null;
1777
1778            try {
1779                session = openSession();
1780
1781                StringBuilder query = new StringBuilder();
1782
1783                query.append(
1784                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1785
1786                query.append("socialActivity.receiverUserId = ?");
1787
1788                query.append(" ");
1789
1790                if (obc != null) {
1791                    query.append("ORDER BY ");
1792
1793                    String[] orderByFields = obc.getOrderByFields();
1794
1795                    for (int i = 0; i < orderByFields.length; i++) {
1796                        query.append("socialActivity.");
1797                        query.append(orderByFields[i]);
1798
1799                        if (obc.isAscending()) {
1800                            query.append(" ASC");
1801                        }
1802                        else {
1803                            query.append(" DESC");
1804                        }
1805
1806                        if ((i + 1) < orderByFields.length) {
1807                            query.append(", ");
1808                        }
1809                    }
1810                }
1811
1812                else {
1813                    query.append("ORDER BY ");
1814
1815                    query.append("socialActivity.createDate DESC");
1816                }
1817
1818                Query q = session.createQuery(query.toString());
1819
1820                QueryPos qPos = QueryPos.getInstance(q);
1821
1822                qPos.add(receiverUserId);
1823
1824                list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
1825                        start, end);
1826            }
1827            catch (Exception e) {
1828                throw processException(e);
1829            }
1830            finally {
1831                if (list == null) {
1832                    list = new ArrayList<SocialActivity>();
1833                }
1834
1835                cacheResult(list);
1836
1837                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_RECEIVERUSERID,
1838                    finderArgs, list);
1839
1840                closeSession(session);
1841            }
1842        }
1843
1844        return list;
1845    }
1846
1847    public SocialActivity findByReceiverUserId_First(long receiverUserId,
1848        OrderByComparator obc) throws NoSuchActivityException, SystemException {
1849        List<SocialActivity> list = findByReceiverUserId(receiverUserId, 0, 1,
1850                obc);
1851
1852        if (list.isEmpty()) {
1853            StringBuilder msg = new StringBuilder();
1854
1855            msg.append("No SocialActivity exists with the key {");
1856
1857            msg.append("receiverUserId=" + receiverUserId);
1858
1859            msg.append(StringPool.CLOSE_CURLY_BRACE);
1860
1861            throw new NoSuchActivityException(msg.toString());
1862        }
1863        else {
1864            return list.get(0);
1865        }
1866    }
1867
1868    public SocialActivity findByReceiverUserId_Last(long receiverUserId,
1869        OrderByComparator obc) throws NoSuchActivityException, SystemException {
1870        int count = countByReceiverUserId(receiverUserId);
1871
1872        List<SocialActivity> list = findByReceiverUserId(receiverUserId,
1873                count - 1, count, obc);
1874
1875        if (list.isEmpty()) {
1876            StringBuilder msg = new StringBuilder();
1877
1878            msg.append("No SocialActivity exists with the key {");
1879
1880            msg.append("receiverUserId=" + receiverUserId);
1881
1882            msg.append(StringPool.CLOSE_CURLY_BRACE);
1883
1884            throw new NoSuchActivityException(msg.toString());
1885        }
1886        else {
1887            return list.get(0);
1888        }
1889    }
1890
1891    public SocialActivity[] findByReceiverUserId_PrevAndNext(long activityId,
1892        long receiverUserId, OrderByComparator obc)
1893        throws NoSuchActivityException, SystemException {
1894        SocialActivity socialActivity = findByPrimaryKey(activityId);
1895
1896        int count = countByReceiverUserId(receiverUserId);
1897
1898        Session session = null;
1899
1900        try {
1901            session = openSession();
1902
1903            StringBuilder query = new StringBuilder();
1904
1905            query.append(
1906                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1907
1908            query.append("socialActivity.receiverUserId = ?");
1909
1910            query.append(" ");
1911
1912            if (obc != null) {
1913                query.append("ORDER BY ");
1914
1915                String[] orderByFields = obc.getOrderByFields();
1916
1917                for (int i = 0; i < orderByFields.length; i++) {
1918                    query.append("socialActivity.");
1919                    query.append(orderByFields[i]);
1920
1921                    if (obc.isAscending()) {
1922                        query.append(" ASC");
1923                    }
1924                    else {
1925                        query.append(" DESC");
1926                    }
1927
1928                    if ((i + 1) < orderByFields.length) {
1929                        query.append(", ");
1930                    }
1931                }
1932            }
1933
1934            else {
1935                query.append("ORDER BY ");
1936
1937                query.append("socialActivity.createDate DESC");
1938            }
1939
1940            Query q = session.createQuery(query.toString());
1941
1942            QueryPos qPos = QueryPos.getInstance(q);
1943
1944            qPos.add(receiverUserId);
1945
1946            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1947                    socialActivity);
1948
1949            SocialActivity[] array = new SocialActivityImpl[3];
1950
1951            array[0] = (SocialActivity)objArray[0];
1952            array[1] = (SocialActivity)objArray[1];
1953            array[2] = (SocialActivity)objArray[2];
1954
1955            return array;
1956        }
1957        catch (Exception e) {
1958            throw processException(e);
1959        }
1960        finally {
1961            closeSession(session);
1962        }
1963    }
1964
1965    public List<SocialActivity> findByC_C(long classNameId, long classPK)
1966        throws SystemException {
1967        Object[] finderArgs = new Object[] {
1968                new Long(classNameId), new Long(classPK)
1969            };
1970
1971        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_C,
1972                finderArgs, this);
1973
1974        if (list == null) {
1975            Session session = null;
1976
1977            try {
1978                session = openSession();
1979
1980                StringBuilder query = new StringBuilder();
1981
1982                query.append(
1983                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
1984
1985                query.append("socialActivity.classNameId = ?");
1986
1987                query.append(" AND ");
1988
1989                query.append("socialActivity.classPK = ?");
1990
1991                query.append(" ");
1992
1993                query.append("ORDER BY ");
1994
1995                query.append("socialActivity.createDate DESC");
1996
1997                Query q = session.createQuery(query.toString());
1998
1999                QueryPos qPos = QueryPos.getInstance(q);
2000
2001                qPos.add(classNameId);
2002
2003                qPos.add(classPK);
2004
2005                list = q.list();
2006            }
2007            catch (Exception e) {
2008                throw processException(e);
2009            }
2010            finally {
2011                if (list == null) {
2012                    list = new ArrayList<SocialActivity>();
2013                }
2014
2015                cacheResult(list);
2016
2017                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_C, finderArgs,
2018                    list);
2019
2020                closeSession(session);
2021            }
2022        }
2023
2024        return list;
2025    }
2026
2027    public List<SocialActivity> findByC_C(long classNameId, long classPK,
2028        int start, int end) throws SystemException {
2029        return findByC_C(classNameId, classPK, start, end, null);
2030    }
2031
2032    public List<SocialActivity> findByC_C(long classNameId, long classPK,
2033        int start, int end, OrderByComparator obc) throws SystemException {
2034        Object[] finderArgs = new Object[] {
2035                new Long(classNameId), new Long(classPK),
2036                
2037                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2038            };
2039
2040        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_C,
2041                finderArgs, this);
2042
2043        if (list == null) {
2044            Session session = null;
2045
2046            try {
2047                session = openSession();
2048
2049                StringBuilder query = new StringBuilder();
2050
2051                query.append(
2052                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2053
2054                query.append("socialActivity.classNameId = ?");
2055
2056                query.append(" AND ");
2057
2058                query.append("socialActivity.classPK = ?");
2059
2060                query.append(" ");
2061
2062                if (obc != null) {
2063                    query.append("ORDER BY ");
2064
2065                    String[] orderByFields = obc.getOrderByFields();
2066
2067                    for (int i = 0; i < orderByFields.length; i++) {
2068                        query.append("socialActivity.");
2069                        query.append(orderByFields[i]);
2070
2071                        if (obc.isAscending()) {
2072                            query.append(" ASC");
2073                        }
2074                        else {
2075                            query.append(" DESC");
2076                        }
2077
2078                        if ((i + 1) < orderByFields.length) {
2079                            query.append(", ");
2080                        }
2081                    }
2082                }
2083
2084                else {
2085                    query.append("ORDER BY ");
2086
2087                    query.append("socialActivity.createDate DESC");
2088                }
2089
2090                Query q = session.createQuery(query.toString());
2091
2092                QueryPos qPos = QueryPos.getInstance(q);
2093
2094                qPos.add(classNameId);
2095
2096                qPos.add(classPK);
2097
2098                list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
2099                        start, end);
2100            }
2101            catch (Exception e) {
2102                throw processException(e);
2103            }
2104            finally {
2105                if (list == null) {
2106                    list = new ArrayList<SocialActivity>();
2107                }
2108
2109                cacheResult(list);
2110
2111                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_C,
2112                    finderArgs, list);
2113
2114                closeSession(session);
2115            }
2116        }
2117
2118        return list;
2119    }
2120
2121    public SocialActivity findByC_C_First(long classNameId, long classPK,
2122        OrderByComparator obc) throws NoSuchActivityException, SystemException {
2123        List<SocialActivity> list = findByC_C(classNameId, classPK, 0, 1, obc);
2124
2125        if (list.isEmpty()) {
2126            StringBuilder msg = new StringBuilder();
2127
2128            msg.append("No SocialActivity exists with the key {");
2129
2130            msg.append("classNameId=" + classNameId);
2131
2132            msg.append(", ");
2133            msg.append("classPK=" + classPK);
2134
2135            msg.append(StringPool.CLOSE_CURLY_BRACE);
2136
2137            throw new NoSuchActivityException(msg.toString());
2138        }
2139        else {
2140            return list.get(0);
2141        }
2142    }
2143
2144    public SocialActivity findByC_C_Last(long classNameId, long classPK,
2145        OrderByComparator obc) throws NoSuchActivityException, SystemException {
2146        int count = countByC_C(classNameId, classPK);
2147
2148        List<SocialActivity> list = findByC_C(classNameId, classPK, count - 1,
2149                count, obc);
2150
2151        if (list.isEmpty()) {
2152            StringBuilder msg = new StringBuilder();
2153
2154            msg.append("No SocialActivity exists with the key {");
2155
2156            msg.append("classNameId=" + classNameId);
2157
2158            msg.append(", ");
2159            msg.append("classPK=" + classPK);
2160
2161            msg.append(StringPool.CLOSE_CURLY_BRACE);
2162
2163            throw new NoSuchActivityException(msg.toString());
2164        }
2165        else {
2166            return list.get(0);
2167        }
2168    }
2169
2170    public SocialActivity[] findByC_C_PrevAndNext(long activityId,
2171        long classNameId, long classPK, OrderByComparator obc)
2172        throws NoSuchActivityException, SystemException {
2173        SocialActivity socialActivity = findByPrimaryKey(activityId);
2174
2175        int count = countByC_C(classNameId, classPK);
2176
2177        Session session = null;
2178
2179        try {
2180            session = openSession();
2181
2182            StringBuilder query = new StringBuilder();
2183
2184            query.append(
2185                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2186
2187            query.append("socialActivity.classNameId = ?");
2188
2189            query.append(" AND ");
2190
2191            query.append("socialActivity.classPK = ?");
2192
2193            query.append(" ");
2194
2195            if (obc != null) {
2196                query.append("ORDER BY ");
2197
2198                String[] orderByFields = obc.getOrderByFields();
2199
2200                for (int i = 0; i < orderByFields.length; i++) {
2201                    query.append("socialActivity.");
2202                    query.append(orderByFields[i]);
2203
2204                    if (obc.isAscending()) {
2205                        query.append(" ASC");
2206                    }
2207                    else {
2208                        query.append(" DESC");
2209                    }
2210
2211                    if ((i + 1) < orderByFields.length) {
2212                        query.append(", ");
2213                    }
2214                }
2215            }
2216
2217            else {
2218                query.append("ORDER BY ");
2219
2220                query.append("socialActivity.createDate DESC");
2221            }
2222
2223            Query q = session.createQuery(query.toString());
2224
2225            QueryPos qPos = QueryPos.getInstance(q);
2226
2227            qPos.add(classNameId);
2228
2229            qPos.add(classPK);
2230
2231            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
2232                    socialActivity);
2233
2234            SocialActivity[] array = new SocialActivityImpl[3];
2235
2236            array[0] = (SocialActivity)objArray[0];
2237            array[1] = (SocialActivity)objArray[1];
2238            array[2] = (SocialActivity)objArray[2];
2239
2240            return array;
2241        }
2242        catch (Exception e) {
2243            throw processException(e);
2244        }
2245        finally {
2246            closeSession(session);
2247        }
2248    }
2249
2250    public List<SocialActivity> findByM_C_C(long mirrorActivityId,
2251        long classNameId, long classPK) throws SystemException {
2252        Object[] finderArgs = new Object[] {
2253                new Long(mirrorActivityId), new Long(classNameId),
2254                new Long(classPK)
2255            };
2256
2257        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_M_C_C,
2258                finderArgs, this);
2259
2260        if (list == null) {
2261            Session session = null;
2262
2263            try {
2264                session = openSession();
2265
2266                StringBuilder query = new StringBuilder();
2267
2268                query.append(
2269                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2270
2271                query.append("socialActivity.mirrorActivityId = ?");
2272
2273                query.append(" AND ");
2274
2275                query.append("socialActivity.classNameId = ?");
2276
2277                query.append(" AND ");
2278
2279                query.append("socialActivity.classPK = ?");
2280
2281                query.append(" ");
2282
2283                query.append("ORDER BY ");
2284
2285                query.append("socialActivity.createDate DESC");
2286
2287                Query q = session.createQuery(query.toString());
2288
2289                QueryPos qPos = QueryPos.getInstance(q);
2290
2291                qPos.add(mirrorActivityId);
2292
2293                qPos.add(classNameId);
2294
2295                qPos.add(classPK);
2296
2297                list = q.list();
2298            }
2299            catch (Exception e) {
2300                throw processException(e);
2301            }
2302            finally {
2303                if (list == null) {
2304                    list = new ArrayList<SocialActivity>();
2305                }
2306
2307                cacheResult(list);
2308
2309                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_M_C_C,
2310                    finderArgs, list);
2311
2312                closeSession(session);
2313            }
2314        }
2315
2316        return list;
2317    }
2318
2319    public List<SocialActivity> findByM_C_C(long mirrorActivityId,
2320        long classNameId, long classPK, int start, int end)
2321        throws SystemException {
2322        return findByM_C_C(mirrorActivityId, classNameId, classPK, start, end,
2323            null);
2324    }
2325
2326    public List<SocialActivity> findByM_C_C(long mirrorActivityId,
2327        long classNameId, long classPK, int start, int end,
2328        OrderByComparator obc) throws SystemException {
2329        Object[] finderArgs = new Object[] {
2330                new Long(mirrorActivityId), new Long(classNameId),
2331                new Long(classPK),
2332                
2333                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2334            };
2335
2336        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_M_C_C,
2337                finderArgs, this);
2338
2339        if (list == null) {
2340            Session session = null;
2341
2342            try {
2343                session = openSession();
2344
2345                StringBuilder query = new StringBuilder();
2346
2347                query.append(
2348                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2349
2350                query.append("socialActivity.mirrorActivityId = ?");
2351
2352                query.append(" AND ");
2353
2354                query.append("socialActivity.classNameId = ?");
2355
2356                query.append(" AND ");
2357
2358                query.append("socialActivity.classPK = ?");
2359
2360                query.append(" ");
2361
2362                if (obc != null) {
2363                    query.append("ORDER BY ");
2364
2365                    String[] orderByFields = obc.getOrderByFields();
2366
2367                    for (int i = 0; i < orderByFields.length; i++) {
2368                        query.append("socialActivity.");
2369                        query.append(orderByFields[i]);
2370
2371                        if (obc.isAscending()) {
2372                            query.append(" ASC");
2373                        }
2374                        else {
2375                            query.append(" DESC");
2376                        }
2377
2378                        if ((i + 1) < orderByFields.length) {
2379                            query.append(", ");
2380                        }
2381                    }
2382                }
2383
2384                else {
2385                    query.append("ORDER BY ");
2386
2387                    query.append("socialActivity.createDate DESC");
2388                }
2389
2390                Query q = session.createQuery(query.toString());
2391
2392                QueryPos qPos = QueryPos.getInstance(q);
2393
2394                qPos.add(mirrorActivityId);
2395
2396                qPos.add(classNameId);
2397
2398                qPos.add(classPK);
2399
2400                list = (List<SocialActivity>)QueryUtil.list(q, getDialect(),
2401                        start, end);
2402            }
2403            catch (Exception e) {
2404                throw processException(e);
2405            }
2406            finally {
2407                if (list == null) {
2408                    list = new ArrayList<SocialActivity>();
2409                }
2410
2411                cacheResult(list);
2412
2413                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_M_C_C,
2414                    finderArgs, list);
2415
2416                closeSession(session);
2417            }
2418        }
2419
2420        return list;
2421    }
2422
2423    public SocialActivity findByM_C_C_First(long mirrorActivityId,
2424        long classNameId, long classPK, OrderByComparator obc)
2425        throws NoSuchActivityException, SystemException {
2426        List<SocialActivity> list = findByM_C_C(mirrorActivityId, classNameId,
2427                classPK, 0, 1, obc);
2428
2429        if (list.isEmpty()) {
2430            StringBuilder msg = new StringBuilder();
2431
2432            msg.append("No SocialActivity exists with the key {");
2433
2434            msg.append("mirrorActivityId=" + mirrorActivityId);
2435
2436            msg.append(", ");
2437            msg.append("classNameId=" + classNameId);
2438
2439            msg.append(", ");
2440            msg.append("classPK=" + classPK);
2441
2442            msg.append(StringPool.CLOSE_CURLY_BRACE);
2443
2444            throw new NoSuchActivityException(msg.toString());
2445        }
2446        else {
2447            return list.get(0);
2448        }
2449    }
2450
2451    public SocialActivity findByM_C_C_Last(long mirrorActivityId,
2452        long classNameId, long classPK, OrderByComparator obc)
2453        throws NoSuchActivityException, SystemException {
2454        int count = countByM_C_C(mirrorActivityId, classNameId, classPK);
2455
2456        List<SocialActivity> list = findByM_C_C(mirrorActivityId, classNameId,
2457                classPK, count - 1, count, obc);
2458
2459        if (list.isEmpty()) {
2460            StringBuilder msg = new StringBuilder();
2461
2462            msg.append("No SocialActivity exists with the key {");
2463
2464            msg.append("mirrorActivityId=" + mirrorActivityId);
2465
2466            msg.append(", ");
2467            msg.append("classNameId=" + classNameId);
2468
2469            msg.append(", ");
2470            msg.append("classPK=" + classPK);
2471
2472            msg.append(StringPool.CLOSE_CURLY_BRACE);
2473
2474            throw new NoSuchActivityException(msg.toString());
2475        }
2476        else {
2477            return list.get(0);
2478        }
2479    }
2480
2481    public SocialActivity[] findByM_C_C_PrevAndNext(long activityId,
2482        long mirrorActivityId, long classNameId, long classPK,
2483        OrderByComparator obc) throws NoSuchActivityException, SystemException {
2484        SocialActivity socialActivity = findByPrimaryKey(activityId);
2485
2486        int count = countByM_C_C(mirrorActivityId, classNameId, classPK);
2487
2488        Session session = null;
2489
2490        try {
2491            session = openSession();
2492
2493            StringBuilder query = new StringBuilder();
2494
2495            query.append(
2496                "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2497
2498            query.append("socialActivity.mirrorActivityId = ?");
2499
2500            query.append(" AND ");
2501
2502            query.append("socialActivity.classNameId = ?");
2503
2504            query.append(" AND ");
2505
2506            query.append("socialActivity.classPK = ?");
2507
2508            query.append(" ");
2509
2510            if (obc != null) {
2511                query.append("ORDER BY ");
2512
2513                String[] orderByFields = obc.getOrderByFields();
2514
2515                for (int i = 0; i < orderByFields.length; i++) {
2516                    query.append("socialActivity.");
2517                    query.append(orderByFields[i]);
2518
2519                    if (obc.isAscending()) {
2520                        query.append(" ASC");
2521                    }
2522                    else {
2523                        query.append(" DESC");
2524                    }
2525
2526                    if ((i + 1) < orderByFields.length) {
2527                        query.append(", ");
2528                    }
2529                }
2530            }
2531
2532            else {
2533                query.append("ORDER BY ");
2534
2535                query.append("socialActivity.createDate DESC");
2536            }
2537
2538            Query q = session.createQuery(query.toString());
2539
2540            QueryPos qPos = QueryPos.getInstance(q);
2541
2542            qPos.add(mirrorActivityId);
2543
2544            qPos.add(classNameId);
2545
2546            qPos.add(classPK);
2547
2548            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
2549                    socialActivity);
2550
2551            SocialActivity[] array = new SocialActivityImpl[3];
2552
2553            array[0] = (SocialActivity)objArray[0];
2554            array[1] = (SocialActivity)objArray[1];
2555            array[2] = (SocialActivity)objArray[2];
2556
2557            return array;
2558        }
2559        catch (Exception e) {
2560            throw processException(e);
2561        }
2562        finally {
2563            closeSession(session);
2564        }
2565    }
2566
2567    public SocialActivity findByG_U_CD_C_C_T_R(long groupId, long userId,
2568        Date createDate, long classNameId, long classPK, int type,
2569        long receiverUserId) throws NoSuchActivityException, SystemException {
2570        SocialActivity socialActivity = fetchByG_U_CD_C_C_T_R(groupId, userId,
2571                createDate, classNameId, classPK, type, receiverUserId);
2572
2573        if (socialActivity == null) {
2574            StringBuilder msg = new StringBuilder();
2575
2576            msg.append("No SocialActivity exists with the key {");
2577
2578            msg.append("groupId=" + groupId);
2579
2580            msg.append(", ");
2581            msg.append("userId=" + userId);
2582
2583            msg.append(", ");
2584            msg.append("createDate=" + createDate);
2585
2586            msg.append(", ");
2587            msg.append("classNameId=" + classNameId);
2588
2589            msg.append(", ");
2590            msg.append("classPK=" + classPK);
2591
2592            msg.append(", ");
2593            msg.append("type=" + type);
2594
2595            msg.append(", ");
2596            msg.append("receiverUserId=" + receiverUserId);
2597
2598            msg.append(StringPool.CLOSE_CURLY_BRACE);
2599
2600            if (_log.isWarnEnabled()) {
2601                _log.warn(msg.toString());
2602            }
2603
2604            throw new NoSuchActivityException(msg.toString());
2605        }
2606
2607        return socialActivity;
2608    }
2609
2610    public SocialActivity fetchByG_U_CD_C_C_T_R(long groupId, long userId,
2611        Date createDate, long classNameId, long classPK, int type,
2612        long receiverUserId) throws SystemException {
2613        return fetchByG_U_CD_C_C_T_R(groupId, userId, createDate, classNameId,
2614            classPK, type, receiverUserId, true);
2615    }
2616
2617    public SocialActivity fetchByG_U_CD_C_C_T_R(long groupId, long userId,
2618        Date createDate, long classNameId, long classPK, int type,
2619        long receiverUserId, boolean retrieveFromCache)
2620        throws SystemException {
2621        Object[] finderArgs = new Object[] {
2622                new Long(groupId), new Long(userId),
2623                
2624                createDate, new Long(classNameId), new Long(classPK),
2625                new Integer(type), new Long(receiverUserId)
2626            };
2627
2628        Object result = null;
2629
2630        if (retrieveFromCache) {
2631            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
2632                    finderArgs, this);
2633        }
2634
2635        if (result == null) {
2636            Session session = null;
2637
2638            try {
2639                session = openSession();
2640
2641                StringBuilder query = new StringBuilder();
2642
2643                query.append(
2644                    "SELECT socialActivity FROM SocialActivity socialActivity WHERE ");
2645
2646                query.append("socialActivity.groupId = ?");
2647
2648                query.append(" AND ");
2649
2650                query.append("socialActivity.userId = ?");
2651
2652                query.append(" AND ");
2653
2654                if (createDate == null) {
2655                    query.append("socialActivity.createDate IS NULL");
2656                }
2657                else {
2658                    query.append("socialActivity.createDate = ?");
2659                }
2660
2661                query.append(" AND ");
2662
2663                query.append("socialActivity.classNameId = ?");
2664
2665                query.append(" AND ");
2666
2667                query.append("socialActivity.classPK = ?");
2668
2669                query.append(" AND ");
2670
2671                query.append("socialActivity.type = ?");
2672
2673                query.append(" AND ");
2674
2675                query.append("socialActivity.receiverUserId = ?");
2676
2677                query.append(" ");
2678
2679                query.append("ORDER BY ");
2680
2681                query.append("socialActivity.createDate DESC");
2682
2683                Query q = session.createQuery(query.toString());
2684
2685                QueryPos qPos = QueryPos.getInstance(q);
2686
2687                qPos.add(groupId);
2688
2689                qPos.add(userId);
2690
2691                if (createDate != null) {
2692                    qPos.add(CalendarUtil.getTimestamp(createDate));
2693                }
2694
2695                qPos.add(classNameId);
2696
2697                qPos.add(classPK);
2698
2699                qPos.add(type);
2700
2701                qPos.add(receiverUserId);
2702
2703                List<SocialActivity> list = q.list();
2704
2705                result = list;
2706
2707                SocialActivity socialActivity = null;
2708
2709                if (list.isEmpty()) {
2710                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
2711                        finderArgs, list);
2712                }
2713                else {
2714                    socialActivity = list.get(0);
2715
2716                    cacheResult(socialActivity);
2717
2718                    if ((socialActivity.getGroupId() != groupId) ||
2719                            (socialActivity.getUserId() != userId) ||
2720                            (socialActivity.getCreateDate() == null) ||
2721                            !socialActivity.getCreateDate().equals(createDate) ||
2722                            (socialActivity.getClassNameId() != classNameId) ||
2723                            (socialActivity.getClassPK() != classPK) ||
2724                            (socialActivity.getType() != type) ||
2725                            (socialActivity.getReceiverUserId() != receiverUserId)) {
2726                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
2727                            finderArgs, socialActivity);
2728                    }
2729                }
2730
2731                return socialActivity;
2732            }
2733            catch (Exception e) {
2734                throw processException(e);
2735            }
2736            finally {
2737                if (result == null) {
2738                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U_CD_C_C_T_R,
2739                        finderArgs, new ArrayList<SocialActivity>());
2740                }
2741
2742                closeSession(session);
2743            }
2744        }
2745        else {
2746            if (result instanceof List) {
2747                return null;
2748            }
2749            else {
2750                return (SocialActivity)result;
2751            }
2752        }
2753    }
2754
2755    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
2756        throws SystemException {
2757        Session session = null;
2758
2759        try {
2760            session = openSession();
2761
2762            dynamicQuery.compile(session);
2763
2764            return dynamicQuery.list();
2765        }
2766        catch (Exception e) {
2767            throw processException(e);
2768        }
2769        finally {
2770            closeSession(session);
2771        }
2772    }
2773
2774    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
2775        int start, int end) throws SystemException {
2776        Session session = null;
2777
2778        try {
2779            session = openSession();
2780
2781            dynamicQuery.setLimit(start, end);
2782
2783            dynamicQuery.compile(session);
2784
2785            return dynamicQuery.list();
2786        }
2787        catch (Exception e) {
2788            throw processException(e);
2789        }
2790        finally {
2791            closeSession(session);
2792        }
2793    }
2794
2795    public List<SocialActivity> findAll() throws SystemException {
2796        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
2797    }
2798
2799    public List<SocialActivity> findAll(int start, int end)
2800        throws SystemException {
2801        return findAll(start, end, null);
2802    }
2803
2804    public List<SocialActivity> findAll(int start, int end,
2805        OrderByComparator obc) throws SystemException {
2806        Object[] finderArgs = new Object[] {
2807                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2808            };
2809
2810        List<SocialActivity> list = (List<SocialActivity>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
2811                finderArgs, this);
2812
2813        if (list == null) {
2814            Session session = null;
2815
2816            try {
2817                session = openSession();
2818
2819                StringBuilder query = new StringBuilder();
2820
2821                query.append(
2822                    "SELECT socialActivity FROM SocialActivity socialActivity ");
2823
2824                if (obc != null) {
2825                    query.append("ORDER BY ");
2826
2827                    String[] orderByFields = obc.getOrderByFields();
2828
2829                    for (int i = 0; i < orderByFields.length; i++) {
2830                        query.append("socialActivity.");
2831                        query.append(orderByFields[i]);
2832
2833                        if (obc.isAscending()) {
2834                            query.append(" ASC");
2835                        }
2836                        else {
2837                            query.append(" DESC");
2838                        }
2839
2840                        if ((i + 1) < orderByFields.length) {
2841                            query.append(", ");
2842                        }
2843                    }
2844                }
2845
2846                else {
2847                    query.append("ORDER BY ");
2848
2849                    query.append("socialActivity.createDate DESC");
2850                }
2851
2852                Query q = session.createQuery(query.toString());
2853
2854                if (obc == null) {
2855                    list = (List<SocialActivity>)QueryUtil.list(q,
2856                            getDialect(), start, end, false);
2857
2858                    Collections.sort(list);
2859                }
2860                else {
2861                    list = (List<SocialActivity>)QueryUtil.list(q,
2862                            getDialect(), start, end);
2863                }
2864            }
2865            catch (Exception e) {
2866                throw processException(e);
2867            }
2868            finally {
2869                if (list == null) {
2870                    list = new ArrayList<SocialActivity>();
2871                }
2872
2873                cacheResult(list);
2874
2875                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
2876
2877                closeSession(session);
2878            }
2879        }
2880
2881        return list;
2882    }
2883
2884    public void removeByGroupId(long groupId) throws SystemException {
2885        for (SocialActivity socialActivity : findByGroupId(groupId)) {
2886            remove(socialActivity);
2887        }
2888    }
2889
2890    public void removeByCompanyId(long companyId) throws SystemException {
2891        for (SocialActivity socialActivity : findByCompanyId(companyId)) {
2892            remove(socialActivity);
2893        }
2894    }
2895
2896    public void removeByUserId(long userId) throws SystemException {
2897        for (SocialActivity socialActivity : findByUserId(userId)) {
2898            remove(socialActivity);
2899        }
2900    }
2901
2902    public void removeByMirrorActivityId(long mirrorActivityId)
2903        throws NoSuchActivityException, SystemException {
2904        SocialActivity socialActivity = findByMirrorActivityId(mirrorActivityId);
2905
2906        remove(socialActivity);
2907    }
2908
2909    public void removeByClassNameId(long classNameId) throws SystemException {
2910        for (SocialActivity socialActivity : findByClassNameId(classNameId)) {
2911            remove(socialActivity);
2912        }
2913    }
2914
2915    public void removeByReceiverUserId(long receiverUserId)
2916        throws SystemException {
2917        for (SocialActivity socialActivity : findByReceiverUserId(
2918                receiverUserId)) {
2919            remove(socialActivity);
2920        }
2921    }
2922
2923    public void removeByC_C(long classNameId, long classPK)
2924        throws SystemException {
2925        for (SocialActivity socialActivity : findByC_C(classNameId, classPK)) {
2926            remove(socialActivity);
2927        }
2928    }
2929
2930    public void removeByM_C_C(long mirrorActivityId, long classNameId,
2931        long classPK) throws SystemException {
2932        for (SocialActivity socialActivity : findByM_C_C(mirrorActivityId,
2933                classNameId, classPK)) {
2934            remove(socialActivity);
2935        }
2936    }
2937
2938    public void removeByG_U_CD_C_C_T_R(long groupId, long userId,
2939        Date createDate, long classNameId, long classPK, int type,
2940        long receiverUserId) throws NoSuchActivityException, SystemException {
2941        SocialActivity socialActivity = findByG_U_CD_C_C_T_R(groupId, userId,
2942                createDate, classNameId, classPK, type, receiverUserId);
2943
2944        remove(socialActivity);
2945    }
2946
2947    public void removeAll() throws SystemException {
2948        for (SocialActivity socialActivity : findAll()) {
2949            remove(socialActivity);
2950        }
2951    }
2952
2953    public int countByGroupId(long groupId) throws SystemException {
2954        Object[] finderArgs = new Object[] { new Long(groupId) };
2955
2956        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
2957                finderArgs, this);
2958
2959        if (count == null) {
2960            Session session = null;
2961
2962            try {
2963                session = openSession();
2964
2965                StringBuilder query = new StringBuilder();
2966
2967                query.append("SELECT COUNT(socialActivity) ");
2968                query.append("FROM SocialActivity socialActivity WHERE ");
2969
2970                query.append("socialActivity.groupId = ?");
2971
2972                query.append(" ");
2973
2974                Query q = session.createQuery(query.toString());
2975
2976                QueryPos qPos = QueryPos.getInstance(q);
2977
2978                qPos.add(groupId);
2979
2980                count = (Long)q.uniqueResult();
2981            }
2982            catch (Exception e) {
2983                throw processException(e);
2984            }
2985            finally {
2986                if (count == null) {
2987                    count = Long.valueOf(0);
2988                }
2989
2990                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
2991                    finderArgs, count);
2992
2993                closeSession(session);
2994            }
2995        }
2996
2997        return count.intValue();
2998    }
2999
3000    public int countByCompanyId(long companyId) throws SystemException {
3001        Object[] finderArgs = new Object[] { new Long(companyId) };
3002
3003        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
3004                finderArgs, this);
3005
3006        if (count == null) {
3007            Session session = null;
3008
3009            try {
3010                session = openSession();
3011
3012                StringBuilder query = new StringBuilder();
3013
3014                query.append("SELECT COUNT(socialActivity) ");
3015                query.append("FROM SocialActivity socialActivity WHERE ");
3016
3017                query.append("socialActivity.companyId = ?");
3018
3019                query.append(" ");
3020
3021                Query q = session.createQuery(query.toString());
3022
3023                QueryPos qPos = QueryPos.getInstance(q);
3024
3025                qPos.add(companyId);
3026
3027                count = (Long)q.uniqueResult();
3028            }
3029            catch (Exception e) {
3030                throw processException(e);
3031            }
3032            finally {
3033                if (count == null) {
3034                    count = Long.valueOf(0);
3035                }
3036
3037                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
3038                    finderArgs, count);
3039
3040                closeSession(session);
3041            }
3042        }
3043
3044        return count.intValue();
3045    }
3046
3047    public int countByUserId(long userId) throws SystemException {
3048        Object[] finderArgs = new Object[] { new Long(userId) };
3049
3050        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_USERID,
3051                finderArgs, this);
3052
3053        if (count == null) {
3054            Session session = null;
3055
3056            try {
3057                session = openSession();
3058
3059                StringBuilder query = new StringBuilder();
3060
3061                query.append("SELECT COUNT(socialActivity) ");
3062                query.append("FROM SocialActivity socialActivity WHERE ");
3063
3064                query.append("socialActivity.userId = ?");
3065
3066                query.append(" ");
3067
3068                Query q = session.createQuery(query.toString());
3069
3070                QueryPos qPos = QueryPos.getInstance(q);
3071
3072                qPos.add(userId);
3073
3074                count = (Long)q.uniqueResult();
3075            }
3076            catch (Exception e) {
3077                throw processException(e);
3078            }
3079            finally {
3080                if (count == null) {
3081                    count = Long.valueOf(0);
3082                }
3083
3084                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_USERID,
3085                    finderArgs, count);
3086
3087                closeSession(session);
3088            }
3089        }
3090
3091        return count.intValue();
3092    }
3093
3094    public int countByMirrorActivityId(long mirrorActivityId)
3095        throws SystemException {
3096        Object[] finderArgs = new Object[] { new Long(mirrorActivityId) };
3097
3098        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_MIRRORACTIVITYID,
3099                finderArgs, this);
3100
3101        if (count == null) {
3102            Session session = null;
3103
3104            try {
3105                session = openSession();
3106
3107                StringBuilder query = new StringBuilder();
3108
3109                query.append("SELECT COUNT(socialActivity) ");
3110                query.append("FROM SocialActivity socialActivity WHERE ");
3111
3112                query.append("socialActivity.mirrorActivityId = ?");
3113
3114                query.append(" ");
3115
3116                Query q = session.createQuery(query.toString());
3117
3118                QueryPos qPos = QueryPos.getInstance(q);
3119
3120                qPos.add(mirrorActivityId);
3121
3122                count = (Long)q.uniqueResult();
3123            }
3124            catch (Exception e) {
3125                throw processException(e);
3126            }
3127            finally {
3128                if (count == null) {
3129                    count = Long.valueOf(0);
3130                }
3131
3132                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_MIRRORACTIVITYID,
3133                    finderArgs, count);
3134
3135                closeSession(session);
3136            }
3137        }
3138
3139        return count.intValue();
3140    }
3141
3142    public int countByClassNameId(long classNameId) throws SystemException {
3143        Object[] finderArgs = new Object[] { new Long(classNameId) };
3144
3145        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_CLASSNAMEID,
3146                finderArgs, this);
3147
3148        if (count == null) {
3149            Session session = null;
3150
3151            try {
3152                session = openSession();
3153
3154                StringBuilder query = new StringBuilder();
3155
3156                query.append("SELECT COUNT(socialActivity) ");
3157                query.append("FROM SocialActivity socialActivity WHERE ");
3158
3159                query.append("socialActivity.classNameId = ?");
3160
3161                query.append(" ");
3162
3163                Query q = session.createQuery(query.toString());
3164
3165                QueryPos qPos = QueryPos.getInstance(q);
3166
3167                qPos.add(classNameId);
3168
3169                count = (Long)q.uniqueResult();
3170            }
3171            catch (Exception e) {
3172                throw processException(e);
3173            }
3174            finally {
3175                if (count == null) {
3176                    count = Long.valueOf(0);
3177                }
3178
3179                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_CLASSNAMEID,
3180                    finderArgs, count);
3181
3182                closeSession(session);
3183            }
3184        }
3185
3186        return count.intValue();
3187    }
3188
3189    public int countByReceiverUserId(long receiverUserId)
3190        throws SystemException {
3191        Object[] finderArgs = new Object[] { new Long(receiverUserId) };
3192
3193        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_RECEIVERUSERID,
3194                finderArgs, this);
3195
3196        if (count == null) {
3197            Session session = null;
3198
3199            try {
3200                session = openSession();
3201
3202                StringBuilder query = new StringBuilder();
3203
3204                query.append("SELECT COUNT(socialActivity) ");
3205                query.append("FROM SocialActivity socialActivity WHERE ");
3206
3207                query.append("socialActivity.receiverUserId = ?");
3208
3209                query.append(" ");
3210
3211                Query q = session.createQuery(query.toString());
3212
3213                QueryPos qPos = QueryPos.getInstance(q);
3214
3215                qPos.add(receiverUserId);
3216
3217                count = (Long)q.uniqueResult();
3218            }
3219            catch (Exception e) {
3220                throw processException(e);
3221            }
3222            finally {
3223                if (count == null) {
3224                    count = Long.valueOf(0);
3225                }
3226
3227                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_RECEIVERUSERID,
3228                    finderArgs, count);
3229
3230                closeSession(session);
3231            }
3232        }
3233
3234        return count.intValue();
3235    }
3236
3237    public int countByC_C(long classNameId, long classPK)
3238        throws SystemException {
3239        Object[] finderArgs = new Object[] {
3240                new Long(classNameId), new Long(classPK)
3241            };
3242
3243        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C,
3244                finderArgs, this);
3245
3246        if (count == null) {
3247            Session session = null;
3248
3249            try {
3250                session = openSession();
3251
3252                StringBuilder query = new StringBuilder();
3253
3254                query.append("SELECT COUNT(socialActivity) ");
3255                query.append("FROM SocialActivity socialActivity WHERE ");
3256
3257                query.append("socialActivity.classNameId = ?");
3258
3259                query.append(" AND ");
3260
3261                query.append("socialActivity.classPK = ?");
3262
3263                query.append(" ");
3264
3265                Query q = session.createQuery(query.toString());
3266
3267                QueryPos qPos = QueryPos.getInstance(q);
3268
3269                qPos.add(classNameId);
3270
3271                qPos.add(classPK);
3272
3273                count = (Long)q.uniqueResult();
3274            }
3275            catch (Exception e) {
3276                throw processException(e);
3277            }
3278            finally {
3279                if (count == null) {
3280                    count = Long.valueOf(0);
3281                }
3282
3283                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C, finderArgs,
3284                    count);
3285
3286                closeSession(session);
3287            }
3288        }
3289
3290        return count.intValue();
3291    }
3292
3293    public int countByM_C_C(long mirrorActivityId, long classNameId,
3294        long classPK) throws SystemException {
3295        Object[] finderArgs = new Object[] {
3296                new Long(mirrorActivityId), new Long(classNameId),
3297                new Long(classPK)
3298            };
3299
3300        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_M_C_C,
3301                finderArgs, this);
3302
3303        if (count == null) {
3304            Session session = null;
3305
3306            try {
3307                session = openSession();
3308
3309                StringBuilder query = new StringBuilder();
3310
3311                query.append("SELECT COUNT(socialActivity) ");
3312                query.append("FROM SocialActivity socialActivity WHERE ");
3313
3314                query.append("socialActivity.mirrorActivityId = ?");
3315
3316                query.append(" AND ");
3317
3318                query.append("socialActivity.classNameId = ?");
3319
3320                query.append(" AND ");
3321
3322                query.append("socialActivity.classPK = ?");
3323
3324                query.append(" ");
3325
3326                Query q = session.createQuery(query.toString());
3327
3328                QueryPos qPos = QueryPos.getInstance(q);
3329
3330                qPos.add(mirrorActivityId);
3331
3332                qPos.add(classNameId);
3333
3334                qPos.add(classPK);
3335
3336                count = (Long)q.uniqueResult();
3337            }
3338            catch (Exception e) {
3339                throw processException(e);
3340            }
3341            finally {
3342                if (count == null) {
3343                    count = Long.valueOf(0);
3344                }
3345
3346                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_M_C_C,
3347                    finderArgs, count);
3348
3349                closeSession(session);
3350            }
3351        }
3352
3353        return count.intValue();
3354    }
3355
3356    public int countByG_U_CD_C_C_T_R(long groupId, long userId,
3357        Date createDate, long classNameId, long classPK, int type,
3358        long receiverUserId) throws SystemException {
3359        Object[] finderArgs = new Object[] {
3360                new Long(groupId), new Long(userId),
3361                
3362                createDate, new Long(classNameId), new Long(classPK),
3363                new Integer(type), new Long(receiverUserId)
3364            };
3365
3366        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_U_CD_C_C_T_R,
3367                finderArgs, this);
3368
3369        if (count == null) {
3370            Session session = null;
3371
3372            try {
3373                session = openSession();
3374
3375                StringBuilder query = new StringBuilder();
3376
3377                query.append("SELECT COUNT(socialActivity) ");
3378                query.append("FROM SocialActivity socialActivity WHERE ");
3379
3380                query.append("socialActivity.groupId = ?");
3381
3382                query.append(" AND ");
3383
3384                query.append("socialActivity.userId = ?");
3385
3386                query.append(" AND ");
3387
3388                if (createDate == null) {
3389                    query.append("socialActivity.createDate IS NULL");
3390                }
3391                else {
3392                    query.append("socialActivity.createDate = ?");
3393                }
3394
3395                query.append(" AND ");
3396
3397                query.append("socialActivity.classNameId = ?");
3398
3399                query.append(" AND ");
3400
3401                query.append("socialActivity.classPK = ?");
3402
3403                query.append(" AND ");
3404
3405                query.append("socialActivity.type = ?");
3406
3407                query.append(" AND ");
3408
3409                query.append("socialActivity.receiverUserId = ?");
3410
3411                query.append(" ");
3412
3413                Query q = session.createQuery(query.toString());
3414
3415                QueryPos qPos = QueryPos.getInstance(q);
3416
3417                qPos.add(groupId);
3418
3419                qPos.add(userId);
3420
3421                if (createDate != null) {
3422                    qPos.add(CalendarUtil.getTimestamp(createDate));
3423                }
3424
3425                qPos.add(classNameId);
3426
3427                qPos.add(classPK);
3428
3429                qPos.add(type);
3430
3431                qPos.add(receiverUserId);
3432
3433                count = (Long)q.uniqueResult();
3434            }
3435            catch (Exception e) {
3436                throw processException(e);
3437            }
3438            finally {
3439                if (count == null) {
3440                    count = Long.valueOf(0);
3441                }
3442
3443                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_U_CD_C_C_T_R,
3444                    finderArgs, count);
3445
3446                closeSession(session);
3447            }
3448        }
3449
3450        return count.intValue();
3451    }
3452
3453    public int countAll() throws SystemException {
3454        Object[] finderArgs = new Object[0];
3455
3456        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
3457                finderArgs, this);
3458
3459        if (count == null) {
3460            Session session = null;
3461
3462            try {
3463                session = openSession();
3464
3465                Query q = session.createQuery(
3466                        "SELECT COUNT(socialActivity) FROM SocialActivity socialActivity");
3467
3468                count = (Long)q.uniqueResult();
3469            }
3470            catch (Exception e) {
3471                throw processException(e);
3472            }
3473            finally {
3474                if (count == null) {
3475                    count = Long.valueOf(0);
3476                }
3477
3478                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
3479                    count);
3480
3481                closeSession(session);
3482            }
3483        }
3484
3485        return count.intValue();
3486    }
3487
3488    public void afterPropertiesSet() {
3489        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
3490                    com.liferay.portal.util.PropsUtil.get(
3491                        "value.object.listener.com.liferay.portlet.social.model.SocialActivity")));
3492
3493        if (listenerClassNames.length > 0) {
3494            try {
3495                List<ModelListener<SocialActivity>> listenersList = new ArrayList<ModelListener<SocialActivity>>();
3496
3497                for (String listenerClassName : listenerClassNames) {
3498                    listenersList.add((ModelListener<SocialActivity>)Class.forName(
3499                            listenerClassName).newInstance());
3500                }
3501
3502                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
3503            }
3504            catch (Exception e) {
3505                _log.error(e);
3506            }
3507        }
3508    }
3509
3510    @BeanReference(name = "com.liferay.portlet.social.service.persistence.SocialActivityPersistence.impl")
3511    protected com.liferay.portlet.social.service.persistence.SocialActivityPersistence socialActivityPersistence;
3512    @BeanReference(name = "com.liferay.portlet.social.service.persistence.SocialRelationPersistence.impl")
3513    protected com.liferay.portlet.social.service.persistence.SocialRelationPersistence socialRelationPersistence;
3514    @BeanReference(name = "com.liferay.portlet.social.service.persistence.SocialRequestPersistence.impl")
3515    protected com.liferay.portlet.social.service.persistence.SocialRequestPersistence socialRequestPersistence;
3516    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
3517    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
3518    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
3519    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
3520    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
3521    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
3522    private static Log _log = LogFactoryUtil.getLog(SocialActivityPersistenceImpl.class);
3523}