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.kernel.util.Validator;
37  import com.liferay.portal.model.ModelListener;
38  import com.liferay.portal.service.persistence.BatchSessionUtil;
39  import com.liferay.portal.service.persistence.GroupPersistence;
40  import com.liferay.portal.service.persistence.ResourcePersistence;
41  import com.liferay.portal.service.persistence.UserPersistence;
42  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
43  
44  import com.liferay.portlet.social.NoSuchEquitySettingException;
45  import com.liferay.portlet.social.model.SocialEquitySetting;
46  import com.liferay.portlet.social.model.impl.SocialEquitySettingImpl;
47  import com.liferay.portlet.social.model.impl.SocialEquitySettingModelImpl;
48  
49  import java.io.Serializable;
50  
51  import java.util.ArrayList;
52  import java.util.Collections;
53  import java.util.List;
54  
55  /**
56   * <a href="SocialEquitySettingPersistenceImpl.java.html"><b><i>View Source</i></b></a>
57   *
58   * <p>
59   * ServiceBuilder generated this class. Modifications in this class will be
60   * overwritten the next time is generated.
61   * </p>
62   *
63   * @author    Brian Wing Shun Chan
64   * @see       SocialEquitySettingPersistence
65   * @see       SocialEquitySettingUtil
66   * @generated
67   */
68  public class SocialEquitySettingPersistenceImpl extends BasePersistenceImpl<SocialEquitySetting>
69      implements SocialEquitySettingPersistence {
70      public static final String FINDER_CLASS_NAME_ENTITY = SocialEquitySettingImpl.class.getName();
71      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
72          ".List";
73      public static final FinderPath FINDER_PATH_FIND_BY_G_C_A = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
74              SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
75              FINDER_CLASS_NAME_LIST, "findByG_C_A",
76              new String[] {
77                  Long.class.getName(), Long.class.getName(),
78                  String.class.getName(),
79                  
80              "java.lang.Integer", "java.lang.Integer",
81                  "com.liferay.portal.kernel.util.OrderByComparator"
82              });
83      public static final FinderPath FINDER_PATH_COUNT_BY_G_C_A = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
84              SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "countByG_C_A",
86              new String[] {
87                  Long.class.getName(), Long.class.getName(),
88                  String.class.getName()
89              });
90      public static final FinderPath FINDER_PATH_FETCH_BY_G_C_A_T = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
91              SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
92              FINDER_CLASS_NAME_ENTITY, "fetchByG_C_A_T",
93              new String[] {
94                  Long.class.getName(), Long.class.getName(),
95                  String.class.getName(), Integer.class.getName()
96              });
97      public static final FinderPath FINDER_PATH_COUNT_BY_G_C_A_T = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
98              SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
99              FINDER_CLASS_NAME_LIST, "countByG_C_A_T",
100             new String[] {
101                 Long.class.getName(), Long.class.getName(),
102                 String.class.getName(), Integer.class.getName()
103             });
104     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
105             SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
106             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
107     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
108             SocialEquitySettingModelImpl.FINDER_CACHE_ENABLED,
109             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
110 
111     public void cacheResult(SocialEquitySetting socialEquitySetting) {
112         EntityCacheUtil.putResult(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
113             SocialEquitySettingImpl.class, socialEquitySetting.getPrimaryKey(),
114             socialEquitySetting);
115 
116         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_A_T,
117             new Object[] {
118                 new Long(socialEquitySetting.getGroupId()),
119                 new Long(socialEquitySetting.getClassNameId()),
120                 
121             socialEquitySetting.getActionId(),
122                 new Integer(socialEquitySetting.getType())
123             }, socialEquitySetting);
124     }
125 
126     public void cacheResult(List<SocialEquitySetting> socialEquitySettings) {
127         for (SocialEquitySetting socialEquitySetting : socialEquitySettings) {
128             if (EntityCacheUtil.getResult(
129                         SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
130                         SocialEquitySettingImpl.class,
131                         socialEquitySetting.getPrimaryKey(), this) == null) {
132                 cacheResult(socialEquitySetting);
133             }
134         }
135     }
136 
137     public void clearCache() {
138         CacheRegistry.clear(SocialEquitySettingImpl.class.getName());
139         EntityCacheUtil.clearCache(SocialEquitySettingImpl.class.getName());
140         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
141         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
142     }
143 
144     public void clearCache(SocialEquitySetting socialEquitySetting) {
145         EntityCacheUtil.removeResult(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
146             SocialEquitySettingImpl.class, socialEquitySetting.getPrimaryKey());
147 
148         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_A_T,
149             new Object[] {
150                 new Long(socialEquitySetting.getGroupId()),
151                 new Long(socialEquitySetting.getClassNameId()),
152                 
153             socialEquitySetting.getActionId(),
154                 new Integer(socialEquitySetting.getType())
155             });
156     }
157 
158     public SocialEquitySetting create(long equitySettingId) {
159         SocialEquitySetting socialEquitySetting = new SocialEquitySettingImpl();
160 
161         socialEquitySetting.setNew(true);
162         socialEquitySetting.setPrimaryKey(equitySettingId);
163 
164         return socialEquitySetting;
165     }
166 
167     public SocialEquitySetting remove(Serializable primaryKey)
168         throws NoSuchModelException, SystemException {
169         return remove(((Long)primaryKey).longValue());
170     }
171 
172     public SocialEquitySetting remove(long equitySettingId)
173         throws NoSuchEquitySettingException, SystemException {
174         Session session = null;
175 
176         try {
177             session = openSession();
178 
179             SocialEquitySetting socialEquitySetting = (SocialEquitySetting)session.get(SocialEquitySettingImpl.class,
180                     new Long(equitySettingId));
181 
182             if (socialEquitySetting == null) {
183                 if (_log.isWarnEnabled()) {
184                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
185                         equitySettingId);
186                 }
187 
188                 throw new NoSuchEquitySettingException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
189                     equitySettingId);
190             }
191 
192             return remove(socialEquitySetting);
193         }
194         catch (NoSuchEquitySettingException nsee) {
195             throw nsee;
196         }
197         catch (Exception e) {
198             throw processException(e);
199         }
200         finally {
201             closeSession(session);
202         }
203     }
204 
205     public SocialEquitySetting remove(SocialEquitySetting socialEquitySetting)
206         throws SystemException {
207         for (ModelListener<SocialEquitySetting> listener : listeners) {
208             listener.onBeforeRemove(socialEquitySetting);
209         }
210 
211         socialEquitySetting = removeImpl(socialEquitySetting);
212 
213         for (ModelListener<SocialEquitySetting> listener : listeners) {
214             listener.onAfterRemove(socialEquitySetting);
215         }
216 
217         return socialEquitySetting;
218     }
219 
220     protected SocialEquitySetting removeImpl(
221         SocialEquitySetting socialEquitySetting) throws SystemException {
222         socialEquitySetting = toUnwrappedModel(socialEquitySetting);
223 
224         Session session = null;
225 
226         try {
227             session = openSession();
228 
229             if (socialEquitySetting.isCachedModel() ||
230                     BatchSessionUtil.isEnabled()) {
231                 Object staleObject = session.get(SocialEquitySettingImpl.class,
232                         socialEquitySetting.getPrimaryKeyObj());
233 
234                 if (staleObject != null) {
235                     session.evict(staleObject);
236                 }
237             }
238 
239             session.delete(socialEquitySetting);
240 
241             session.flush();
242         }
243         catch (Exception e) {
244             throw processException(e);
245         }
246         finally {
247             closeSession(session);
248         }
249 
250         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
251 
252         SocialEquitySettingModelImpl socialEquitySettingModelImpl = (SocialEquitySettingModelImpl)socialEquitySetting;
253 
254         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_A_T,
255             new Object[] {
256                 new Long(socialEquitySettingModelImpl.getOriginalGroupId()),
257                 new Long(socialEquitySettingModelImpl.getOriginalClassNameId()),
258                 
259             socialEquitySettingModelImpl.getOriginalActionId(),
260                 new Integer(socialEquitySettingModelImpl.getOriginalType())
261             });
262 
263         EntityCacheUtil.removeResult(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
264             SocialEquitySettingImpl.class, socialEquitySetting.getPrimaryKey());
265 
266         return socialEquitySetting;
267     }
268 
269     public SocialEquitySetting updateImpl(
270         com.liferay.portlet.social.model.SocialEquitySetting socialEquitySetting,
271         boolean merge) throws SystemException {
272         socialEquitySetting = toUnwrappedModel(socialEquitySetting);
273 
274         boolean isNew = socialEquitySetting.isNew();
275 
276         SocialEquitySettingModelImpl socialEquitySettingModelImpl = (SocialEquitySettingModelImpl)socialEquitySetting;
277 
278         Session session = null;
279 
280         try {
281             session = openSession();
282 
283             BatchSessionUtil.update(session, socialEquitySetting, merge);
284 
285             socialEquitySetting.setNew(false);
286         }
287         catch (Exception e) {
288             throw processException(e);
289         }
290         finally {
291             closeSession(session);
292         }
293 
294         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
295 
296         EntityCacheUtil.putResult(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
297             SocialEquitySettingImpl.class, socialEquitySetting.getPrimaryKey(),
298             socialEquitySetting);
299 
300         if (!isNew &&
301                 ((socialEquitySetting.getGroupId() != socialEquitySettingModelImpl.getOriginalGroupId()) ||
302                 (socialEquitySetting.getClassNameId() != socialEquitySettingModelImpl.getOriginalClassNameId()) ||
303                 !Validator.equals(socialEquitySetting.getActionId(),
304                     socialEquitySettingModelImpl.getOriginalActionId()) ||
305                 (socialEquitySetting.getType() != socialEquitySettingModelImpl.getOriginalType()))) {
306             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_A_T,
307                 new Object[] {
308                     new Long(socialEquitySettingModelImpl.getOriginalGroupId()),
309                     new Long(socialEquitySettingModelImpl.getOriginalClassNameId()),
310                     
311                 socialEquitySettingModelImpl.getOriginalActionId(),
312                     new Integer(socialEquitySettingModelImpl.getOriginalType())
313                 });
314         }
315 
316         if (isNew ||
317                 ((socialEquitySetting.getGroupId() != socialEquitySettingModelImpl.getOriginalGroupId()) ||
318                 (socialEquitySetting.getClassNameId() != socialEquitySettingModelImpl.getOriginalClassNameId()) ||
319                 !Validator.equals(socialEquitySetting.getActionId(),
320                     socialEquitySettingModelImpl.getOriginalActionId()) ||
321                 (socialEquitySetting.getType() != socialEquitySettingModelImpl.getOriginalType()))) {
322             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_A_T,
323                 new Object[] {
324                     new Long(socialEquitySetting.getGroupId()),
325                     new Long(socialEquitySetting.getClassNameId()),
326                     
327                 socialEquitySetting.getActionId(),
328                     new Integer(socialEquitySetting.getType())
329                 }, socialEquitySetting);
330         }
331 
332         return socialEquitySetting;
333     }
334 
335     protected SocialEquitySetting toUnwrappedModel(
336         SocialEquitySetting socialEquitySetting) {
337         if (socialEquitySetting instanceof SocialEquitySettingImpl) {
338             return socialEquitySetting;
339         }
340 
341         SocialEquitySettingImpl socialEquitySettingImpl = new SocialEquitySettingImpl();
342 
343         socialEquitySettingImpl.setNew(socialEquitySetting.isNew());
344         socialEquitySettingImpl.setPrimaryKey(socialEquitySetting.getPrimaryKey());
345 
346         socialEquitySettingImpl.setEquitySettingId(socialEquitySetting.getEquitySettingId());
347         socialEquitySettingImpl.setGroupId(socialEquitySetting.getGroupId());
348         socialEquitySettingImpl.setCompanyId(socialEquitySetting.getCompanyId());
349         socialEquitySettingImpl.setClassNameId(socialEquitySetting.getClassNameId());
350         socialEquitySettingImpl.setActionId(socialEquitySetting.getActionId());
351         socialEquitySettingImpl.setType(socialEquitySetting.getType());
352         socialEquitySettingImpl.setValue(socialEquitySetting.getValue());
353         socialEquitySettingImpl.setValidity(socialEquitySetting.getValidity());
354 
355         return socialEquitySettingImpl;
356     }
357 
358     public SocialEquitySetting findByPrimaryKey(Serializable primaryKey)
359         throws NoSuchModelException, SystemException {
360         return findByPrimaryKey(((Long)primaryKey).longValue());
361     }
362 
363     public SocialEquitySetting findByPrimaryKey(long equitySettingId)
364         throws NoSuchEquitySettingException, SystemException {
365         SocialEquitySetting socialEquitySetting = fetchByPrimaryKey(equitySettingId);
366 
367         if (socialEquitySetting == null) {
368             if (_log.isWarnEnabled()) {
369                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + equitySettingId);
370             }
371 
372             throw new NoSuchEquitySettingException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
373                 equitySettingId);
374         }
375 
376         return socialEquitySetting;
377     }
378 
379     public SocialEquitySetting fetchByPrimaryKey(Serializable primaryKey)
380         throws SystemException {
381         return fetchByPrimaryKey(((Long)primaryKey).longValue());
382     }
383 
384     public SocialEquitySetting fetchByPrimaryKey(long equitySettingId)
385         throws SystemException {
386         SocialEquitySetting socialEquitySetting = (SocialEquitySetting)EntityCacheUtil.getResult(SocialEquitySettingModelImpl.ENTITY_CACHE_ENABLED,
387                 SocialEquitySettingImpl.class, equitySettingId, this);
388 
389         if (socialEquitySetting == null) {
390             Session session = null;
391 
392             try {
393                 session = openSession();
394 
395                 socialEquitySetting = (SocialEquitySetting)session.get(SocialEquitySettingImpl.class,
396                         new Long(equitySettingId));
397             }
398             catch (Exception e) {
399                 throw processException(e);
400             }
401             finally {
402                 if (socialEquitySetting != null) {
403                     cacheResult(socialEquitySetting);
404                 }
405 
406                 closeSession(session);
407             }
408         }
409 
410         return socialEquitySetting;
411     }
412 
413     public List<SocialEquitySetting> findByG_C_A(long groupId,
414         long classNameId, String actionId) throws SystemException {
415         return findByG_C_A(groupId, classNameId, actionId, QueryUtil.ALL_POS,
416             QueryUtil.ALL_POS, null);
417     }
418 
419     public List<SocialEquitySetting> findByG_C_A(long groupId,
420         long classNameId, String actionId, int start, int end)
421         throws SystemException {
422         return findByG_C_A(groupId, classNameId, actionId, start, end, null);
423     }
424 
425     public List<SocialEquitySetting> findByG_C_A(long groupId,
426         long classNameId, String actionId, int start, int end,
427         OrderByComparator orderByComparator) throws SystemException {
428         Object[] finderArgs = new Object[] {
429                 new Long(groupId), new Long(classNameId),
430                 
431                 actionId,
432                 
433                 String.valueOf(start), String.valueOf(end),
434                 String.valueOf(orderByComparator)
435             };
436 
437         List<SocialEquitySetting> list = (List<SocialEquitySetting>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_C_A,
438                 finderArgs, this);
439 
440         if (list == null) {
441             Session session = null;
442 
443             try {
444                 session = openSession();
445 
446                 StringBundler query = null;
447 
448                 if (orderByComparator != null) {
449                     query = new StringBundler(5 +
450                             (orderByComparator.getOrderByFields().length * 3));
451                 }
452                 else {
453                     query = new StringBundler(4);
454                 }
455 
456                 query.append(_SQL_SELECT_SOCIALEQUITYSETTING_WHERE);
457 
458                 query.append(_FINDER_COLUMN_G_C_A_GROUPID_2);
459 
460                 query.append(_FINDER_COLUMN_G_C_A_CLASSNAMEID_2);
461 
462                 if (actionId == null) {
463                     query.append(_FINDER_COLUMN_G_C_A_ACTIONID_1);
464                 }
465                 else {
466                     if (actionId.equals(StringPool.BLANK)) {
467                         query.append(_FINDER_COLUMN_G_C_A_ACTIONID_3);
468                     }
469                     else {
470                         query.append(_FINDER_COLUMN_G_C_A_ACTIONID_2);
471                     }
472                 }
473 
474                 if (orderByComparator != null) {
475                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
476                         orderByComparator);
477                 }
478 
479                 String sql = query.toString();
480 
481                 Query q = session.createQuery(sql);
482 
483                 QueryPos qPos = QueryPos.getInstance(q);
484 
485                 qPos.add(groupId);
486 
487                 qPos.add(classNameId);
488 
489                 if (actionId != null) {
490                     qPos.add(actionId);
491                 }
492 
493                 list = (List<SocialEquitySetting>)QueryUtil.list(q,
494                         getDialect(), start, end);
495             }
496             catch (Exception e) {
497                 throw processException(e);
498             }
499             finally {
500                 if (list == null) {
501                     list = new ArrayList<SocialEquitySetting>();
502                 }
503 
504                 cacheResult(list);
505 
506                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_C_A,
507                     finderArgs, list);
508 
509                 closeSession(session);
510             }
511         }
512 
513         return list;
514     }
515 
516     public SocialEquitySetting findByG_C_A_First(long groupId,
517         long classNameId, String actionId, OrderByComparator orderByComparator)
518         throws NoSuchEquitySettingException, SystemException {
519         List<SocialEquitySetting> list = findByG_C_A(groupId, classNameId,
520                 actionId, 0, 1, orderByComparator);
521 
522         if (list.isEmpty()) {
523             StringBundler msg = new StringBundler(8);
524 
525             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
526 
527             msg.append("groupId=");
528             msg.append(groupId);
529 
530             msg.append(", classNameId=");
531             msg.append(classNameId);
532 
533             msg.append(", actionId=");
534             msg.append(actionId);
535 
536             msg.append(StringPool.CLOSE_CURLY_BRACE);
537 
538             throw new NoSuchEquitySettingException(msg.toString());
539         }
540         else {
541             return list.get(0);
542         }
543     }
544 
545     public SocialEquitySetting findByG_C_A_Last(long groupId, long classNameId,
546         String actionId, OrderByComparator orderByComparator)
547         throws NoSuchEquitySettingException, SystemException {
548         int count = countByG_C_A(groupId, classNameId, actionId);
549 
550         List<SocialEquitySetting> list = findByG_C_A(groupId, classNameId,
551                 actionId, count - 1, count, orderByComparator);
552 
553         if (list.isEmpty()) {
554             StringBundler msg = new StringBundler(8);
555 
556             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
557 
558             msg.append("groupId=");
559             msg.append(groupId);
560 
561             msg.append(", classNameId=");
562             msg.append(classNameId);
563 
564             msg.append(", actionId=");
565             msg.append(actionId);
566 
567             msg.append(StringPool.CLOSE_CURLY_BRACE);
568 
569             throw new NoSuchEquitySettingException(msg.toString());
570         }
571         else {
572             return list.get(0);
573         }
574     }
575 
576     public SocialEquitySetting[] findByG_C_A_PrevAndNext(long equitySettingId,
577         long groupId, long classNameId, String actionId,
578         OrderByComparator orderByComparator)
579         throws NoSuchEquitySettingException, SystemException {
580         SocialEquitySetting socialEquitySetting = findByPrimaryKey(equitySettingId);
581 
582         Session session = null;
583 
584         try {
585             session = openSession();
586 
587             SocialEquitySetting[] array = new SocialEquitySettingImpl[3];
588 
589             array[0] = getByG_C_A_PrevAndNext(session, socialEquitySetting,
590                     groupId, classNameId, actionId, orderByComparator, true);
591 
592             array[1] = socialEquitySetting;
593 
594             array[2] = getByG_C_A_PrevAndNext(session, socialEquitySetting,
595                     groupId, classNameId, actionId, orderByComparator, false);
596 
597             return array;
598         }
599         catch (Exception e) {
600             throw processException(e);
601         }
602         finally {
603             closeSession(session);
604         }
605     }
606 
607     protected SocialEquitySetting getByG_C_A_PrevAndNext(Session session,
608         SocialEquitySetting socialEquitySetting, long groupId,
609         long classNameId, String actionId, OrderByComparator orderByComparator,
610         boolean previous) {
611         StringBundler query = null;
612 
613         if (orderByComparator != null) {
614             query = new StringBundler(6 +
615                     (orderByComparator.getOrderByFields().length * 6));
616         }
617         else {
618             query = new StringBundler(3);
619         }
620 
621         query.append(_SQL_SELECT_SOCIALEQUITYSETTING_WHERE);
622 
623         query.append(_FINDER_COLUMN_G_C_A_GROUPID_2);
624 
625         query.append(_FINDER_COLUMN_G_C_A_CLASSNAMEID_2);
626 
627         if (actionId == null) {
628             query.append(_FINDER_COLUMN_G_C_A_ACTIONID_1);
629         }
630         else {
631             if (actionId.equals(StringPool.BLANK)) {
632                 query.append(_FINDER_COLUMN_G_C_A_ACTIONID_3);
633             }
634             else {
635                 query.append(_FINDER_COLUMN_G_C_A_ACTIONID_2);
636             }
637         }
638 
639         if (orderByComparator != null) {
640             String[] orderByFields = orderByComparator.getOrderByFields();
641 
642             if (orderByFields.length > 0) {
643                 query.append(WHERE_AND);
644             }
645 
646             for (int i = 0; i < orderByFields.length; i++) {
647                 query.append(_ORDER_BY_ENTITY_ALIAS);
648                 query.append(orderByFields[i]);
649 
650                 if ((i + 1) < orderByFields.length) {
651                     if (orderByComparator.isAscending() ^ previous) {
652                         query.append(WHERE_GREATER_THAN_HAS_NEXT);
653                     }
654                     else {
655                         query.append(WHERE_LESSER_THAN_HAS_NEXT);
656                     }
657                 }
658                 else {
659                     if (orderByComparator.isAscending() ^ previous) {
660                         query.append(WHERE_GREATER_THAN);
661                     }
662                     else {
663                         query.append(WHERE_LESSER_THAN);
664                     }
665                 }
666             }
667 
668             query.append(ORDER_BY_CLAUSE);
669 
670             for (int i = 0; i < orderByFields.length; i++) {
671                 query.append(_ORDER_BY_ENTITY_ALIAS);
672                 query.append(orderByFields[i]);
673 
674                 if ((i + 1) < orderByFields.length) {
675                     if (orderByComparator.isAscending() ^ previous) {
676                         query.append(ORDER_BY_ASC_HAS_NEXT);
677                     }
678                     else {
679                         query.append(ORDER_BY_DESC_HAS_NEXT);
680                     }
681                 }
682                 else {
683                     if (orderByComparator.isAscending() ^ previous) {
684                         query.append(ORDER_BY_ASC);
685                     }
686                     else {
687                         query.append(ORDER_BY_DESC);
688                     }
689                 }
690             }
691         }
692 
693         String sql = query.toString();
694 
695         Query q = session.createQuery(sql);
696 
697         q.setFirstResult(0);
698         q.setMaxResults(2);
699 
700         QueryPos qPos = QueryPos.getInstance(q);
701 
702         qPos.add(groupId);
703 
704         qPos.add(classNameId);
705 
706         if (actionId != null) {
707             qPos.add(actionId);
708         }
709 
710         if (orderByComparator != null) {
711             Object[] values = orderByComparator.getOrderByValues(socialEquitySetting);
712 
713             for (Object value : values) {
714                 qPos.add(value);
715             }
716         }
717 
718         List<SocialEquitySetting> list = q.list();
719 
720         if (list.size() == 2) {
721             return list.get(1);
722         }
723         else {
724             return null;
725         }
726     }
727 
728     public SocialEquitySetting findByG_C_A_T(long groupId, long classNameId,
729         String actionId, int type)
730         throws NoSuchEquitySettingException, SystemException {
731         SocialEquitySetting socialEquitySetting = fetchByG_C_A_T(groupId,
732                 classNameId, actionId, type);
733 
734         if (socialEquitySetting == null) {
735             StringBundler msg = new StringBundler(10);
736 
737             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
738 
739             msg.append("groupId=");
740             msg.append(groupId);
741 
742             msg.append(", classNameId=");
743             msg.append(classNameId);
744 
745             msg.append(", actionId=");
746             msg.append(actionId);
747 
748             msg.append(", type=");
749             msg.append(type);
750 
751             msg.append(StringPool.CLOSE_CURLY_BRACE);
752 
753             if (_log.isWarnEnabled()) {
754                 _log.warn(msg.toString());
755             }
756 
757             throw new NoSuchEquitySettingException(msg.toString());
758         }
759 
760         return socialEquitySetting;
761     }
762 
763     public SocialEquitySetting fetchByG_C_A_T(long groupId, long classNameId,
764         String actionId, int type) throws SystemException {
765         return fetchByG_C_A_T(groupId, classNameId, actionId, type, true);
766     }
767 
768     public SocialEquitySetting fetchByG_C_A_T(long groupId, long classNameId,
769         String actionId, int type, boolean retrieveFromCache)
770         throws SystemException {
771         Object[] finderArgs = new Object[] {
772                 new Long(groupId), new Long(classNameId),
773                 
774                 actionId, new Integer(type)
775             };
776 
777         Object result = null;
778 
779         if (retrieveFromCache) {
780             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_C_A_T,
781                     finderArgs, this);
782         }
783 
784         if (result == null) {
785             Session session = null;
786 
787             try {
788                 session = openSession();
789 
790                 StringBundler query = new StringBundler(5);
791 
792                 query.append(_SQL_SELECT_SOCIALEQUITYSETTING_WHERE);
793 
794                 query.append(_FINDER_COLUMN_G_C_A_T_GROUPID_2);
795 
796                 query.append(_FINDER_COLUMN_G_C_A_T_CLASSNAMEID_2);
797 
798                 if (actionId == null) {
799                     query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_1);
800                 }
801                 else {
802                     if (actionId.equals(StringPool.BLANK)) {
803                         query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_3);
804                     }
805                     else {
806                         query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_2);
807                     }
808                 }
809 
810                 query.append(_FINDER_COLUMN_G_C_A_T_TYPE_2);
811 
812                 String sql = query.toString();
813 
814                 Query q = session.createQuery(sql);
815 
816                 QueryPos qPos = QueryPos.getInstance(q);
817 
818                 qPos.add(groupId);
819 
820                 qPos.add(classNameId);
821 
822                 if (actionId != null) {
823                     qPos.add(actionId);
824                 }
825 
826                 qPos.add(type);
827 
828                 List<SocialEquitySetting> list = q.list();
829 
830                 result = list;
831 
832                 SocialEquitySetting socialEquitySetting = null;
833 
834                 if (list.isEmpty()) {
835                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_A_T,
836                         finderArgs, list);
837                 }
838                 else {
839                     socialEquitySetting = list.get(0);
840 
841                     cacheResult(socialEquitySetting);
842 
843                     if ((socialEquitySetting.getGroupId() != groupId) ||
844                             (socialEquitySetting.getClassNameId() != classNameId) ||
845                             (socialEquitySetting.getActionId() == null) ||
846                             !socialEquitySetting.getActionId().equals(actionId) ||
847                             (socialEquitySetting.getType() != type)) {
848                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_A_T,
849                             finderArgs, socialEquitySetting);
850                     }
851                 }
852 
853                 return socialEquitySetting;
854             }
855             catch (Exception e) {
856                 throw processException(e);
857             }
858             finally {
859                 if (result == null) {
860                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_A_T,
861                         finderArgs, new ArrayList<SocialEquitySetting>());
862                 }
863 
864                 closeSession(session);
865             }
866         }
867         else {
868             if (result instanceof List<?>) {
869                 return null;
870             }
871             else {
872                 return (SocialEquitySetting)result;
873             }
874         }
875     }
876 
877     public List<SocialEquitySetting> findAll() throws SystemException {
878         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
879     }
880 
881     public List<SocialEquitySetting> findAll(int start, int end)
882         throws SystemException {
883         return findAll(start, end, null);
884     }
885 
886     public List<SocialEquitySetting> findAll(int start, int end,
887         OrderByComparator orderByComparator) throws SystemException {
888         Object[] finderArgs = new Object[] {
889                 String.valueOf(start), String.valueOf(end),
890                 String.valueOf(orderByComparator)
891             };
892 
893         List<SocialEquitySetting> list = (List<SocialEquitySetting>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
894                 finderArgs, this);
895 
896         if (list == null) {
897             Session session = null;
898 
899             try {
900                 session = openSession();
901 
902                 StringBundler query = null;
903                 String sql = null;
904 
905                 if (orderByComparator != null) {
906                     query = new StringBundler(2 +
907                             (orderByComparator.getOrderByFields().length * 3));
908 
909                     query.append(_SQL_SELECT_SOCIALEQUITYSETTING);
910 
911                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
912                         orderByComparator);
913 
914                     sql = query.toString();
915                 }
916 
917                 sql = _SQL_SELECT_SOCIALEQUITYSETTING;
918 
919                 Query q = session.createQuery(sql);
920 
921                 if (orderByComparator == null) {
922                     list = (List<SocialEquitySetting>)QueryUtil.list(q,
923                             getDialect(), start, end, false);
924 
925                     Collections.sort(list);
926                 }
927                 else {
928                     list = (List<SocialEquitySetting>)QueryUtil.list(q,
929                             getDialect(), start, end);
930                 }
931             }
932             catch (Exception e) {
933                 throw processException(e);
934             }
935             finally {
936                 if (list == null) {
937                     list = new ArrayList<SocialEquitySetting>();
938                 }
939 
940                 cacheResult(list);
941 
942                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
943 
944                 closeSession(session);
945             }
946         }
947 
948         return list;
949     }
950 
951     public void removeByG_C_A(long groupId, long classNameId, String actionId)
952         throws SystemException {
953         for (SocialEquitySetting socialEquitySetting : findByG_C_A(groupId,
954                 classNameId, actionId)) {
955             remove(socialEquitySetting);
956         }
957     }
958 
959     public void removeByG_C_A_T(long groupId, long classNameId,
960         String actionId, int type)
961         throws NoSuchEquitySettingException, SystemException {
962         SocialEquitySetting socialEquitySetting = findByG_C_A_T(groupId,
963                 classNameId, actionId, type);
964 
965         remove(socialEquitySetting);
966     }
967 
968     public void removeAll() throws SystemException {
969         for (SocialEquitySetting socialEquitySetting : findAll()) {
970             remove(socialEquitySetting);
971         }
972     }
973 
974     public int countByG_C_A(long groupId, long classNameId, String actionId)
975         throws SystemException {
976         Object[] finderArgs = new Object[] {
977                 new Long(groupId), new Long(classNameId),
978                 
979                 actionId
980             };
981 
982         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_C_A,
983                 finderArgs, this);
984 
985         if (count == null) {
986             Session session = null;
987 
988             try {
989                 session = openSession();
990 
991                 StringBundler query = new StringBundler(4);
992 
993                 query.append(_SQL_COUNT_SOCIALEQUITYSETTING_WHERE);
994 
995                 query.append(_FINDER_COLUMN_G_C_A_GROUPID_2);
996 
997                 query.append(_FINDER_COLUMN_G_C_A_CLASSNAMEID_2);
998 
999                 if (actionId == null) {
1000                    query.append(_FINDER_COLUMN_G_C_A_ACTIONID_1);
1001                }
1002                else {
1003                    if (actionId.equals(StringPool.BLANK)) {
1004                        query.append(_FINDER_COLUMN_G_C_A_ACTIONID_3);
1005                    }
1006                    else {
1007                        query.append(_FINDER_COLUMN_G_C_A_ACTIONID_2);
1008                    }
1009                }
1010
1011                String sql = query.toString();
1012
1013                Query q = session.createQuery(sql);
1014
1015                QueryPos qPos = QueryPos.getInstance(q);
1016
1017                qPos.add(groupId);
1018
1019                qPos.add(classNameId);
1020
1021                if (actionId != null) {
1022                    qPos.add(actionId);
1023                }
1024
1025                count = (Long)q.uniqueResult();
1026            }
1027            catch (Exception e) {
1028                throw processException(e);
1029            }
1030            finally {
1031                if (count == null) {
1032                    count = Long.valueOf(0);
1033                }
1034
1035                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_C_A,
1036                    finderArgs, count);
1037
1038                closeSession(session);
1039            }
1040        }
1041
1042        return count.intValue();
1043    }
1044
1045    public int countByG_C_A_T(long groupId, long classNameId, String actionId,
1046        int type) throws SystemException {
1047        Object[] finderArgs = new Object[] {
1048                new Long(groupId), new Long(classNameId),
1049                
1050                actionId, new Integer(type)
1051            };
1052
1053        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_C_A_T,
1054                finderArgs, this);
1055
1056        if (count == null) {
1057            Session session = null;
1058
1059            try {
1060                session = openSession();
1061
1062                StringBundler query = new StringBundler(5);
1063
1064                query.append(_SQL_COUNT_SOCIALEQUITYSETTING_WHERE);
1065
1066                query.append(_FINDER_COLUMN_G_C_A_T_GROUPID_2);
1067
1068                query.append(_FINDER_COLUMN_G_C_A_T_CLASSNAMEID_2);
1069
1070                if (actionId == null) {
1071                    query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_1);
1072                }
1073                else {
1074                    if (actionId.equals(StringPool.BLANK)) {
1075                        query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_3);
1076                    }
1077                    else {
1078                        query.append(_FINDER_COLUMN_G_C_A_T_ACTIONID_2);
1079                    }
1080                }
1081
1082                query.append(_FINDER_COLUMN_G_C_A_T_TYPE_2);
1083
1084                String sql = query.toString();
1085
1086                Query q = session.createQuery(sql);
1087
1088                QueryPos qPos = QueryPos.getInstance(q);
1089
1090                qPos.add(groupId);
1091
1092                qPos.add(classNameId);
1093
1094                if (actionId != null) {
1095                    qPos.add(actionId);
1096                }
1097
1098                qPos.add(type);
1099
1100                count = (Long)q.uniqueResult();
1101            }
1102            catch (Exception e) {
1103                throw processException(e);
1104            }
1105            finally {
1106                if (count == null) {
1107                    count = Long.valueOf(0);
1108                }
1109
1110                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_C_A_T,
1111                    finderArgs, count);
1112
1113                closeSession(session);
1114            }
1115        }
1116
1117        return count.intValue();
1118    }
1119
1120    public int countAll() throws SystemException {
1121        Object[] finderArgs = new Object[0];
1122
1123        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1124                finderArgs, this);
1125
1126        if (count == null) {
1127            Session session = null;
1128
1129            try {
1130                session = openSession();
1131
1132                Query q = session.createQuery(_SQL_COUNT_SOCIALEQUITYSETTING);
1133
1134                count = (Long)q.uniqueResult();
1135            }
1136            catch (Exception e) {
1137                throw processException(e);
1138            }
1139            finally {
1140                if (count == null) {
1141                    count = Long.valueOf(0);
1142                }
1143
1144                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1145                    count);
1146
1147                closeSession(session);
1148            }
1149        }
1150
1151        return count.intValue();
1152    }
1153
1154    public void afterPropertiesSet() {
1155        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1156                    com.liferay.portal.util.PropsUtil.get(
1157                        "value.object.listener.com.liferay.portlet.social.model.SocialEquitySetting")));
1158
1159        if (listenerClassNames.length > 0) {
1160            try {
1161                List<ModelListener<SocialEquitySetting>> listenersList = new ArrayList<ModelListener<SocialEquitySetting>>();
1162
1163                for (String listenerClassName : listenerClassNames) {
1164                    listenersList.add((ModelListener<SocialEquitySetting>)InstanceFactory.newInstance(
1165                            listenerClassName));
1166                }
1167
1168                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1169            }
1170            catch (Exception e) {
1171                _log.error(e);
1172            }
1173        }
1174    }
1175
1176    @BeanReference(type = SocialActivityPersistence.class)
1177    protected SocialActivityPersistence socialActivityPersistence;
1178    @BeanReference(type = SocialEquityAssetEntryPersistence.class)
1179    protected SocialEquityAssetEntryPersistence socialEquityAssetEntryPersistence;
1180    @BeanReference(type = SocialEquityHistoryPersistence.class)
1181    protected SocialEquityHistoryPersistence socialEquityHistoryPersistence;
1182    @BeanReference(type = SocialEquityLogPersistence.class)
1183    protected SocialEquityLogPersistence socialEquityLogPersistence;
1184    @BeanReference(type = SocialEquitySettingPersistence.class)
1185    protected SocialEquitySettingPersistence socialEquitySettingPersistence;
1186    @BeanReference(type = SocialEquityUserPersistence.class)
1187    protected SocialEquityUserPersistence socialEquityUserPersistence;
1188    @BeanReference(type = SocialRelationPersistence.class)
1189    protected SocialRelationPersistence socialRelationPersistence;
1190    @BeanReference(type = SocialRequestPersistence.class)
1191    protected SocialRequestPersistence socialRequestPersistence;
1192    @BeanReference(type = GroupPersistence.class)
1193    protected GroupPersistence groupPersistence;
1194    @BeanReference(type = ResourcePersistence.class)
1195    protected ResourcePersistence resourcePersistence;
1196    @BeanReference(type = UserPersistence.class)
1197    protected UserPersistence userPersistence;
1198    private static final String _SQL_SELECT_SOCIALEQUITYSETTING = "SELECT socialEquitySetting FROM SocialEquitySetting socialEquitySetting";
1199    private static final String _SQL_SELECT_SOCIALEQUITYSETTING_WHERE = "SELECT socialEquitySetting FROM SocialEquitySetting socialEquitySetting WHERE ";
1200    private static final String _SQL_COUNT_SOCIALEQUITYSETTING = "SELECT COUNT(socialEquitySetting) FROM SocialEquitySetting socialEquitySetting";
1201    private static final String _SQL_COUNT_SOCIALEQUITYSETTING_WHERE = "SELECT COUNT(socialEquitySetting) FROM SocialEquitySetting socialEquitySetting WHERE ";
1202    private static final String _FINDER_COLUMN_G_C_A_GROUPID_2 = "socialEquitySetting.groupId = ? AND ";
1203    private static final String _FINDER_COLUMN_G_C_A_CLASSNAMEID_2 = "socialEquitySetting.classNameId = ? AND ";
1204    private static final String _FINDER_COLUMN_G_C_A_ACTIONID_1 = "socialEquitySetting.actionId IS NULL";
1205    private static final String _FINDER_COLUMN_G_C_A_ACTIONID_2 = "socialEquitySetting.actionId = ?";
1206    private static final String _FINDER_COLUMN_G_C_A_ACTIONID_3 = "(socialEquitySetting.actionId IS NULL OR socialEquitySetting.actionId = ?)";
1207    private static final String _FINDER_COLUMN_G_C_A_T_GROUPID_2 = "socialEquitySetting.groupId = ? AND ";
1208    private static final String _FINDER_COLUMN_G_C_A_T_CLASSNAMEID_2 = "socialEquitySetting.classNameId = ? AND ";
1209    private static final String _FINDER_COLUMN_G_C_A_T_ACTIONID_1 = "socialEquitySetting.actionId IS NULL AND ";
1210    private static final String _FINDER_COLUMN_G_C_A_T_ACTIONID_2 = "socialEquitySetting.actionId = ? AND ";
1211    private static final String _FINDER_COLUMN_G_C_A_T_ACTIONID_3 = "(socialEquitySetting.actionId IS NULL OR socialEquitySetting.actionId = ?) AND ";
1212    private static final String _FINDER_COLUMN_G_C_A_T_TYPE_2 = "socialEquitySetting.type = ?";
1213    private static final String _ORDER_BY_ENTITY_ALIAS = "socialEquitySetting.";
1214    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No SocialEquitySetting exists with the primary key ";
1215    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No SocialEquitySetting exists with the key {";
1216    private static Log _log = LogFactoryUtil.getLog(SocialEquitySettingPersistenceImpl.class);
1217}