001    /**
002     * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
003     *
004     * The contents of this file are subject to the terms of the Liferay Enterprise
005     * Subscription License ("License"). You may not use this file except in
006     * compliance with the License. You can obtain a copy of the License by
007     * contacting Liferay, Inc. See the License for the specific language governing
008     * permissions and limitations under the License, including but not limited to
009     * distribution rights of the Software.
010     *
011     *
012     *
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.model.ModelListener;
037    import com.liferay.portal.service.persistence.BatchSessionUtil;
038    import com.liferay.portal.service.persistence.GroupPersistence;
039    import com.liferay.portal.service.persistence.ResourcePersistence;
040    import com.liferay.portal.service.persistence.UserPersistence;
041    import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
042    
043    import com.liferay.portlet.social.NoSuchEquityGroupSettingException;
044    import com.liferay.portlet.social.model.SocialEquityGroupSetting;
045    import com.liferay.portlet.social.model.impl.SocialEquityGroupSettingImpl;
046    import com.liferay.portlet.social.model.impl.SocialEquityGroupSettingModelImpl;
047    
048    import java.io.Serializable;
049    
050    import java.util.ArrayList;
051    import java.util.Collections;
052    import java.util.List;
053    
054    /**
055     * The persistence implementation for the social equity group setting service.
056     *
057     * <p>
058     * Never modify or reference this class directly. Always use {@link SocialEquityGroupSettingUtil} to access the social equity group setting persistence. Modify <code>service.xml</code> and rerun ServiceBuilder to regenerate this class.
059     * </p>
060     *
061     * <p>
062     * Caching information and settings can be found in <code>portal.properties</code>
063     * </p>
064     *
065     * @author Brian Wing Shun Chan
066     * @see SocialEquityGroupSettingPersistence
067     * @see SocialEquityGroupSettingUtil
068     * @generated
069     */
070    public class SocialEquityGroupSettingPersistenceImpl extends BasePersistenceImpl<SocialEquityGroupSetting>
071            implements SocialEquityGroupSettingPersistence {
072            public static final String FINDER_CLASS_NAME_ENTITY = SocialEquityGroupSettingImpl.class.getName();
073            public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
074                    ".List";
075            public static final FinderPath FINDER_PATH_FETCH_BY_G_C_T = new FinderPath(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
076                            SocialEquityGroupSettingModelImpl.FINDER_CACHE_ENABLED,
077                            FINDER_CLASS_NAME_ENTITY, "fetchByG_C_T",
078                            new String[] {
079                                    Long.class.getName(), Long.class.getName(),
080                                    Integer.class.getName()
081                            });
082            public static final FinderPath FINDER_PATH_COUNT_BY_G_C_T = new FinderPath(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
083                            SocialEquityGroupSettingModelImpl.FINDER_CACHE_ENABLED,
084                            FINDER_CLASS_NAME_LIST, "countByG_C_T",
085                            new String[] {
086                                    Long.class.getName(), Long.class.getName(),
087                                    Integer.class.getName()
088                            });
089            public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
090                            SocialEquityGroupSettingModelImpl.FINDER_CACHE_ENABLED,
091                            FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
092            public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
093                            SocialEquityGroupSettingModelImpl.FINDER_CACHE_ENABLED,
094                            FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
095    
096            /**
097             * Caches the social equity group setting in the entity cache if it is enabled.
098             *
099             * @param socialEquityGroupSetting the social equity group setting to cache
100             */
101            public void cacheResult(SocialEquityGroupSetting socialEquityGroupSetting) {
102                    EntityCacheUtil.putResult(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
103                            SocialEquityGroupSettingImpl.class,
104                            socialEquityGroupSetting.getPrimaryKey(), socialEquityGroupSetting);
105    
106                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_T,
107                            new Object[] {
108                                    new Long(socialEquityGroupSetting.getGroupId()),
109                                    new Long(socialEquityGroupSetting.getClassNameId()),
110                                    new Integer(socialEquityGroupSetting.getType())
111                            }, socialEquityGroupSetting);
112            }
113    
114            /**
115             * Caches the social equity group settings in the entity cache if it is enabled.
116             *
117             * @param socialEquityGroupSettings the social equity group settings to cache
118             */
119            public void cacheResult(
120                    List<SocialEquityGroupSetting> socialEquityGroupSettings) {
121                    for (SocialEquityGroupSetting socialEquityGroupSetting : socialEquityGroupSettings) {
122                            if (EntityCacheUtil.getResult(
123                                                    SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
124                                                    SocialEquityGroupSettingImpl.class,
125                                                    socialEquityGroupSetting.getPrimaryKey(), this) == null) {
126                                    cacheResult(socialEquityGroupSetting);
127                            }
128                    }
129            }
130    
131            /**
132             * Clears the cache for all social equity group settings.
133             *
134             * <p>
135             * The {@link com.liferay.portal.kernel.dao.orm.EntityCache} and {@link com.liferay.portal.kernel.dao.orm.FinderCache} are both cleared by this method.
136             * </p>
137             */
138            public void clearCache() {
139                    CacheRegistryUtil.clear(SocialEquityGroupSettingImpl.class.getName());
140                    EntityCacheUtil.clearCache(SocialEquityGroupSettingImpl.class.getName());
141                    FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
142                    FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
143            }
144    
145            /**
146             * Clears the cache for the social equity group setting.
147             *
148             * <p>
149             * The {@link com.liferay.portal.kernel.dao.orm.EntityCache} and {@link com.liferay.portal.kernel.dao.orm.FinderCache} are both cleared by this method.
150             * </p>
151             */
152            public void clearCache(SocialEquityGroupSetting socialEquityGroupSetting) {
153                    EntityCacheUtil.removeResult(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
154                            SocialEquityGroupSettingImpl.class,
155                            socialEquityGroupSetting.getPrimaryKey());
156    
157                    FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_T,
158                            new Object[] {
159                                    new Long(socialEquityGroupSetting.getGroupId()),
160                                    new Long(socialEquityGroupSetting.getClassNameId()),
161                                    new Integer(socialEquityGroupSetting.getType())
162                            });
163            }
164    
165            /**
166             * Creates a new social equity group setting with the primary key. Does not add the social equity group setting to the database.
167             *
168             * @param equityGroupSettingId the primary key for the new social equity group setting
169             * @return the new social equity group setting
170             */
171            public SocialEquityGroupSetting create(long equityGroupSettingId) {
172                    SocialEquityGroupSetting socialEquityGroupSetting = new SocialEquityGroupSettingImpl();
173    
174                    socialEquityGroupSetting.setNew(true);
175                    socialEquityGroupSetting.setPrimaryKey(equityGroupSettingId);
176    
177                    return socialEquityGroupSetting;
178            }
179    
180            /**
181             * Removes the social equity group setting with the primary key from the database. Also notifies the appropriate model listeners.
182             *
183             * @param primaryKey the primary key of the social equity group setting to remove
184             * @return the social equity group setting that was removed
185             * @throws com.liferay.portal.NoSuchModelException if a social equity group setting with the primary key could not be found
186             * @throws SystemException if a system exception occurred
187             */
188            public SocialEquityGroupSetting remove(Serializable primaryKey)
189                    throws NoSuchModelException, SystemException {
190                    return remove(((Long)primaryKey).longValue());
191            }
192    
193            /**
194             * Removes the social equity group setting with the primary key from the database. Also notifies the appropriate model listeners.
195             *
196             * @param equityGroupSettingId the primary key of the social equity group setting to remove
197             * @return the social equity group setting that was removed
198             * @throws com.liferay.portlet.social.NoSuchEquityGroupSettingException if a social equity group setting with the primary key could not be found
199             * @throws SystemException if a system exception occurred
200             */
201            public SocialEquityGroupSetting remove(long equityGroupSettingId)
202                    throws NoSuchEquityGroupSettingException, SystemException {
203                    Session session = null;
204    
205                    try {
206                            session = openSession();
207    
208                            SocialEquityGroupSetting socialEquityGroupSetting = (SocialEquityGroupSetting)session.get(SocialEquityGroupSettingImpl.class,
209                                            new Long(equityGroupSettingId));
210    
211                            if (socialEquityGroupSetting == null) {
212                                    if (_log.isWarnEnabled()) {
213                                            _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
214                                                    equityGroupSettingId);
215                                    }
216    
217                                    throw new NoSuchEquityGroupSettingException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
218                                            equityGroupSettingId);
219                            }
220    
221                            return remove(socialEquityGroupSetting);
222                    }
223                    catch (NoSuchEquityGroupSettingException nsee) {
224                            throw nsee;
225                    }
226                    catch (Exception e) {
227                            throw processException(e);
228                    }
229                    finally {
230                            closeSession(session);
231                    }
232            }
233    
234            protected SocialEquityGroupSetting removeImpl(
235                    SocialEquityGroupSetting socialEquityGroupSetting)
236                    throws SystemException {
237                    socialEquityGroupSetting = toUnwrappedModel(socialEquityGroupSetting);
238    
239                    Session session = null;
240    
241                    try {
242                            session = openSession();
243    
244                            BatchSessionUtil.delete(session, socialEquityGroupSetting);
245                    }
246                    catch (Exception e) {
247                            throw processException(e);
248                    }
249                    finally {
250                            closeSession(session);
251                    }
252    
253                    FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
254    
255                    SocialEquityGroupSettingModelImpl socialEquityGroupSettingModelImpl = (SocialEquityGroupSettingModelImpl)socialEquityGroupSetting;
256    
257                    FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_T,
258                            new Object[] {
259                                    new Long(socialEquityGroupSettingModelImpl.getOriginalGroupId()),
260                                    new Long(socialEquityGroupSettingModelImpl.getOriginalClassNameId()),
261                                    new Integer(socialEquityGroupSettingModelImpl.getOriginalType())
262                            });
263    
264                    EntityCacheUtil.removeResult(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
265                            SocialEquityGroupSettingImpl.class,
266                            socialEquityGroupSetting.getPrimaryKey());
267    
268                    return socialEquityGroupSetting;
269            }
270    
271            public SocialEquityGroupSetting updateImpl(
272                    com.liferay.portlet.social.model.SocialEquityGroupSetting socialEquityGroupSetting,
273                    boolean merge) throws SystemException {
274                    socialEquityGroupSetting = toUnwrappedModel(socialEquityGroupSetting);
275    
276                    boolean isNew = socialEquityGroupSetting.isNew();
277    
278                    SocialEquityGroupSettingModelImpl socialEquityGroupSettingModelImpl = (SocialEquityGroupSettingModelImpl)socialEquityGroupSetting;
279    
280                    Session session = null;
281    
282                    try {
283                            session = openSession();
284    
285                            BatchSessionUtil.update(session, socialEquityGroupSetting, merge);
286    
287                            socialEquityGroupSetting.setNew(false);
288                    }
289                    catch (Exception e) {
290                            throw processException(e);
291                    }
292                    finally {
293                            closeSession(session);
294                    }
295    
296                    FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
297    
298                    EntityCacheUtil.putResult(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
299                            SocialEquityGroupSettingImpl.class,
300                            socialEquityGroupSetting.getPrimaryKey(), socialEquityGroupSetting);
301    
302                    if (!isNew &&
303                                    ((socialEquityGroupSetting.getGroupId() != socialEquityGroupSettingModelImpl.getOriginalGroupId()) ||
304                                    (socialEquityGroupSetting.getClassNameId() != socialEquityGroupSettingModelImpl.getOriginalClassNameId()) ||
305                                    (socialEquityGroupSetting.getType() != socialEquityGroupSettingModelImpl.getOriginalType()))) {
306                            FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_C_T,
307                                    new Object[] {
308                                            new Long(socialEquityGroupSettingModelImpl.getOriginalGroupId()),
309                                            new Long(socialEquityGroupSettingModelImpl.getOriginalClassNameId()),
310                                            new Integer(socialEquityGroupSettingModelImpl.getOriginalType())
311                                    });
312                    }
313    
314                    if (isNew ||
315                                    ((socialEquityGroupSetting.getGroupId() != socialEquityGroupSettingModelImpl.getOriginalGroupId()) ||
316                                    (socialEquityGroupSetting.getClassNameId() != socialEquityGroupSettingModelImpl.getOriginalClassNameId()) ||
317                                    (socialEquityGroupSetting.getType() != socialEquityGroupSettingModelImpl.getOriginalType()))) {
318                            FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_T,
319                                    new Object[] {
320                                            new Long(socialEquityGroupSetting.getGroupId()),
321                                            new Long(socialEquityGroupSetting.getClassNameId()),
322                                            new Integer(socialEquityGroupSetting.getType())
323                                    }, socialEquityGroupSetting);
324                    }
325    
326                    return socialEquityGroupSetting;
327            }
328    
329            protected SocialEquityGroupSetting toUnwrappedModel(
330                    SocialEquityGroupSetting socialEquityGroupSetting) {
331                    if (socialEquityGroupSetting instanceof SocialEquityGroupSettingImpl) {
332                            return socialEquityGroupSetting;
333                    }
334    
335                    SocialEquityGroupSettingImpl socialEquityGroupSettingImpl = new SocialEquityGroupSettingImpl();
336    
337                    socialEquityGroupSettingImpl.setNew(socialEquityGroupSetting.isNew());
338                    socialEquityGroupSettingImpl.setPrimaryKey(socialEquityGroupSetting.getPrimaryKey());
339    
340                    socialEquityGroupSettingImpl.setEquityGroupSettingId(socialEquityGroupSetting.getEquityGroupSettingId());
341                    socialEquityGroupSettingImpl.setGroupId(socialEquityGroupSetting.getGroupId());
342                    socialEquityGroupSettingImpl.setCompanyId(socialEquityGroupSetting.getCompanyId());
343                    socialEquityGroupSettingImpl.setClassNameId(socialEquityGroupSetting.getClassNameId());
344                    socialEquityGroupSettingImpl.setType(socialEquityGroupSetting.getType());
345                    socialEquityGroupSettingImpl.setEnabled(socialEquityGroupSetting.isEnabled());
346    
347                    return socialEquityGroupSettingImpl;
348            }
349    
350            /**
351             * Finds the social equity group setting with the primary key or throws a {@link com.liferay.portal.NoSuchModelException} if it could not be found.
352             *
353             * @param primaryKey the primary key of the social equity group setting to find
354             * @return the social equity group setting
355             * @throws com.liferay.portal.NoSuchModelException if a social equity group setting with the primary key could not be found
356             * @throws SystemException if a system exception occurred
357             */
358            public SocialEquityGroupSetting findByPrimaryKey(Serializable primaryKey)
359                    throws NoSuchModelException, SystemException {
360                    return findByPrimaryKey(((Long)primaryKey).longValue());
361            }
362    
363            /**
364             * Finds the social equity group setting with the primary key or throws a {@link com.liferay.portlet.social.NoSuchEquityGroupSettingException} if it could not be found.
365             *
366             * @param equityGroupSettingId the primary key of the social equity group setting to find
367             * @return the social equity group setting
368             * @throws com.liferay.portlet.social.NoSuchEquityGroupSettingException if a social equity group setting with the primary key could not be found
369             * @throws SystemException if a system exception occurred
370             */
371            public SocialEquityGroupSetting findByPrimaryKey(long equityGroupSettingId)
372                    throws NoSuchEquityGroupSettingException, SystemException {
373                    SocialEquityGroupSetting socialEquityGroupSetting = fetchByPrimaryKey(equityGroupSettingId);
374    
375                    if (socialEquityGroupSetting == null) {
376                            if (_log.isWarnEnabled()) {
377                                    _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
378                                            equityGroupSettingId);
379                            }
380    
381                            throw new NoSuchEquityGroupSettingException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
382                                    equityGroupSettingId);
383                    }
384    
385                    return socialEquityGroupSetting;
386            }
387    
388            /**
389             * Finds the social equity group setting with the primary key or returns <code>null</code> if it could not be found.
390             *
391             * @param primaryKey the primary key of the social equity group setting to find
392             * @return the social equity group setting, or <code>null</code> if a social equity group setting with the primary key could not be found
393             * @throws SystemException if a system exception occurred
394             */
395            public SocialEquityGroupSetting fetchByPrimaryKey(Serializable primaryKey)
396                    throws SystemException {
397                    return fetchByPrimaryKey(((Long)primaryKey).longValue());
398            }
399    
400            /**
401             * Finds the social equity group setting with the primary key or returns <code>null</code> if it could not be found.
402             *
403             * @param equityGroupSettingId the primary key of the social equity group setting to find
404             * @return the social equity group setting, or <code>null</code> if a social equity group setting with the primary key could not be found
405             * @throws SystemException if a system exception occurred
406             */
407            public SocialEquityGroupSetting fetchByPrimaryKey(long equityGroupSettingId)
408                    throws SystemException {
409                    SocialEquityGroupSetting socialEquityGroupSetting = (SocialEquityGroupSetting)EntityCacheUtil.getResult(SocialEquityGroupSettingModelImpl.ENTITY_CACHE_ENABLED,
410                                    SocialEquityGroupSettingImpl.class, equityGroupSettingId, this);
411    
412                    if (socialEquityGroupSetting == null) {
413                            Session session = null;
414    
415                            try {
416                                    session = openSession();
417    
418                                    socialEquityGroupSetting = (SocialEquityGroupSetting)session.get(SocialEquityGroupSettingImpl.class,
419                                                    new Long(equityGroupSettingId));
420                            }
421                            catch (Exception e) {
422                                    throw processException(e);
423                            }
424                            finally {
425                                    if (socialEquityGroupSetting != null) {
426                                            cacheResult(socialEquityGroupSetting);
427                                    }
428    
429                                    closeSession(session);
430                            }
431                    }
432    
433                    return socialEquityGroupSetting;
434            }
435    
436            /**
437             * Finds the social equity group setting where groupId = &#63; and classNameId = &#63; and type = &#63; or throws a {@link com.liferay.portlet.social.NoSuchEquityGroupSettingException} if it could not be found.
438             *
439             * @param groupId the group id to search with
440             * @param classNameId the class name id to search with
441             * @param type the type to search with
442             * @return the matching social equity group setting
443             * @throws com.liferay.portlet.social.NoSuchEquityGroupSettingException if a matching social equity group setting could not be found
444             * @throws SystemException if a system exception occurred
445             */
446            public SocialEquityGroupSetting findByG_C_T(long groupId, long classNameId,
447                    int type) throws NoSuchEquityGroupSettingException, SystemException {
448                    SocialEquityGroupSetting socialEquityGroupSetting = fetchByG_C_T(groupId,
449                                    classNameId, type);
450    
451                    if (socialEquityGroupSetting == null) {
452                            StringBundler msg = new StringBundler(8);
453    
454                            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
455    
456                            msg.append("groupId=");
457                            msg.append(groupId);
458    
459                            msg.append(", classNameId=");
460                            msg.append(classNameId);
461    
462                            msg.append(", type=");
463                            msg.append(type);
464    
465                            msg.append(StringPool.CLOSE_CURLY_BRACE);
466    
467                            if (_log.isWarnEnabled()) {
468                                    _log.warn(msg.toString());
469                            }
470    
471                            throw new NoSuchEquityGroupSettingException(msg.toString());
472                    }
473    
474                    return socialEquityGroupSetting;
475            }
476    
477            /**
478             * Finds the social equity group setting where groupId = &#63; and classNameId = &#63; and type = &#63; or returns <code>null</code> if it could not be found. Uses the finder cache.
479             *
480             * @param groupId the group id to search with
481             * @param classNameId the class name id to search with
482             * @param type the type to search with
483             * @return the matching social equity group setting, or <code>null</code> if a matching social equity group setting could not be found
484             * @throws SystemException if a system exception occurred
485             */
486            public SocialEquityGroupSetting fetchByG_C_T(long groupId,
487                    long classNameId, int type) throws SystemException {
488                    return fetchByG_C_T(groupId, classNameId, type, true);
489            }
490    
491            /**
492             * Finds the social equity group setting where groupId = &#63; and classNameId = &#63; and type = &#63; or returns <code>null</code> if it could not be found, optionally using the finder cache.
493             *
494             * @param groupId the group id to search with
495             * @param classNameId the class name id to search with
496             * @param type the type to search with
497             * @return the matching social equity group setting, or <code>null</code> if a matching social equity group setting could not be found
498             * @throws SystemException if a system exception occurred
499             */
500            public SocialEquityGroupSetting fetchByG_C_T(long groupId,
501                    long classNameId, int type, boolean retrieveFromCache)
502                    throws SystemException {
503                    Object[] finderArgs = new Object[] { groupId, classNameId, type };
504    
505                    Object result = null;
506    
507                    if (retrieveFromCache) {
508                            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_C_T,
509                                            finderArgs, this);
510                    }
511    
512                    if (result == null) {
513                            Session session = null;
514    
515                            try {
516                                    session = openSession();
517    
518                                    StringBundler query = new StringBundler(4);
519    
520                                    query.append(_SQL_SELECT_SOCIALEQUITYGROUPSETTING_WHERE);
521    
522                                    query.append(_FINDER_COLUMN_G_C_T_GROUPID_2);
523    
524                                    query.append(_FINDER_COLUMN_G_C_T_CLASSNAMEID_2);
525    
526                                    query.append(_FINDER_COLUMN_G_C_T_TYPE_2);
527    
528                                    String sql = query.toString();
529    
530                                    Query q = session.createQuery(sql);
531    
532                                    QueryPos qPos = QueryPos.getInstance(q);
533    
534                                    qPos.add(groupId);
535    
536                                    qPos.add(classNameId);
537    
538                                    qPos.add(type);
539    
540                                    List<SocialEquityGroupSetting> list = q.list();
541    
542                                    result = list;
543    
544                                    SocialEquityGroupSetting socialEquityGroupSetting = null;
545    
546                                    if (list.isEmpty()) {
547                                            FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_T,
548                                                    finderArgs, list);
549                                    }
550                                    else {
551                                            socialEquityGroupSetting = list.get(0);
552    
553                                            cacheResult(socialEquityGroupSetting);
554    
555                                            if ((socialEquityGroupSetting.getGroupId() != groupId) ||
556                                                            (socialEquityGroupSetting.getClassNameId() != classNameId) ||
557                                                            (socialEquityGroupSetting.getType() != type)) {
558                                                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_T,
559                                                            finderArgs, socialEquityGroupSetting);
560                                            }
561                                    }
562    
563                                    return socialEquityGroupSetting;
564                            }
565                            catch (Exception e) {
566                                    throw processException(e);
567                            }
568                            finally {
569                                    if (result == null) {
570                                            FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_C_T,
571                                                    finderArgs, new ArrayList<SocialEquityGroupSetting>());
572                                    }
573    
574                                    closeSession(session);
575                            }
576                    }
577                    else {
578                            if (result instanceof List<?>) {
579                                    return null;
580                            }
581                            else {
582                                    return (SocialEquityGroupSetting)result;
583                            }
584                    }
585            }
586    
587            /**
588             * Finds all the social equity group settings.
589             *
590             * @return the social equity group settings
591             * @throws SystemException if a system exception occurred
592             */
593            public List<SocialEquityGroupSetting> findAll() throws SystemException {
594                    return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
595            }
596    
597            /**
598             * Finds a range of all the social equity group settings.
599             *
600             * <p>
601             * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
602             * </p>
603             *
604             * @param start the lower bound of the range of social equity group settings to return
605             * @param end the upper bound of the range of social equity group settings to return (not inclusive)
606             * @return the range of social equity group settings
607             * @throws SystemException if a system exception occurred
608             */
609            public List<SocialEquityGroupSetting> findAll(int start, int end)
610                    throws SystemException {
611                    return findAll(start, end, null);
612            }
613    
614            /**
615             * Finds an ordered range of all the social equity group settings.
616             *
617             * <p>
618             * Useful when paginating results. Returns a maximum of <code>end - start</code> instances. <code>start</code> and <code>end</code> are not primary keys, they are indexes in the result set. Thus, <code>0</code> refers to the first result in the set. Setting both <code>start</code> and <code>end</code> to {@link com.liferay.portal.kernel.dao.orm.QueryUtil#ALL_POS} will return the full result set.
619             * </p>
620             *
621             * @param start the lower bound of the range of social equity group settings to return
622             * @param end the upper bound of the range of social equity group settings to return (not inclusive)
623             * @param orderByComparator the comparator to order the results by
624             * @return the ordered range of social equity group settings
625             * @throws SystemException if a system exception occurred
626             */
627            public List<SocialEquityGroupSetting> findAll(int start, int end,
628                    OrderByComparator orderByComparator) throws SystemException {
629                    Object[] finderArgs = new Object[] {
630                                    String.valueOf(start), String.valueOf(end),
631                                    String.valueOf(orderByComparator)
632                            };
633    
634                    List<SocialEquityGroupSetting> list = (List<SocialEquityGroupSetting>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
635                                    finderArgs, this);
636    
637                    if (list == null) {
638                            Session session = null;
639    
640                            try {
641                                    session = openSession();
642    
643                                    StringBundler query = null;
644                                    String sql = null;
645    
646                                    if (orderByComparator != null) {
647                                            query = new StringBundler(2 +
648                                                            (orderByComparator.getOrderByFields().length * 3));
649    
650                                            query.append(_SQL_SELECT_SOCIALEQUITYGROUPSETTING);
651    
652                                            appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
653                                                    orderByComparator);
654    
655                                            sql = query.toString();
656                                    }
657                                    else {
658                                            sql = _SQL_SELECT_SOCIALEQUITYGROUPSETTING;
659                                    }
660    
661                                    Query q = session.createQuery(sql);
662    
663                                    if (orderByComparator == null) {
664                                            list = (List<SocialEquityGroupSetting>)QueryUtil.list(q,
665                                                            getDialect(), start, end, false);
666    
667                                            Collections.sort(list);
668                                    }
669                                    else {
670                                            list = (List<SocialEquityGroupSetting>)QueryUtil.list(q,
671                                                            getDialect(), start, end);
672                                    }
673                            }
674                            catch (Exception e) {
675                                    throw processException(e);
676                            }
677                            finally {
678                                    if (list == null) {
679                                            list = new ArrayList<SocialEquityGroupSetting>();
680                                    }
681    
682                                    cacheResult(list);
683    
684                                    FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
685    
686                                    closeSession(session);
687                            }
688                    }
689    
690                    return list;
691            }
692    
693            /**
694             * Removes the social equity group setting where groupId = &#63; and classNameId = &#63; and type = &#63; from the database.
695             *
696             * @param groupId the group id to search with
697             * @param classNameId the class name id to search with
698             * @param type the type to search with
699             * @throws SystemException if a system exception occurred
700             */
701            public void removeByG_C_T(long groupId, long classNameId, int type)
702                    throws NoSuchEquityGroupSettingException, SystemException {
703                    SocialEquityGroupSetting socialEquityGroupSetting = findByG_C_T(groupId,
704                                    classNameId, type);
705    
706                    remove(socialEquityGroupSetting);
707            }
708    
709            /**
710             * Removes all the social equity group settings from the database.
711             *
712             * @throws SystemException if a system exception occurred
713             */
714            public void removeAll() throws SystemException {
715                    for (SocialEquityGroupSetting socialEquityGroupSetting : findAll()) {
716                            remove(socialEquityGroupSetting);
717                    }
718            }
719    
720            /**
721             * Counts all the social equity group settings where groupId = &#63; and classNameId = &#63; and type = &#63;.
722             *
723             * @param groupId the group id to search with
724             * @param classNameId the class name id to search with
725             * @param type the type to search with
726             * @return the number of matching social equity group settings
727             * @throws SystemException if a system exception occurred
728             */
729            public int countByG_C_T(long groupId, long classNameId, int type)
730                    throws SystemException {
731                    Object[] finderArgs = new Object[] { groupId, classNameId, type };
732    
733                    Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_C_T,
734                                    finderArgs, this);
735    
736                    if (count == null) {
737                            Session session = null;
738    
739                            try {
740                                    session = openSession();
741    
742                                    StringBundler query = new StringBundler(4);
743    
744                                    query.append(_SQL_COUNT_SOCIALEQUITYGROUPSETTING_WHERE);
745    
746                                    query.append(_FINDER_COLUMN_G_C_T_GROUPID_2);
747    
748                                    query.append(_FINDER_COLUMN_G_C_T_CLASSNAMEID_2);
749    
750                                    query.append(_FINDER_COLUMN_G_C_T_TYPE_2);
751    
752                                    String sql = query.toString();
753    
754                                    Query q = session.createQuery(sql);
755    
756                                    QueryPos qPos = QueryPos.getInstance(q);
757    
758                                    qPos.add(groupId);
759    
760                                    qPos.add(classNameId);
761    
762                                    qPos.add(type);
763    
764                                    count = (Long)q.uniqueResult();
765                            }
766                            catch (Exception e) {
767                                    throw processException(e);
768                            }
769                            finally {
770                                    if (count == null) {
771                                            count = Long.valueOf(0);
772                                    }
773    
774                                    FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_C_T,
775                                            finderArgs, count);
776    
777                                    closeSession(session);
778                            }
779                    }
780    
781                    return count.intValue();
782            }
783    
784            /**
785             * Counts all the social equity group settings.
786             *
787             * @return the number of social equity group settings
788             * @throws SystemException if a system exception occurred
789             */
790            public int countAll() throws SystemException {
791                    Object[] finderArgs = new Object[0];
792    
793                    Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
794                                    finderArgs, this);
795    
796                    if (count == null) {
797                            Session session = null;
798    
799                            try {
800                                    session = openSession();
801    
802                                    Query q = session.createQuery(_SQL_COUNT_SOCIALEQUITYGROUPSETTING);
803    
804                                    count = (Long)q.uniqueResult();
805                            }
806                            catch (Exception e) {
807                                    throw processException(e);
808                            }
809                            finally {
810                                    if (count == null) {
811                                            count = Long.valueOf(0);
812                                    }
813    
814                                    FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
815                                            count);
816    
817                                    closeSession(session);
818                            }
819                    }
820    
821                    return count.intValue();
822            }
823    
824            /**
825             * Initializes the social equity group setting persistence.
826             */
827            public void afterPropertiesSet() {
828                    String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
829                                            com.liferay.portal.util.PropsUtil.get(
830                                                    "value.object.listener.com.liferay.portlet.social.model.SocialEquityGroupSetting")));
831    
832                    if (listenerClassNames.length > 0) {
833                            try {
834                                    List<ModelListener<SocialEquityGroupSetting>> listenersList = new ArrayList<ModelListener<SocialEquityGroupSetting>>();
835    
836                                    for (String listenerClassName : listenerClassNames) {
837                                            listenersList.add((ModelListener<SocialEquityGroupSetting>)InstanceFactory.newInstance(
838                                                            listenerClassName));
839                                    }
840    
841                                    listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
842                            }
843                            catch (Exception e) {
844                                    _log.error(e);
845                            }
846                    }
847            }
848    
849            public void destroy() {
850                    EntityCacheUtil.removeCache(SocialEquityGroupSettingImpl.class.getName());
851                    FinderCacheUtil.removeCache(FINDER_CLASS_NAME_ENTITY);
852                    FinderCacheUtil.removeCache(FINDER_CLASS_NAME_LIST);
853            }
854    
855            @BeanReference(type = SocialActivityPersistence.class)
856            protected SocialActivityPersistence socialActivityPersistence;
857            @BeanReference(type = SocialEquityAssetEntryPersistence.class)
858            protected SocialEquityAssetEntryPersistence socialEquityAssetEntryPersistence;
859            @BeanReference(type = SocialEquityGroupSettingPersistence.class)
860            protected SocialEquityGroupSettingPersistence socialEquityGroupSettingPersistence;
861            @BeanReference(type = SocialEquityHistoryPersistence.class)
862            protected SocialEquityHistoryPersistence socialEquityHistoryPersistence;
863            @BeanReference(type = SocialEquityLogPersistence.class)
864            protected SocialEquityLogPersistence socialEquityLogPersistence;
865            @BeanReference(type = SocialEquitySettingPersistence.class)
866            protected SocialEquitySettingPersistence socialEquitySettingPersistence;
867            @BeanReference(type = SocialEquityUserPersistence.class)
868            protected SocialEquityUserPersistence socialEquityUserPersistence;
869            @BeanReference(type = SocialRelationPersistence.class)
870            protected SocialRelationPersistence socialRelationPersistence;
871            @BeanReference(type = SocialRequestPersistence.class)
872            protected SocialRequestPersistence socialRequestPersistence;
873            @BeanReference(type = GroupPersistence.class)
874            protected GroupPersistence groupPersistence;
875            @BeanReference(type = ResourcePersistence.class)
876            protected ResourcePersistence resourcePersistence;
877            @BeanReference(type = UserPersistence.class)
878            protected UserPersistence userPersistence;
879            private static final String _SQL_SELECT_SOCIALEQUITYGROUPSETTING = "SELECT socialEquityGroupSetting FROM SocialEquityGroupSetting socialEquityGroupSetting";
880            private static final String _SQL_SELECT_SOCIALEQUITYGROUPSETTING_WHERE = "SELECT socialEquityGroupSetting FROM SocialEquityGroupSetting socialEquityGroupSetting WHERE ";
881            private static final String _SQL_COUNT_SOCIALEQUITYGROUPSETTING = "SELECT COUNT(socialEquityGroupSetting) FROM SocialEquityGroupSetting socialEquityGroupSetting";
882            private static final String _SQL_COUNT_SOCIALEQUITYGROUPSETTING_WHERE = "SELECT COUNT(socialEquityGroupSetting) FROM SocialEquityGroupSetting socialEquityGroupSetting WHERE ";
883            private static final String _FINDER_COLUMN_G_C_T_GROUPID_2 = "socialEquityGroupSetting.groupId = ? AND ";
884            private static final String _FINDER_COLUMN_G_C_T_CLASSNAMEID_2 = "socialEquityGroupSetting.classNameId = ? AND ";
885            private static final String _FINDER_COLUMN_G_C_T_TYPE_2 = "socialEquityGroupSetting.type = ?";
886            private static final String _ORDER_BY_ENTITY_ALIAS = "socialEquityGroupSetting.";
887            private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No SocialEquityGroupSetting exists with the primary key ";
888            private static final String _NO_SUCH_ENTITY_WITH_KEY = "No SocialEquityGroupSetting exists with the key {";
889            private static Log _log = LogFactoryUtil.getLog(SocialEquityGroupSettingPersistenceImpl.class);
890    }