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