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