1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.social.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.kernel.annotation.BeanReference;
19  import com.liferay.portal.kernel.cache.CacheRegistry;
20  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
21  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
22  import com.liferay.portal.kernel.dao.orm.FinderPath;
23  import com.liferay.portal.kernel.dao.orm.Query;
24  import com.liferay.portal.kernel.dao.orm.QueryPos;
25  import com.liferay.portal.kernel.dao.orm.QueryUtil;
26  import com.liferay.portal.kernel.dao.orm.Session;
27  import com.liferay.portal.kernel.exception.SystemException;
28  import com.liferay.portal.kernel.log.Log;
29  import com.liferay.portal.kernel.log.LogFactoryUtil;
30  import com.liferay.portal.kernel.util.GetterUtil;
31  import com.liferay.portal.kernel.util.InstanceFactory;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.model.ModelListener;
37  import com.liferay.portal.service.persistence.BatchSessionUtil;
38  import com.liferay.portal.service.persistence.ResourcePersistence;
39  import com.liferay.portal.service.persistence.UserPersistence;
40  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
41  
42  import com.liferay.portlet.social.NoSuchEquityUserException;
43  import com.liferay.portlet.social.model.SocialEquityUser;
44  import com.liferay.portlet.social.model.impl.SocialEquityUserImpl;
45  import com.liferay.portlet.social.model.impl.SocialEquityUserModelImpl;
46  
47  import java.io.Serializable;
48  
49  import java.util.ArrayList;
50  import java.util.Collections;
51  import java.util.List;
52  
53  /**
54   * <a href="SocialEquityUserPersistenceImpl.java.html"><b><i>View Source</i></b></a>
55   *
56   * <p>
57   * ServiceBuilder generated this class. Modifications in this class will be
58   * overwritten the next time is generated.
59   * </p>
60   *
61   * @author    Brian Wing Shun Chan
62   * @see       SocialEquityUserPersistence
63   * @see       SocialEquityUserUtil
64   * @generated
65   */
66  public class SocialEquityUserPersistenceImpl extends BasePersistenceImpl<SocialEquityUser>
67      implements SocialEquityUserPersistence {
68      public static final String FINDER_CLASS_NAME_ENTITY = SocialEquityUserImpl.class.getName();
69      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
70          ".List";
71      public static final FinderPath FINDER_PATH_FIND_BY_USERID = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
72              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
73              FINDER_CLASS_NAME_LIST, "findByUserId",
74              new String[] {
75                  Long.class.getName(),
76                  
77              "java.lang.Integer", "java.lang.Integer",
78                  "com.liferay.portal.kernel.util.OrderByComparator"
79              });
80      public static final FinderPath FINDER_PATH_COUNT_BY_USERID = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
81              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
82              FINDER_CLASS_NAME_LIST, "countByUserId",
83              new String[] { Long.class.getName() });
84      public static final FinderPath FINDER_PATH_FETCH_BY_G_U = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
85              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
86              FINDER_CLASS_NAME_ENTITY, "fetchByG_U",
87              new String[] { Long.class.getName(), Long.class.getName() });
88      public static final FinderPath FINDER_PATH_COUNT_BY_G_U = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
89              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
90              FINDER_CLASS_NAME_LIST, "countByG_U",
91              new String[] { Long.class.getName(), Long.class.getName() });
92      public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
93              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
94              FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
95      public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
96              SocialEquityUserModelImpl.FINDER_CACHE_ENABLED,
97              FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
98  
99      public void cacheResult(SocialEquityUser socialEquityUser) {
100         EntityCacheUtil.putResult(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
101             SocialEquityUserImpl.class, socialEquityUser.getPrimaryKey(),
102             socialEquityUser);
103 
104         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U,
105             new Object[] {
106                 new Long(socialEquityUser.getGroupId()),
107                 new Long(socialEquityUser.getUserId())
108             }, socialEquityUser);
109     }
110 
111     public void cacheResult(List<SocialEquityUser> socialEquityUsers) {
112         for (SocialEquityUser socialEquityUser : socialEquityUsers) {
113             if (EntityCacheUtil.getResult(
114                         SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
115                         SocialEquityUserImpl.class,
116                         socialEquityUser.getPrimaryKey(), this) == null) {
117                 cacheResult(socialEquityUser);
118             }
119         }
120     }
121 
122     public void clearCache() {
123         CacheRegistry.clear(SocialEquityUserImpl.class.getName());
124         EntityCacheUtil.clearCache(SocialEquityUserImpl.class.getName());
125         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
126         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
127     }
128 
129     public void clearCache(SocialEquityUser socialEquityUser) {
130         EntityCacheUtil.removeResult(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
131             SocialEquityUserImpl.class, socialEquityUser.getPrimaryKey());
132 
133         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_U,
134             new Object[] {
135                 new Long(socialEquityUser.getGroupId()),
136                 new Long(socialEquityUser.getUserId())
137             });
138     }
139 
140     public SocialEquityUser create(long equityUserId) {
141         SocialEquityUser socialEquityUser = new SocialEquityUserImpl();
142 
143         socialEquityUser.setNew(true);
144         socialEquityUser.setPrimaryKey(equityUserId);
145 
146         return socialEquityUser;
147     }
148 
149     public SocialEquityUser remove(Serializable primaryKey)
150         throws NoSuchModelException, SystemException {
151         return remove(((Long)primaryKey).longValue());
152     }
153 
154     public SocialEquityUser remove(long equityUserId)
155         throws NoSuchEquityUserException, SystemException {
156         Session session = null;
157 
158         try {
159             session = openSession();
160 
161             SocialEquityUser socialEquityUser = (SocialEquityUser)session.get(SocialEquityUserImpl.class,
162                     new Long(equityUserId));
163 
164             if (socialEquityUser == null) {
165                 if (_log.isWarnEnabled()) {
166                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + equityUserId);
167                 }
168 
169                 throw new NoSuchEquityUserException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
170                     equityUserId);
171             }
172 
173             return remove(socialEquityUser);
174         }
175         catch (NoSuchEquityUserException nsee) {
176             throw nsee;
177         }
178         catch (Exception e) {
179             throw processException(e);
180         }
181         finally {
182             closeSession(session);
183         }
184     }
185 
186     public SocialEquityUser remove(SocialEquityUser socialEquityUser)
187         throws SystemException {
188         for (ModelListener<SocialEquityUser> listener : listeners) {
189             listener.onBeforeRemove(socialEquityUser);
190         }
191 
192         socialEquityUser = removeImpl(socialEquityUser);
193 
194         for (ModelListener<SocialEquityUser> listener : listeners) {
195             listener.onAfterRemove(socialEquityUser);
196         }
197 
198         return socialEquityUser;
199     }
200 
201     protected SocialEquityUser removeImpl(SocialEquityUser socialEquityUser)
202         throws SystemException {
203         socialEquityUser = toUnwrappedModel(socialEquityUser);
204 
205         Session session = null;
206 
207         try {
208             session = openSession();
209 
210             if (socialEquityUser.isCachedModel() ||
211                     BatchSessionUtil.isEnabled()) {
212                 Object staleObject = session.get(SocialEquityUserImpl.class,
213                         socialEquityUser.getPrimaryKeyObj());
214 
215                 if (staleObject != null) {
216                     session.evict(staleObject);
217                 }
218             }
219 
220             session.delete(socialEquityUser);
221 
222             session.flush();
223         }
224         catch (Exception e) {
225             throw processException(e);
226         }
227         finally {
228             closeSession(session);
229         }
230 
231         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
232 
233         SocialEquityUserModelImpl socialEquityUserModelImpl = (SocialEquityUserModelImpl)socialEquityUser;
234 
235         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_U,
236             new Object[] {
237                 new Long(socialEquityUserModelImpl.getOriginalGroupId()),
238                 new Long(socialEquityUserModelImpl.getOriginalUserId())
239             });
240 
241         EntityCacheUtil.removeResult(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
242             SocialEquityUserImpl.class, socialEquityUser.getPrimaryKey());
243 
244         return socialEquityUser;
245     }
246 
247     public SocialEquityUser updateImpl(
248         com.liferay.portlet.social.model.SocialEquityUser socialEquityUser,
249         boolean merge) throws SystemException {
250         socialEquityUser = toUnwrappedModel(socialEquityUser);
251 
252         boolean isNew = socialEquityUser.isNew();
253 
254         SocialEquityUserModelImpl socialEquityUserModelImpl = (SocialEquityUserModelImpl)socialEquityUser;
255 
256         Session session = null;
257 
258         try {
259             session = openSession();
260 
261             BatchSessionUtil.update(session, socialEquityUser, merge);
262 
263             socialEquityUser.setNew(false);
264         }
265         catch (Exception e) {
266             throw processException(e);
267         }
268         finally {
269             closeSession(session);
270         }
271 
272         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
273 
274         EntityCacheUtil.putResult(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
275             SocialEquityUserImpl.class, socialEquityUser.getPrimaryKey(),
276             socialEquityUser);
277 
278         if (!isNew &&
279                 ((socialEquityUser.getGroupId() != socialEquityUserModelImpl.getOriginalGroupId()) ||
280                 (socialEquityUser.getUserId() != socialEquityUserModelImpl.getOriginalUserId()))) {
281             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_U,
282                 new Object[] {
283                     new Long(socialEquityUserModelImpl.getOriginalGroupId()),
284                     new Long(socialEquityUserModelImpl.getOriginalUserId())
285                 });
286         }
287 
288         if (isNew ||
289                 ((socialEquityUser.getGroupId() != socialEquityUserModelImpl.getOriginalGroupId()) ||
290                 (socialEquityUser.getUserId() != socialEquityUserModelImpl.getOriginalUserId()))) {
291             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U,
292                 new Object[] {
293                     new Long(socialEquityUser.getGroupId()),
294                     new Long(socialEquityUser.getUserId())
295                 }, socialEquityUser);
296         }
297 
298         return socialEquityUser;
299     }
300 
301     protected SocialEquityUser toUnwrappedModel(
302         SocialEquityUser socialEquityUser) {
303         if (socialEquityUser instanceof SocialEquityUserImpl) {
304             return socialEquityUser;
305         }
306 
307         SocialEquityUserImpl socialEquityUserImpl = new SocialEquityUserImpl();
308 
309         socialEquityUserImpl.setNew(socialEquityUser.isNew());
310         socialEquityUserImpl.setPrimaryKey(socialEquityUser.getPrimaryKey());
311 
312         socialEquityUserImpl.setEquityUserId(socialEquityUser.getEquityUserId());
313         socialEquityUserImpl.setGroupId(socialEquityUser.getGroupId());
314         socialEquityUserImpl.setCompanyId(socialEquityUser.getCompanyId());
315         socialEquityUserImpl.setUserId(socialEquityUser.getUserId());
316         socialEquityUserImpl.setContributionEquity(socialEquityUser.getContributionEquity());
317         socialEquityUserImpl.setParticipationK(socialEquityUser.getParticipationK());
318         socialEquityUserImpl.setParticipationB(socialEquityUser.getParticipationB());
319         socialEquityUserImpl.setParticipationEquity(socialEquityUser.getParticipationEquity());
320         socialEquityUserImpl.setPersonalEquity(socialEquityUser.getPersonalEquity());
321 
322         return socialEquityUserImpl;
323     }
324 
325     public SocialEquityUser findByPrimaryKey(Serializable primaryKey)
326         throws NoSuchModelException, SystemException {
327         return findByPrimaryKey(((Long)primaryKey).longValue());
328     }
329 
330     public SocialEquityUser findByPrimaryKey(long equityUserId)
331         throws NoSuchEquityUserException, SystemException {
332         SocialEquityUser socialEquityUser = fetchByPrimaryKey(equityUserId);
333 
334         if (socialEquityUser == null) {
335             if (_log.isWarnEnabled()) {
336                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + equityUserId);
337             }
338 
339             throw new NoSuchEquityUserException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
340                 equityUserId);
341         }
342 
343         return socialEquityUser;
344     }
345 
346     public SocialEquityUser fetchByPrimaryKey(Serializable primaryKey)
347         throws SystemException {
348         return fetchByPrimaryKey(((Long)primaryKey).longValue());
349     }
350 
351     public SocialEquityUser fetchByPrimaryKey(long equityUserId)
352         throws SystemException {
353         SocialEquityUser socialEquityUser = (SocialEquityUser)EntityCacheUtil.getResult(SocialEquityUserModelImpl.ENTITY_CACHE_ENABLED,
354                 SocialEquityUserImpl.class, equityUserId, this);
355 
356         if (socialEquityUser == null) {
357             Session session = null;
358 
359             try {
360                 session = openSession();
361 
362                 socialEquityUser = (SocialEquityUser)session.get(SocialEquityUserImpl.class,
363                         new Long(equityUserId));
364             }
365             catch (Exception e) {
366                 throw processException(e);
367             }
368             finally {
369                 if (socialEquityUser != null) {
370                     cacheResult(socialEquityUser);
371                 }
372 
373                 closeSession(session);
374             }
375         }
376 
377         return socialEquityUser;
378     }
379 
380     public List<SocialEquityUser> findByUserId(long userId)
381         throws SystemException {
382         return findByUserId(userId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
383     }
384 
385     public List<SocialEquityUser> findByUserId(long userId, int start, int end)
386         throws SystemException {
387         return findByUserId(userId, start, end, null);
388     }
389 
390     public List<SocialEquityUser> findByUserId(long userId, int start, int end,
391         OrderByComparator orderByComparator) throws SystemException {
392         Object[] finderArgs = new Object[] {
393                 new Long(userId),
394                 
395                 String.valueOf(start), String.valueOf(end),
396                 String.valueOf(orderByComparator)
397             };
398 
399         List<SocialEquityUser> list = (List<SocialEquityUser>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_USERID,
400                 finderArgs, this);
401 
402         if (list == null) {
403             Session session = null;
404 
405             try {
406                 session = openSession();
407 
408                 StringBundler query = null;
409 
410                 if (orderByComparator != null) {
411                     query = new StringBundler(3 +
412                             (orderByComparator.getOrderByFields().length * 3));
413                 }
414                 else {
415                     query = new StringBundler(2);
416                 }
417 
418                 query.append(_SQL_SELECT_SOCIALEQUITYUSER_WHERE);
419 
420                 query.append(_FINDER_COLUMN_USERID_USERID_2);
421 
422                 if (orderByComparator != null) {
423                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
424                         orderByComparator);
425                 }
426 
427                 String sql = query.toString();
428 
429                 Query q = session.createQuery(sql);
430 
431                 QueryPos qPos = QueryPos.getInstance(q);
432 
433                 qPos.add(userId);
434 
435                 list = (List<SocialEquityUser>)QueryUtil.list(q, getDialect(),
436                         start, end);
437             }
438             catch (Exception e) {
439                 throw processException(e);
440             }
441             finally {
442                 if (list == null) {
443                     list = new ArrayList<SocialEquityUser>();
444                 }
445 
446                 cacheResult(list);
447 
448                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_USERID,
449                     finderArgs, list);
450 
451                 closeSession(session);
452             }
453         }
454 
455         return list;
456     }
457 
458     public SocialEquityUser findByUserId_First(long userId,
459         OrderByComparator orderByComparator)
460         throws NoSuchEquityUserException, SystemException {
461         List<SocialEquityUser> list = findByUserId(userId, 0, 1,
462                 orderByComparator);
463 
464         if (list.isEmpty()) {
465             StringBundler msg = new StringBundler(4);
466 
467             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
468 
469             msg.append("userId=");
470             msg.append(userId);
471 
472             msg.append(StringPool.CLOSE_CURLY_BRACE);
473 
474             throw new NoSuchEquityUserException(msg.toString());
475         }
476         else {
477             return list.get(0);
478         }
479     }
480 
481     public SocialEquityUser findByUserId_Last(long userId,
482         OrderByComparator orderByComparator)
483         throws NoSuchEquityUserException, SystemException {
484         int count = countByUserId(userId);
485 
486         List<SocialEquityUser> list = findByUserId(userId, count - 1, count,
487                 orderByComparator);
488 
489         if (list.isEmpty()) {
490             StringBundler msg = new StringBundler(4);
491 
492             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
493 
494             msg.append("userId=");
495             msg.append(userId);
496 
497             msg.append(StringPool.CLOSE_CURLY_BRACE);
498 
499             throw new NoSuchEquityUserException(msg.toString());
500         }
501         else {
502             return list.get(0);
503         }
504     }
505 
506     public SocialEquityUser[] findByUserId_PrevAndNext(long equityUserId,
507         long userId, OrderByComparator orderByComparator)
508         throws NoSuchEquityUserException, SystemException {
509         SocialEquityUser socialEquityUser = findByPrimaryKey(equityUserId);
510 
511         Session session = null;
512 
513         try {
514             session = openSession();
515 
516             SocialEquityUser[] array = new SocialEquityUserImpl[3];
517 
518             array[0] = getByUserId_PrevAndNext(session, socialEquityUser,
519                     userId, orderByComparator, true);
520 
521             array[1] = socialEquityUser;
522 
523             array[2] = getByUserId_PrevAndNext(session, socialEquityUser,
524                     userId, orderByComparator, false);
525 
526             return array;
527         }
528         catch (Exception e) {
529             throw processException(e);
530         }
531         finally {
532             closeSession(session);
533         }
534     }
535 
536     protected SocialEquityUser getByUserId_PrevAndNext(Session session,
537         SocialEquityUser socialEquityUser, long userId,
538         OrderByComparator orderByComparator, boolean previous) {
539         StringBundler query = null;
540 
541         if (orderByComparator != null) {
542             query = new StringBundler(6 +
543                     (orderByComparator.getOrderByFields().length * 6));
544         }
545         else {
546             query = new StringBundler(3);
547         }
548 
549         query.append(_SQL_SELECT_SOCIALEQUITYUSER_WHERE);
550 
551         query.append(_FINDER_COLUMN_USERID_USERID_2);
552 
553         if (orderByComparator != null) {
554             String[] orderByFields = orderByComparator.getOrderByFields();
555 
556             if (orderByFields.length > 0) {
557                 query.append(WHERE_AND);
558             }
559 
560             for (int i = 0; i < orderByFields.length; i++) {
561                 query.append(_ORDER_BY_ENTITY_ALIAS);
562                 query.append(orderByFields[i]);
563 
564                 if ((i + 1) < orderByFields.length) {
565                     if (orderByComparator.isAscending() ^ previous) {
566                         query.append(WHERE_GREATER_THAN_HAS_NEXT);
567                     }
568                     else {
569                         query.append(WHERE_LESSER_THAN_HAS_NEXT);
570                     }
571                 }
572                 else {
573                     if (orderByComparator.isAscending() ^ previous) {
574                         query.append(WHERE_GREATER_THAN);
575                     }
576                     else {
577                         query.append(WHERE_LESSER_THAN);
578                     }
579                 }
580             }
581 
582             query.append(ORDER_BY_CLAUSE);
583 
584             for (int i = 0; i < orderByFields.length; i++) {
585                 query.append(_ORDER_BY_ENTITY_ALIAS);
586                 query.append(orderByFields[i]);
587 
588                 if ((i + 1) < orderByFields.length) {
589                     if (orderByComparator.isAscending() ^ previous) {
590                         query.append(ORDER_BY_ASC_HAS_NEXT);
591                     }
592                     else {
593                         query.append(ORDER_BY_DESC_HAS_NEXT);
594                     }
595                 }
596                 else {
597                     if (orderByComparator.isAscending() ^ previous) {
598                         query.append(ORDER_BY_ASC);
599                     }
600                     else {
601                         query.append(ORDER_BY_DESC);
602                     }
603                 }
604             }
605         }
606 
607         String sql = query.toString();
608 
609         Query q = session.createQuery(sql);
610 
611         q.setFirstResult(0);
612         q.setMaxResults(2);
613 
614         QueryPos qPos = QueryPos.getInstance(q);
615 
616         qPos.add(userId);
617 
618         if (orderByComparator != null) {
619             Object[] values = orderByComparator.getOrderByValues(socialEquityUser);
620 
621             for (Object value : values) {
622                 qPos.add(value);
623             }
624         }
625 
626         List<SocialEquityUser> list = q.list();
627 
628         if (list.size() == 2) {
629             return list.get(1);
630         }
631         else {
632             return null;
633         }
634     }
635 
636     public SocialEquityUser findByG_U(long groupId, long userId)
637         throws NoSuchEquityUserException, SystemException {
638         SocialEquityUser socialEquityUser = fetchByG_U(groupId, userId);
639 
640         if (socialEquityUser == null) {
641             StringBundler msg = new StringBundler(6);
642 
643             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
644 
645             msg.append("groupId=");
646             msg.append(groupId);
647 
648             msg.append(", userId=");
649             msg.append(userId);
650 
651             msg.append(StringPool.CLOSE_CURLY_BRACE);
652 
653             if (_log.isWarnEnabled()) {
654                 _log.warn(msg.toString());
655             }
656 
657             throw new NoSuchEquityUserException(msg.toString());
658         }
659 
660         return socialEquityUser;
661     }
662 
663     public SocialEquityUser fetchByG_U(long groupId, long userId)
664         throws SystemException {
665         return fetchByG_U(groupId, userId, true);
666     }
667 
668     public SocialEquityUser fetchByG_U(long groupId, long userId,
669         boolean retrieveFromCache) throws SystemException {
670         Object[] finderArgs = new Object[] { new Long(groupId), new Long(userId) };
671 
672         Object result = null;
673 
674         if (retrieveFromCache) {
675             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_U,
676                     finderArgs, this);
677         }
678 
679         if (result == null) {
680             Session session = null;
681 
682             try {
683                 session = openSession();
684 
685                 StringBundler query = new StringBundler(3);
686 
687                 query.append(_SQL_SELECT_SOCIALEQUITYUSER_WHERE);
688 
689                 query.append(_FINDER_COLUMN_G_U_GROUPID_2);
690 
691                 query.append(_FINDER_COLUMN_G_U_USERID_2);
692 
693                 String sql = query.toString();
694 
695                 Query q = session.createQuery(sql);
696 
697                 QueryPos qPos = QueryPos.getInstance(q);
698 
699                 qPos.add(groupId);
700 
701                 qPos.add(userId);
702 
703                 List<SocialEquityUser> list = q.list();
704 
705                 result = list;
706 
707                 SocialEquityUser socialEquityUser = null;
708 
709                 if (list.isEmpty()) {
710                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U,
711                         finderArgs, list);
712                 }
713                 else {
714                     socialEquityUser = list.get(0);
715 
716                     cacheResult(socialEquityUser);
717 
718                     if ((socialEquityUser.getGroupId() != groupId) ||
719                             (socialEquityUser.getUserId() != userId)) {
720                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U,
721                             finderArgs, socialEquityUser);
722                     }
723                 }
724 
725                 return socialEquityUser;
726             }
727             catch (Exception e) {
728                 throw processException(e);
729             }
730             finally {
731                 if (result == null) {
732                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_U,
733                         finderArgs, new ArrayList<SocialEquityUser>());
734                 }
735 
736                 closeSession(session);
737             }
738         }
739         else {
740             if (result instanceof List<?>) {
741                 return null;
742             }
743             else {
744                 return (SocialEquityUser)result;
745             }
746         }
747     }
748 
749     public List<SocialEquityUser> findAll() throws SystemException {
750         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
751     }
752 
753     public List<SocialEquityUser> findAll(int start, int end)
754         throws SystemException {
755         return findAll(start, end, null);
756     }
757 
758     public List<SocialEquityUser> findAll(int start, int end,
759         OrderByComparator orderByComparator) throws SystemException {
760         Object[] finderArgs = new Object[] {
761                 String.valueOf(start), String.valueOf(end),
762                 String.valueOf(orderByComparator)
763             };
764 
765         List<SocialEquityUser> list = (List<SocialEquityUser>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
766                 finderArgs, this);
767 
768         if (list == null) {
769             Session session = null;
770 
771             try {
772                 session = openSession();
773 
774                 StringBundler query = null;
775                 String sql = null;
776 
777                 if (orderByComparator != null) {
778                     query = new StringBundler(2 +
779                             (orderByComparator.getOrderByFields().length * 3));
780 
781                     query.append(_SQL_SELECT_SOCIALEQUITYUSER);
782 
783                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
784                         orderByComparator);
785 
786                     sql = query.toString();
787                 }
788 
789                 sql = _SQL_SELECT_SOCIALEQUITYUSER;
790 
791                 Query q = session.createQuery(sql);
792 
793                 if (orderByComparator == null) {
794                     list = (List<SocialEquityUser>)QueryUtil.list(q,
795                             getDialect(), start, end, false);
796 
797                     Collections.sort(list);
798                 }
799                 else {
800                     list = (List<SocialEquityUser>)QueryUtil.list(q,
801                             getDialect(), start, end);
802                 }
803             }
804             catch (Exception e) {
805                 throw processException(e);
806             }
807             finally {
808                 if (list == null) {
809                     list = new ArrayList<SocialEquityUser>();
810                 }
811 
812                 cacheResult(list);
813 
814                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
815 
816                 closeSession(session);
817             }
818         }
819 
820         return list;
821     }
822 
823     public void removeByUserId(long userId) throws SystemException {
824         for (SocialEquityUser socialEquityUser : findByUserId(userId)) {
825             remove(socialEquityUser);
826         }
827     }
828 
829     public void removeByG_U(long groupId, long userId)
830         throws NoSuchEquityUserException, SystemException {
831         SocialEquityUser socialEquityUser = findByG_U(groupId, userId);
832 
833         remove(socialEquityUser);
834     }
835 
836     public void removeAll() throws SystemException {
837         for (SocialEquityUser socialEquityUser : findAll()) {
838             remove(socialEquityUser);
839         }
840     }
841 
842     public int countByUserId(long userId) throws SystemException {
843         Object[] finderArgs = new Object[] { new Long(userId) };
844 
845         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_USERID,
846                 finderArgs, this);
847 
848         if (count == null) {
849             Session session = null;
850 
851             try {
852                 session = openSession();
853 
854                 StringBundler query = new StringBundler(2);
855 
856                 query.append(_SQL_COUNT_SOCIALEQUITYUSER_WHERE);
857 
858                 query.append(_FINDER_COLUMN_USERID_USERID_2);
859 
860                 String sql = query.toString();
861 
862                 Query q = session.createQuery(sql);
863 
864                 QueryPos qPos = QueryPos.getInstance(q);
865 
866                 qPos.add(userId);
867 
868                 count = (Long)q.uniqueResult();
869             }
870             catch (Exception e) {
871                 throw processException(e);
872             }
873             finally {
874                 if (count == null) {
875                     count = Long.valueOf(0);
876                 }
877 
878                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_USERID,
879                     finderArgs, count);
880 
881                 closeSession(session);
882             }
883         }
884 
885         return count.intValue();
886     }
887 
888     public int countByG_U(long groupId, long userId) throws SystemException {
889         Object[] finderArgs = new Object[] { new Long(groupId), new Long(userId) };
890 
891         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_U,
892                 finderArgs, this);
893 
894         if (count == null) {
895             Session session = null;
896 
897             try {
898                 session = openSession();
899 
900                 StringBundler query = new StringBundler(3);
901 
902                 query.append(_SQL_COUNT_SOCIALEQUITYUSER_WHERE);
903 
904                 query.append(_FINDER_COLUMN_G_U_GROUPID_2);
905 
906                 query.append(_FINDER_COLUMN_G_U_USERID_2);
907 
908                 String sql = query.toString();
909 
910                 Query q = session.createQuery(sql);
911 
912                 QueryPos qPos = QueryPos.getInstance(q);
913 
914                 qPos.add(groupId);
915 
916                 qPos.add(userId);
917 
918                 count = (Long)q.uniqueResult();
919             }
920             catch (Exception e) {
921                 throw processException(e);
922             }
923             finally {
924                 if (count == null) {
925                     count = Long.valueOf(0);
926                 }
927 
928                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_U, finderArgs,
929                     count);
930 
931                 closeSession(session);
932             }
933         }
934 
935         return count.intValue();
936     }
937 
938     public int countAll() throws SystemException {
939         Object[] finderArgs = new Object[0];
940 
941         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
942                 finderArgs, this);
943 
944         if (count == null) {
945             Session session = null;
946 
947             try {
948                 session = openSession();
949 
950                 Query q = session.createQuery(_SQL_COUNT_SOCIALEQUITYUSER);
951 
952                 count = (Long)q.uniqueResult();
953             }
954             catch (Exception e) {
955                 throw processException(e);
956             }
957             finally {
958                 if (count == null) {
959                     count = Long.valueOf(0);
960                 }
961 
962                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
963                     count);
964 
965                 closeSession(session);
966             }
967         }
968 
969         return count.intValue();
970     }
971 
972     public void afterPropertiesSet() {
973         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
974                     com.liferay.portal.util.PropsUtil.get(
975                         "value.object.listener.com.liferay.portlet.social.model.SocialEquityUser")));
976 
977         if (listenerClassNames.length > 0) {
978             try {
979                 List<ModelListener<SocialEquityUser>> listenersList = new ArrayList<ModelListener<SocialEquityUser>>();
980 
981                 for (String listenerClassName : listenerClassNames) {
982                     listenersList.add((ModelListener<SocialEquityUser>)InstanceFactory.newInstance(
983                             listenerClassName));
984                 }
985 
986                 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
987             }
988             catch (Exception e) {
989                 _log.error(e);
990             }
991         }
992     }
993 
994     @BeanReference(type = SocialActivityPersistence.class)
995     protected SocialActivityPersistence socialActivityPersistence;
996     @BeanReference(type = SocialEquityAssetEntryPersistence.class)
997     protected SocialEquityAssetEntryPersistence socialEquityAssetEntryPersistence;
998     @BeanReference(type = SocialEquityHistoryPersistence.class)
999     protected SocialEquityHistoryPersistence socialEquityHistoryPersistence;
1000    @BeanReference(type = SocialEquityLogPersistence.class)
1001    protected SocialEquityLogPersistence socialEquityLogPersistence;
1002    @BeanReference(type = SocialEquitySettingPersistence.class)
1003    protected SocialEquitySettingPersistence socialEquitySettingPersistence;
1004    @BeanReference(type = SocialEquityUserPersistence.class)
1005    protected SocialEquityUserPersistence socialEquityUserPersistence;
1006    @BeanReference(type = SocialRelationPersistence.class)
1007    protected SocialRelationPersistence socialRelationPersistence;
1008    @BeanReference(type = SocialRequestPersistence.class)
1009    protected SocialRequestPersistence socialRequestPersistence;
1010    @BeanReference(type = ResourcePersistence.class)
1011    protected ResourcePersistence resourcePersistence;
1012    @BeanReference(type = UserPersistence.class)
1013    protected UserPersistence userPersistence;
1014    private static final String _SQL_SELECT_SOCIALEQUITYUSER = "SELECT socialEquityUser FROM SocialEquityUser socialEquityUser";
1015    private static final String _SQL_SELECT_SOCIALEQUITYUSER_WHERE = "SELECT socialEquityUser FROM SocialEquityUser socialEquityUser WHERE ";
1016    private static final String _SQL_COUNT_SOCIALEQUITYUSER = "SELECT COUNT(socialEquityUser) FROM SocialEquityUser socialEquityUser";
1017    private static final String _SQL_COUNT_SOCIALEQUITYUSER_WHERE = "SELECT COUNT(socialEquityUser) FROM SocialEquityUser socialEquityUser WHERE ";
1018    private static final String _FINDER_COLUMN_USERID_USERID_2 = "socialEquityUser.userId = ?";
1019    private static final String _FINDER_COLUMN_G_U_GROUPID_2 = "socialEquityUser.groupId = ? AND ";
1020    private static final String _FINDER_COLUMN_G_U_USERID_2 = "socialEquityUser.userId = ?";
1021    private static final String _ORDER_BY_ENTITY_ALIAS = "socialEquityUser.";
1022    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No SocialEquityUser exists with the primary key ";
1023    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No SocialEquityUser exists with the key {";
1024    private static Log _log = LogFactoryUtil.getLog(SocialEquityUserPersistenceImpl.class);
1025}