1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.service.persistence;
24  
25  import com.liferay.portal.NoSuchResourcePermissionException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.annotation.BeanReference;
28  import com.liferay.portal.kernel.cache.CacheRegistry;
29  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
30  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
31  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
32  import com.liferay.portal.kernel.dao.orm.FinderPath;
33  import com.liferay.portal.kernel.dao.orm.Query;
34  import com.liferay.portal.kernel.dao.orm.QueryPos;
35  import com.liferay.portal.kernel.dao.orm.QueryUtil;
36  import com.liferay.portal.kernel.dao.orm.Session;
37  import com.liferay.portal.kernel.log.Log;
38  import com.liferay.portal.kernel.log.LogFactoryUtil;
39  import com.liferay.portal.kernel.util.GetterUtil;
40  import com.liferay.portal.kernel.util.OrderByComparator;
41  import com.liferay.portal.kernel.util.StringPool;
42  import com.liferay.portal.kernel.util.StringUtil;
43  import com.liferay.portal.model.ModelListener;
44  import com.liferay.portal.model.ResourcePermission;
45  import com.liferay.portal.model.impl.ResourcePermissionImpl;
46  import com.liferay.portal.model.impl.ResourcePermissionModelImpl;
47  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
48  
49  import java.util.ArrayList;
50  import java.util.Collections;
51  import java.util.List;
52  
53  /**
54   * <a href="ResourcePermissionPersistenceImpl.java.html"><b><i>View Source</i></b></a>
55   *
56   * @author Brian Wing Shun Chan
57   *
58   */
59  public class ResourcePermissionPersistenceImpl extends BasePersistenceImpl
60      implements ResourcePermissionPersistence {
61      public static final String FINDER_CLASS_NAME_ENTITY = ResourcePermissionImpl.class.getName();
62      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
63          ".List";
64      public static final FinderPath FINDER_PATH_FIND_BY_ROLEID = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
65              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
66              FINDER_CLASS_NAME_LIST, "findByRoleId",
67              new String[] { Long.class.getName() });
68      public static final FinderPath FINDER_PATH_FIND_BY_OBC_ROLEID = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
69              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
70              FINDER_CLASS_NAME_LIST, "findByRoleId",
71              new String[] {
72                  Long.class.getName(),
73                  
74              "java.lang.Integer", "java.lang.Integer",
75                  "com.liferay.portal.kernel.util.OrderByComparator"
76              });
77      public static final FinderPath FINDER_PATH_COUNT_BY_ROLEID = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
78              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
79              FINDER_CLASS_NAME_LIST, "countByRoleId",
80              new String[] { Long.class.getName() });
81      public static final FinderPath FINDER_PATH_FIND_BY_C_N_S = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
82              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
83              FINDER_CLASS_NAME_LIST, "findByC_N_S",
84              new String[] {
85                  Long.class.getName(), String.class.getName(),
86                  Integer.class.getName()
87              });
88      public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_N_S = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
89              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
90              FINDER_CLASS_NAME_LIST, "findByC_N_S",
91              new String[] {
92                  Long.class.getName(), String.class.getName(),
93                  Integer.class.getName(),
94                  
95              "java.lang.Integer", "java.lang.Integer",
96                  "com.liferay.portal.kernel.util.OrderByComparator"
97              });
98      public static final FinderPath FINDER_PATH_COUNT_BY_C_N_S = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
99              ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
100             FINDER_CLASS_NAME_LIST, "countByC_N_S",
101             new String[] {
102                 Long.class.getName(), String.class.getName(),
103                 Integer.class.getName()
104             });
105     public static final FinderPath FINDER_PATH_FIND_BY_C_N_S_P = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
106             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
107             FINDER_CLASS_NAME_LIST, "findByC_N_S_P",
108             new String[] {
109                 Long.class.getName(), String.class.getName(),
110                 Integer.class.getName(), String.class.getName()
111             });
112     public static final FinderPath FINDER_PATH_FIND_BY_OBC_C_N_S_P = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
113             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
114             FINDER_CLASS_NAME_LIST, "findByC_N_S_P",
115             new String[] {
116                 Long.class.getName(), String.class.getName(),
117                 Integer.class.getName(), String.class.getName(),
118                 
119             "java.lang.Integer", "java.lang.Integer",
120                 "com.liferay.portal.kernel.util.OrderByComparator"
121             });
122     public static final FinderPath FINDER_PATH_COUNT_BY_C_N_S_P = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
123             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
124             FINDER_CLASS_NAME_LIST, "countByC_N_S_P",
125             new String[] {
126                 Long.class.getName(), String.class.getName(),
127                 Integer.class.getName(), String.class.getName()
128             });
129     public static final FinderPath FINDER_PATH_FETCH_BY_C_N_S_P_R = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
130             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
131             FINDER_CLASS_NAME_ENTITY, "fetchByC_N_S_P_R",
132             new String[] {
133                 Long.class.getName(), String.class.getName(),
134                 Integer.class.getName(), String.class.getName(),
135                 Long.class.getName()
136             });
137     public static final FinderPath FINDER_PATH_COUNT_BY_C_N_S_P_R = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
138             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
139             FINDER_CLASS_NAME_LIST, "countByC_N_S_P_R",
140             new String[] {
141                 Long.class.getName(), String.class.getName(),
142                 Integer.class.getName(), String.class.getName(),
143                 Long.class.getName()
144             });
145     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
146             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
147             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
148     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
149             ResourcePermissionModelImpl.FINDER_CACHE_ENABLED,
150             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
151 
152     public void cacheResult(ResourcePermission resourcePermission) {
153         EntityCacheUtil.putResult(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
154             ResourcePermissionImpl.class, resourcePermission.getPrimaryKey(),
155             resourcePermission);
156 
157         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
158             new Object[] {
159                 new Long(resourcePermission.getCompanyId()),
160                 
161             resourcePermission.getName(),
162                 new Integer(resourcePermission.getScope()),
163                 
164             resourcePermission.getPrimKey(),
165                 new Long(resourcePermission.getRoleId())
166             }, resourcePermission);
167     }
168 
169     public void cacheResult(List<ResourcePermission> resourcePermissions) {
170         for (ResourcePermission resourcePermission : resourcePermissions) {
171             if (EntityCacheUtil.getResult(
172                         ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
173                         ResourcePermissionImpl.class,
174                         resourcePermission.getPrimaryKey(), this) == null) {
175                 cacheResult(resourcePermission);
176             }
177         }
178     }
179 
180     public void clearCache() {
181         CacheRegistry.clear(ResourcePermissionImpl.class.getName());
182         EntityCacheUtil.clearCache(ResourcePermissionImpl.class.getName());
183         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
184         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
185     }
186 
187     public ResourcePermission create(long resourcePermissionId) {
188         ResourcePermission resourcePermission = new ResourcePermissionImpl();
189 
190         resourcePermission.setNew(true);
191         resourcePermission.setPrimaryKey(resourcePermissionId);
192 
193         return resourcePermission;
194     }
195 
196     public ResourcePermission remove(long resourcePermissionId)
197         throws NoSuchResourcePermissionException, SystemException {
198         Session session = null;
199 
200         try {
201             session = openSession();
202 
203             ResourcePermission resourcePermission = (ResourcePermission)session.get(ResourcePermissionImpl.class,
204                     new Long(resourcePermissionId));
205 
206             if (resourcePermission == null) {
207                 if (_log.isWarnEnabled()) {
208                     _log.warn(
209                         "No ResourcePermission exists with the primary key " +
210                         resourcePermissionId);
211                 }
212 
213                 throw new NoSuchResourcePermissionException(
214                     "No ResourcePermission exists with the primary key " +
215                     resourcePermissionId);
216             }
217 
218             return remove(resourcePermission);
219         }
220         catch (NoSuchResourcePermissionException nsee) {
221             throw nsee;
222         }
223         catch (Exception e) {
224             throw processException(e);
225         }
226         finally {
227             closeSession(session);
228         }
229     }
230 
231     public ResourcePermission remove(ResourcePermission resourcePermission)
232         throws SystemException {
233         for (ModelListener<ResourcePermission> listener : listeners) {
234             listener.onBeforeRemove(resourcePermission);
235         }
236 
237         resourcePermission = removeImpl(resourcePermission);
238 
239         for (ModelListener<ResourcePermission> listener : listeners) {
240             listener.onAfterRemove(resourcePermission);
241         }
242 
243         return resourcePermission;
244     }
245 
246     protected ResourcePermission removeImpl(
247         ResourcePermission resourcePermission) throws SystemException {
248         Session session = null;
249 
250         try {
251             session = openSession();
252 
253             if (resourcePermission.isCachedModel() ||
254                     BatchSessionUtil.isEnabled()) {
255                 Object staleObject = session.get(ResourcePermissionImpl.class,
256                         resourcePermission.getPrimaryKeyObj());
257 
258                 if (staleObject != null) {
259                     session.evict(staleObject);
260                 }
261             }
262 
263             session.delete(resourcePermission);
264 
265             session.flush();
266         }
267         catch (Exception e) {
268             throw processException(e);
269         }
270         finally {
271             closeSession(session);
272         }
273 
274         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
275 
276         ResourcePermissionModelImpl resourcePermissionModelImpl = (ResourcePermissionModelImpl)resourcePermission;
277 
278         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
279             new Object[] {
280                 new Long(resourcePermissionModelImpl.getOriginalCompanyId()),
281                 
282             resourcePermissionModelImpl.getOriginalName(),
283                 new Integer(resourcePermissionModelImpl.getOriginalScope()),
284                 
285             resourcePermissionModelImpl.getOriginalPrimKey(),
286                 new Long(resourcePermissionModelImpl.getOriginalRoleId())
287             });
288 
289         EntityCacheUtil.removeResult(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
290             ResourcePermissionImpl.class, resourcePermission.getPrimaryKey());
291 
292         return resourcePermission;
293     }
294 
295     /**
296      * @deprecated Use <code>update(ResourcePermission resourcePermission, boolean merge)</code>.
297      */
298     public ResourcePermission update(ResourcePermission resourcePermission)
299         throws SystemException {
300         if (_log.isWarnEnabled()) {
301             _log.warn(
302                 "Using the deprecated update(ResourcePermission resourcePermission) method. Use update(ResourcePermission resourcePermission, boolean merge) instead.");
303         }
304 
305         return update(resourcePermission, false);
306     }
307 
308     /**
309      * Add, update, or merge, the entity. This method also calls the model
310      * listeners to trigger the proper events associated with adding, deleting,
311      * or updating an entity.
312      *
313      * @param        resourcePermission the entity to add, update, or merge
314      * @param        merge boolean value for whether to merge the entity. The
315      *                default value is false. Setting merge to true is more
316      *                expensive and should only be true when resourcePermission is
317      *                transient. See LEP-5473 for a detailed discussion of this
318      *                method.
319      * @return        true if the portlet can be displayed via Ajax
320      */
321     public ResourcePermission update(ResourcePermission resourcePermission,
322         boolean merge) throws SystemException {
323         boolean isNew = resourcePermission.isNew();
324 
325         for (ModelListener<ResourcePermission> listener : listeners) {
326             if (isNew) {
327                 listener.onBeforeCreate(resourcePermission);
328             }
329             else {
330                 listener.onBeforeUpdate(resourcePermission);
331             }
332         }
333 
334         resourcePermission = updateImpl(resourcePermission, merge);
335 
336         for (ModelListener<ResourcePermission> listener : listeners) {
337             if (isNew) {
338                 listener.onAfterCreate(resourcePermission);
339             }
340             else {
341                 listener.onAfterUpdate(resourcePermission);
342             }
343         }
344 
345         return resourcePermission;
346     }
347 
348     public ResourcePermission updateImpl(
349         com.liferay.portal.model.ResourcePermission resourcePermission,
350         boolean merge) throws SystemException {
351         boolean isNew = resourcePermission.isNew();
352 
353         ResourcePermissionModelImpl resourcePermissionModelImpl = (ResourcePermissionModelImpl)resourcePermission;
354 
355         Session session = null;
356 
357         try {
358             session = openSession();
359 
360             BatchSessionUtil.update(session, resourcePermission, merge);
361 
362             resourcePermission.setNew(false);
363         }
364         catch (Exception e) {
365             throw processException(e);
366         }
367         finally {
368             closeSession(session);
369         }
370 
371         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
372 
373         EntityCacheUtil.putResult(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
374             ResourcePermissionImpl.class, resourcePermission.getPrimaryKey(),
375             resourcePermission);
376 
377         if (!isNew &&
378                 ((resourcePermission.getCompanyId() != resourcePermissionModelImpl.getOriginalCompanyId()) ||
379                 !resourcePermission.getName()
380                                        .equals(resourcePermissionModelImpl.getOriginalName()) ||
381                 (resourcePermission.getScope() != resourcePermissionModelImpl.getOriginalScope()) ||
382                 !resourcePermission.getPrimKey()
383                                        .equals(resourcePermissionModelImpl.getOriginalPrimKey()) ||
384                 (resourcePermission.getRoleId() != resourcePermissionModelImpl.getOriginalRoleId()))) {
385             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
386                 new Object[] {
387                     new Long(resourcePermissionModelImpl.getOriginalCompanyId()),
388                     
389                 resourcePermissionModelImpl.getOriginalName(),
390                     new Integer(resourcePermissionModelImpl.getOriginalScope()),
391                     
392                 resourcePermissionModelImpl.getOriginalPrimKey(),
393                     new Long(resourcePermissionModelImpl.getOriginalRoleId())
394                 });
395         }
396 
397         if (isNew ||
398                 ((resourcePermission.getCompanyId() != resourcePermissionModelImpl.getOriginalCompanyId()) ||
399                 !resourcePermission.getName()
400                                        .equals(resourcePermissionModelImpl.getOriginalName()) ||
401                 (resourcePermission.getScope() != resourcePermissionModelImpl.getOriginalScope()) ||
402                 !resourcePermission.getPrimKey()
403                                        .equals(resourcePermissionModelImpl.getOriginalPrimKey()) ||
404                 (resourcePermission.getRoleId() != resourcePermissionModelImpl.getOriginalRoleId()))) {
405             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
406                 new Object[] {
407                     new Long(resourcePermission.getCompanyId()),
408                     
409                 resourcePermission.getName(),
410                     new Integer(resourcePermission.getScope()),
411                     
412                 resourcePermission.getPrimKey(),
413                     new Long(resourcePermission.getRoleId())
414                 }, resourcePermission);
415         }
416 
417         return resourcePermission;
418     }
419 
420     public ResourcePermission findByPrimaryKey(long resourcePermissionId)
421         throws NoSuchResourcePermissionException, SystemException {
422         ResourcePermission resourcePermission = fetchByPrimaryKey(resourcePermissionId);
423 
424         if (resourcePermission == null) {
425             if (_log.isWarnEnabled()) {
426                 _log.warn("No ResourcePermission exists with the primary key " +
427                     resourcePermissionId);
428             }
429 
430             throw new NoSuchResourcePermissionException(
431                 "No ResourcePermission exists with the primary key " +
432                 resourcePermissionId);
433         }
434 
435         return resourcePermission;
436     }
437 
438     public ResourcePermission fetchByPrimaryKey(long resourcePermissionId)
439         throws SystemException {
440         ResourcePermission resourcePermission = (ResourcePermission)EntityCacheUtil.getResult(ResourcePermissionModelImpl.ENTITY_CACHE_ENABLED,
441                 ResourcePermissionImpl.class, resourcePermissionId, this);
442 
443         if (resourcePermission == null) {
444             Session session = null;
445 
446             try {
447                 session = openSession();
448 
449                 resourcePermission = (ResourcePermission)session.get(ResourcePermissionImpl.class,
450                         new Long(resourcePermissionId));
451             }
452             catch (Exception e) {
453                 throw processException(e);
454             }
455             finally {
456                 if (resourcePermission != null) {
457                     cacheResult(resourcePermission);
458                 }
459 
460                 closeSession(session);
461             }
462         }
463 
464         return resourcePermission;
465     }
466 
467     public List<ResourcePermission> findByRoleId(long roleId)
468         throws SystemException {
469         Object[] finderArgs = new Object[] { new Long(roleId) };
470 
471         List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_ROLEID,
472                 finderArgs, this);
473 
474         if (list == null) {
475             Session session = null;
476 
477             try {
478                 session = openSession();
479 
480                 StringBuilder query = new StringBuilder();
481 
482                 query.append(
483                     "FROM com.liferay.portal.model.ResourcePermission WHERE ");
484 
485                 query.append("roleId = ?");
486 
487                 query.append(" ");
488 
489                 Query q = session.createQuery(query.toString());
490 
491                 QueryPos qPos = QueryPos.getInstance(q);
492 
493                 qPos.add(roleId);
494 
495                 list = q.list();
496             }
497             catch (Exception e) {
498                 throw processException(e);
499             }
500             finally {
501                 if (list == null) {
502                     list = new ArrayList<ResourcePermission>();
503                 }
504 
505                 cacheResult(list);
506 
507                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_ROLEID,
508                     finderArgs, list);
509 
510                 closeSession(session);
511             }
512         }
513 
514         return list;
515     }
516 
517     public List<ResourcePermission> findByRoleId(long roleId, int start, int end)
518         throws SystemException {
519         return findByRoleId(roleId, start, end, null);
520     }
521 
522     public List<ResourcePermission> findByRoleId(long roleId, int start,
523         int end, OrderByComparator obc) throws SystemException {
524         Object[] finderArgs = new Object[] {
525                 new Long(roleId),
526                 
527                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
528             };
529 
530         List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_ROLEID,
531                 finderArgs, this);
532 
533         if (list == null) {
534             Session session = null;
535 
536             try {
537                 session = openSession();
538 
539                 StringBuilder query = new StringBuilder();
540 
541                 query.append(
542                     "FROM com.liferay.portal.model.ResourcePermission WHERE ");
543 
544                 query.append("roleId = ?");
545 
546                 query.append(" ");
547 
548                 if (obc != null) {
549                     query.append("ORDER BY ");
550                     query.append(obc.getOrderBy());
551                 }
552 
553                 Query q = session.createQuery(query.toString());
554 
555                 QueryPos qPos = QueryPos.getInstance(q);
556 
557                 qPos.add(roleId);
558 
559                 list = (List<ResourcePermission>)QueryUtil.list(q,
560                         getDialect(), start, end);
561             }
562             catch (Exception e) {
563                 throw processException(e);
564             }
565             finally {
566                 if (list == null) {
567                     list = new ArrayList<ResourcePermission>();
568                 }
569 
570                 cacheResult(list);
571 
572                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_ROLEID,
573                     finderArgs, list);
574 
575                 closeSession(session);
576             }
577         }
578 
579         return list;
580     }
581 
582     public ResourcePermission findByRoleId_First(long roleId,
583         OrderByComparator obc)
584         throws NoSuchResourcePermissionException, SystemException {
585         List<ResourcePermission> list = findByRoleId(roleId, 0, 1, obc);
586 
587         if (list.isEmpty()) {
588             StringBuilder msg = new StringBuilder();
589 
590             msg.append("No ResourcePermission exists with the key {");
591 
592             msg.append("roleId=" + roleId);
593 
594             msg.append(StringPool.CLOSE_CURLY_BRACE);
595 
596             throw new NoSuchResourcePermissionException(msg.toString());
597         }
598         else {
599             return list.get(0);
600         }
601     }
602 
603     public ResourcePermission findByRoleId_Last(long roleId,
604         OrderByComparator obc)
605         throws NoSuchResourcePermissionException, SystemException {
606         int count = countByRoleId(roleId);
607 
608         List<ResourcePermission> list = findByRoleId(roleId, count - 1, count,
609                 obc);
610 
611         if (list.isEmpty()) {
612             StringBuilder msg = new StringBuilder();
613 
614             msg.append("No ResourcePermission exists with the key {");
615 
616             msg.append("roleId=" + roleId);
617 
618             msg.append(StringPool.CLOSE_CURLY_BRACE);
619 
620             throw new NoSuchResourcePermissionException(msg.toString());
621         }
622         else {
623             return list.get(0);
624         }
625     }
626 
627     public ResourcePermission[] findByRoleId_PrevAndNext(
628         long resourcePermissionId, long roleId, OrderByComparator obc)
629         throws NoSuchResourcePermissionException, SystemException {
630         ResourcePermission resourcePermission = findByPrimaryKey(resourcePermissionId);
631 
632         int count = countByRoleId(roleId);
633 
634         Session session = null;
635 
636         try {
637             session = openSession();
638 
639             StringBuilder query = new StringBuilder();
640 
641             query.append(
642                 "FROM com.liferay.portal.model.ResourcePermission WHERE ");
643 
644             query.append("roleId = ?");
645 
646             query.append(" ");
647 
648             if (obc != null) {
649                 query.append("ORDER BY ");
650                 query.append(obc.getOrderBy());
651             }
652 
653             Query q = session.createQuery(query.toString());
654 
655             QueryPos qPos = QueryPos.getInstance(q);
656 
657             qPos.add(roleId);
658 
659             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
660                     resourcePermission);
661 
662             ResourcePermission[] array = new ResourcePermissionImpl[3];
663 
664             array[0] = (ResourcePermission)objArray[0];
665             array[1] = (ResourcePermission)objArray[1];
666             array[2] = (ResourcePermission)objArray[2];
667 
668             return array;
669         }
670         catch (Exception e) {
671             throw processException(e);
672         }
673         finally {
674             closeSession(session);
675         }
676     }
677 
678     public List<ResourcePermission> findByC_N_S(long companyId, String name,
679         int scope) throws SystemException {
680         Object[] finderArgs = new Object[] {
681                 new Long(companyId),
682                 
683                 name, new Integer(scope)
684             };
685 
686         List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_N_S,
687                 finderArgs, this);
688 
689         if (list == null) {
690             Session session = null;
691 
692             try {
693                 session = openSession();
694 
695                 StringBuilder query = new StringBuilder();
696 
697                 query.append(
698                     "FROM com.liferay.portal.model.ResourcePermission WHERE ");
699 
700                 query.append("companyId = ?");
701 
702                 query.append(" AND ");
703 
704                 if (name == null) {
705                     query.append("name IS NULL");
706                 }
707                 else {
708                     query.append("name = ?");
709                 }
710 
711                 query.append(" AND ");
712 
713                 query.append("scope = ?");
714 
715                 query.append(" ");
716 
717                 Query q = session.createQuery(query.toString());
718 
719                 QueryPos qPos = QueryPos.getInstance(q);
720 
721                 qPos.add(companyId);
722 
723                 if (name != null) {
724                     qPos.add(name);
725                 }
726 
727                 qPos.add(scope);
728 
729                 list = q.list();
730             }
731             catch (Exception e) {
732                 throw processException(e);
733             }
734             finally {
735                 if (list == null) {
736                     list = new ArrayList<ResourcePermission>();
737                 }
738 
739                 cacheResult(list);
740 
741                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_N_S,
742                     finderArgs, list);
743 
744                 closeSession(session);
745             }
746         }
747 
748         return list;
749     }
750 
751     public List<ResourcePermission> findByC_N_S(long companyId, String name,
752         int scope, int start, int end) throws SystemException {
753         return findByC_N_S(companyId, name, scope, start, end, null);
754     }
755 
756     public List<ResourcePermission> findByC_N_S(long companyId, String name,
757         int scope, int start, int end, OrderByComparator obc)
758         throws SystemException {
759         Object[] finderArgs = new Object[] {
760                 new Long(companyId),
761                 
762                 name, new Integer(scope),
763                 
764                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
765             };
766 
767         List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_N_S,
768                 finderArgs, this);
769 
770         if (list == null) {
771             Session session = null;
772 
773             try {
774                 session = openSession();
775 
776                 StringBuilder query = new StringBuilder();
777 
778                 query.append(
779                     "FROM com.liferay.portal.model.ResourcePermission WHERE ");
780 
781                 query.append("companyId = ?");
782 
783                 query.append(" AND ");
784 
785                 if (name == null) {
786                     query.append("name IS NULL");
787                 }
788                 else {
789                     query.append("name = ?");
790                 }
791 
792                 query.append(" AND ");
793 
794                 query.append("scope = ?");
795 
796                 query.append(" ");
797 
798                 if (obc != null) {
799                     query.append("ORDER BY ");
800                     query.append(obc.getOrderBy());
801                 }
802 
803                 Query q = session.createQuery(query.toString());
804 
805                 QueryPos qPos = QueryPos.getInstance(q);
806 
807                 qPos.add(companyId);
808 
809                 if (name != null) {
810                     qPos.add(name);
811                 }
812 
813                 qPos.add(scope);
814 
815                 list = (List<ResourcePermission>)QueryUtil.list(q,
816                         getDialect(), start, end);
817             }
818             catch (Exception e) {
819                 throw processException(e);
820             }
821             finally {
822                 if (list == null) {
823                     list = new ArrayList<ResourcePermission>();
824                 }
825 
826                 cacheResult(list);
827 
828                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_N_S,
829                     finderArgs, list);
830 
831                 closeSession(session);
832             }
833         }
834 
835         return list;
836     }
837 
838     public ResourcePermission findByC_N_S_First(long companyId, String name,
839         int scope, OrderByComparator obc)
840         throws NoSuchResourcePermissionException, SystemException {
841         List<ResourcePermission> list = findByC_N_S(companyId, name, scope, 0,
842                 1, obc);
843 
844         if (list.isEmpty()) {
845             StringBuilder msg = new StringBuilder();
846 
847             msg.append("No ResourcePermission exists with the key {");
848 
849             msg.append("companyId=" + companyId);
850 
851             msg.append(", ");
852             msg.append("name=" + name);
853 
854             msg.append(", ");
855             msg.append("scope=" + scope);
856 
857             msg.append(StringPool.CLOSE_CURLY_BRACE);
858 
859             throw new NoSuchResourcePermissionException(msg.toString());
860         }
861         else {
862             return list.get(0);
863         }
864     }
865 
866     public ResourcePermission findByC_N_S_Last(long companyId, String name,
867         int scope, OrderByComparator obc)
868         throws NoSuchResourcePermissionException, SystemException {
869         int count = countByC_N_S(companyId, name, scope);
870 
871         List<ResourcePermission> list = findByC_N_S(companyId, name, scope,
872                 count - 1, count, obc);
873 
874         if (list.isEmpty()) {
875             StringBuilder msg = new StringBuilder();
876 
877             msg.append("No ResourcePermission exists with the key {");
878 
879             msg.append("companyId=" + companyId);
880 
881             msg.append(", ");
882             msg.append("name=" + name);
883 
884             msg.append(", ");
885             msg.append("scope=" + scope);
886 
887             msg.append(StringPool.CLOSE_CURLY_BRACE);
888 
889             throw new NoSuchResourcePermissionException(msg.toString());
890         }
891         else {
892             return list.get(0);
893         }
894     }
895 
896     public ResourcePermission[] findByC_N_S_PrevAndNext(
897         long resourcePermissionId, long companyId, String name, int scope,
898         OrderByComparator obc)
899         throws NoSuchResourcePermissionException, SystemException {
900         ResourcePermission resourcePermission = findByPrimaryKey(resourcePermissionId);
901 
902         int count = countByC_N_S(companyId, name, scope);
903 
904         Session session = null;
905 
906         try {
907             session = openSession();
908 
909             StringBuilder query = new StringBuilder();
910 
911             query.append(
912                 "FROM com.liferay.portal.model.ResourcePermission WHERE ");
913 
914             query.append("companyId = ?");
915 
916             query.append(" AND ");
917 
918             if (name == null) {
919                 query.append("name IS NULL");
920             }
921             else {
922                 query.append("name = ?");
923             }
924 
925             query.append(" AND ");
926 
927             query.append("scope = ?");
928 
929             query.append(" ");
930 
931             if (obc != null) {
932                 query.append("ORDER BY ");
933                 query.append(obc.getOrderBy());
934             }
935 
936             Query q = session.createQuery(query.toString());
937 
938             QueryPos qPos = QueryPos.getInstance(q);
939 
940             qPos.add(companyId);
941 
942             if (name != null) {
943                 qPos.add(name);
944             }
945 
946             qPos.add(scope);
947 
948             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
949                     resourcePermission);
950 
951             ResourcePermission[] array = new ResourcePermissionImpl[3];
952 
953             array[0] = (ResourcePermission)objArray[0];
954             array[1] = (ResourcePermission)objArray[1];
955             array[2] = (ResourcePermission)objArray[2];
956 
957             return array;
958         }
959         catch (Exception e) {
960             throw processException(e);
961         }
962         finally {
963             closeSession(session);
964         }
965     }
966 
967     public List<ResourcePermission> findByC_N_S_P(long companyId, String name,
968         int scope, String primKey) throws SystemException {
969         Object[] finderArgs = new Object[] {
970                 new Long(companyId),
971                 
972                 name, new Integer(scope),
973                 
974                 primKey
975             };
976 
977         List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_N_S_P,
978                 finderArgs, this);
979 
980         if (list == null) {
981             Session session = null;
982 
983             try {
984                 session = openSession();
985 
986                 StringBuilder query = new StringBuilder();
987 
988                 query.append(
989                     "FROM com.liferay.portal.model.ResourcePermission WHERE ");
990 
991                 query.append("companyId = ?");
992 
993                 query.append(" AND ");
994 
995                 if (name == null) {
996                     query.append("name IS NULL");
997                 }
998                 else {
999                     query.append("name = ?");
1000                }
1001
1002                query.append(" AND ");
1003
1004                query.append("scope = ?");
1005
1006                query.append(" AND ");
1007
1008                if (primKey == null) {
1009                    query.append("primKey IS NULL");
1010                }
1011                else {
1012                    query.append("primKey = ?");
1013                }
1014
1015                query.append(" ");
1016
1017                Query q = session.createQuery(query.toString());
1018
1019                QueryPos qPos = QueryPos.getInstance(q);
1020
1021                qPos.add(companyId);
1022
1023                if (name != null) {
1024                    qPos.add(name);
1025                }
1026
1027                qPos.add(scope);
1028
1029                if (primKey != null) {
1030                    qPos.add(primKey);
1031                }
1032
1033                list = q.list();
1034            }
1035            catch (Exception e) {
1036                throw processException(e);
1037            }
1038            finally {
1039                if (list == null) {
1040                    list = new ArrayList<ResourcePermission>();
1041                }
1042
1043                cacheResult(list);
1044
1045                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_N_S_P,
1046                    finderArgs, list);
1047
1048                closeSession(session);
1049            }
1050        }
1051
1052        return list;
1053    }
1054
1055    public List<ResourcePermission> findByC_N_S_P(long companyId, String name,
1056        int scope, String primKey, int start, int end)
1057        throws SystemException {
1058        return findByC_N_S_P(companyId, name, scope, primKey, start, end, null);
1059    }
1060
1061    public List<ResourcePermission> findByC_N_S_P(long companyId, String name,
1062        int scope, String primKey, int start, int end, OrderByComparator obc)
1063        throws SystemException {
1064        Object[] finderArgs = new Object[] {
1065                new Long(companyId),
1066                
1067                name, new Integer(scope),
1068                
1069                primKey,
1070                
1071                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1072            };
1073
1074        List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_C_N_S_P,
1075                finderArgs, this);
1076
1077        if (list == null) {
1078            Session session = null;
1079
1080            try {
1081                session = openSession();
1082
1083                StringBuilder query = new StringBuilder();
1084
1085                query.append(
1086                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1087
1088                query.append("companyId = ?");
1089
1090                query.append(" AND ");
1091
1092                if (name == null) {
1093                    query.append("name IS NULL");
1094                }
1095                else {
1096                    query.append("name = ?");
1097                }
1098
1099                query.append(" AND ");
1100
1101                query.append("scope = ?");
1102
1103                query.append(" AND ");
1104
1105                if (primKey == null) {
1106                    query.append("primKey IS NULL");
1107                }
1108                else {
1109                    query.append("primKey = ?");
1110                }
1111
1112                query.append(" ");
1113
1114                if (obc != null) {
1115                    query.append("ORDER BY ");
1116                    query.append(obc.getOrderBy());
1117                }
1118
1119                Query q = session.createQuery(query.toString());
1120
1121                QueryPos qPos = QueryPos.getInstance(q);
1122
1123                qPos.add(companyId);
1124
1125                if (name != null) {
1126                    qPos.add(name);
1127                }
1128
1129                qPos.add(scope);
1130
1131                if (primKey != null) {
1132                    qPos.add(primKey);
1133                }
1134
1135                list = (List<ResourcePermission>)QueryUtil.list(q,
1136                        getDialect(), start, end);
1137            }
1138            catch (Exception e) {
1139                throw processException(e);
1140            }
1141            finally {
1142                if (list == null) {
1143                    list = new ArrayList<ResourcePermission>();
1144                }
1145
1146                cacheResult(list);
1147
1148                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_C_N_S_P,
1149                    finderArgs, list);
1150
1151                closeSession(session);
1152            }
1153        }
1154
1155        return list;
1156    }
1157
1158    public ResourcePermission findByC_N_S_P_First(long companyId, String name,
1159        int scope, String primKey, OrderByComparator obc)
1160        throws NoSuchResourcePermissionException, SystemException {
1161        List<ResourcePermission> list = findByC_N_S_P(companyId, name, scope,
1162                primKey, 0, 1, obc);
1163
1164        if (list.isEmpty()) {
1165            StringBuilder msg = new StringBuilder();
1166
1167            msg.append("No ResourcePermission exists with the key {");
1168
1169            msg.append("companyId=" + companyId);
1170
1171            msg.append(", ");
1172            msg.append("name=" + name);
1173
1174            msg.append(", ");
1175            msg.append("scope=" + scope);
1176
1177            msg.append(", ");
1178            msg.append("primKey=" + primKey);
1179
1180            msg.append(StringPool.CLOSE_CURLY_BRACE);
1181
1182            throw new NoSuchResourcePermissionException(msg.toString());
1183        }
1184        else {
1185            return list.get(0);
1186        }
1187    }
1188
1189    public ResourcePermission findByC_N_S_P_Last(long companyId, String name,
1190        int scope, String primKey, OrderByComparator obc)
1191        throws NoSuchResourcePermissionException, SystemException {
1192        int count = countByC_N_S_P(companyId, name, scope, primKey);
1193
1194        List<ResourcePermission> list = findByC_N_S_P(companyId, name, scope,
1195                primKey, count - 1, count, obc);
1196
1197        if (list.isEmpty()) {
1198            StringBuilder msg = new StringBuilder();
1199
1200            msg.append("No ResourcePermission exists with the key {");
1201
1202            msg.append("companyId=" + companyId);
1203
1204            msg.append(", ");
1205            msg.append("name=" + name);
1206
1207            msg.append(", ");
1208            msg.append("scope=" + scope);
1209
1210            msg.append(", ");
1211            msg.append("primKey=" + primKey);
1212
1213            msg.append(StringPool.CLOSE_CURLY_BRACE);
1214
1215            throw new NoSuchResourcePermissionException(msg.toString());
1216        }
1217        else {
1218            return list.get(0);
1219        }
1220    }
1221
1222    public ResourcePermission[] findByC_N_S_P_PrevAndNext(
1223        long resourcePermissionId, long companyId, String name, int scope,
1224        String primKey, OrderByComparator obc)
1225        throws NoSuchResourcePermissionException, SystemException {
1226        ResourcePermission resourcePermission = findByPrimaryKey(resourcePermissionId);
1227
1228        int count = countByC_N_S_P(companyId, name, scope, primKey);
1229
1230        Session session = null;
1231
1232        try {
1233            session = openSession();
1234
1235            StringBuilder query = new StringBuilder();
1236
1237            query.append(
1238                "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1239
1240            query.append("companyId = ?");
1241
1242            query.append(" AND ");
1243
1244            if (name == null) {
1245                query.append("name IS NULL");
1246            }
1247            else {
1248                query.append("name = ?");
1249            }
1250
1251            query.append(" AND ");
1252
1253            query.append("scope = ?");
1254
1255            query.append(" AND ");
1256
1257            if (primKey == null) {
1258                query.append("primKey IS NULL");
1259            }
1260            else {
1261                query.append("primKey = ?");
1262            }
1263
1264            query.append(" ");
1265
1266            if (obc != null) {
1267                query.append("ORDER BY ");
1268                query.append(obc.getOrderBy());
1269            }
1270
1271            Query q = session.createQuery(query.toString());
1272
1273            QueryPos qPos = QueryPos.getInstance(q);
1274
1275            qPos.add(companyId);
1276
1277            if (name != null) {
1278                qPos.add(name);
1279            }
1280
1281            qPos.add(scope);
1282
1283            if (primKey != null) {
1284                qPos.add(primKey);
1285            }
1286
1287            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1288                    resourcePermission);
1289
1290            ResourcePermission[] array = new ResourcePermissionImpl[3];
1291
1292            array[0] = (ResourcePermission)objArray[0];
1293            array[1] = (ResourcePermission)objArray[1];
1294            array[2] = (ResourcePermission)objArray[2];
1295
1296            return array;
1297        }
1298        catch (Exception e) {
1299            throw processException(e);
1300        }
1301        finally {
1302            closeSession(session);
1303        }
1304    }
1305
1306    public ResourcePermission findByC_N_S_P_R(long companyId, String name,
1307        int scope, String primKey, long roleId)
1308        throws NoSuchResourcePermissionException, SystemException {
1309        ResourcePermission resourcePermission = fetchByC_N_S_P_R(companyId,
1310                name, scope, primKey, roleId);
1311
1312        if (resourcePermission == null) {
1313            StringBuilder msg = new StringBuilder();
1314
1315            msg.append("No ResourcePermission exists with the key {");
1316
1317            msg.append("companyId=" + companyId);
1318
1319            msg.append(", ");
1320            msg.append("name=" + name);
1321
1322            msg.append(", ");
1323            msg.append("scope=" + scope);
1324
1325            msg.append(", ");
1326            msg.append("primKey=" + primKey);
1327
1328            msg.append(", ");
1329            msg.append("roleId=" + roleId);
1330
1331            msg.append(StringPool.CLOSE_CURLY_BRACE);
1332
1333            if (_log.isWarnEnabled()) {
1334                _log.warn(msg.toString());
1335            }
1336
1337            throw new NoSuchResourcePermissionException(msg.toString());
1338        }
1339
1340        return resourcePermission;
1341    }
1342
1343    public ResourcePermission fetchByC_N_S_P_R(long companyId, String name,
1344        int scope, String primKey, long roleId) throws SystemException {
1345        return fetchByC_N_S_P_R(companyId, name, scope, primKey, roleId, true);
1346    }
1347
1348    public ResourcePermission fetchByC_N_S_P_R(long companyId, String name,
1349        int scope, String primKey, long roleId, boolean retrieveFromCache)
1350        throws SystemException {
1351        Object[] finderArgs = new Object[] {
1352                new Long(companyId),
1353                
1354                name, new Integer(scope),
1355                
1356                primKey, new Long(roleId)
1357            };
1358
1359        Object result = null;
1360
1361        if (retrieveFromCache) {
1362            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
1363                    finderArgs, this);
1364        }
1365
1366        if (result == null) {
1367            Session session = null;
1368
1369            try {
1370                session = openSession();
1371
1372                StringBuilder query = new StringBuilder();
1373
1374                query.append(
1375                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1376
1377                query.append("companyId = ?");
1378
1379                query.append(" AND ");
1380
1381                if (name == null) {
1382                    query.append("name IS NULL");
1383                }
1384                else {
1385                    query.append("name = ?");
1386                }
1387
1388                query.append(" AND ");
1389
1390                query.append("scope = ?");
1391
1392                query.append(" AND ");
1393
1394                if (primKey == null) {
1395                    query.append("primKey IS NULL");
1396                }
1397                else {
1398                    query.append("primKey = ?");
1399                }
1400
1401                query.append(" AND ");
1402
1403                query.append("roleId = ?");
1404
1405                query.append(" ");
1406
1407                Query q = session.createQuery(query.toString());
1408
1409                QueryPos qPos = QueryPos.getInstance(q);
1410
1411                qPos.add(companyId);
1412
1413                if (name != null) {
1414                    qPos.add(name);
1415                }
1416
1417                qPos.add(scope);
1418
1419                if (primKey != null) {
1420                    qPos.add(primKey);
1421                }
1422
1423                qPos.add(roleId);
1424
1425                List<ResourcePermission> list = q.list();
1426
1427                result = list;
1428
1429                ResourcePermission resourcePermission = null;
1430
1431                if (list.isEmpty()) {
1432                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
1433                        finderArgs, list);
1434                }
1435                else {
1436                    resourcePermission = list.get(0);
1437
1438                    cacheResult(resourcePermission);
1439
1440                    if ((resourcePermission.getCompanyId() != companyId) ||
1441                            (resourcePermission.getName() == null) ||
1442                            !resourcePermission.getName().equals(name) ||
1443                            (resourcePermission.getScope() != scope) ||
1444                            (resourcePermission.getPrimKey() == null) ||
1445                            !resourcePermission.getPrimKey().equals(primKey) ||
1446                            (resourcePermission.getRoleId() != roleId)) {
1447                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
1448                            finderArgs, list);
1449                    }
1450                }
1451
1452                return resourcePermission;
1453            }
1454            catch (Exception e) {
1455                throw processException(e);
1456            }
1457            finally {
1458                if (result == null) {
1459                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N_S_P_R,
1460                        finderArgs, new ArrayList<ResourcePermission>());
1461                }
1462
1463                closeSession(session);
1464            }
1465        }
1466        else {
1467            if (result instanceof List) {
1468                return null;
1469            }
1470            else {
1471                return (ResourcePermission)result;
1472            }
1473        }
1474    }
1475
1476    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1477        throws SystemException {
1478        Session session = null;
1479
1480        try {
1481            session = openSession();
1482
1483            dynamicQuery.compile(session);
1484
1485            return dynamicQuery.list();
1486        }
1487        catch (Exception e) {
1488            throw processException(e);
1489        }
1490        finally {
1491            closeSession(session);
1492        }
1493    }
1494
1495    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1496        int start, int end) throws SystemException {
1497        Session session = null;
1498
1499        try {
1500            session = openSession();
1501
1502            dynamicQuery.setLimit(start, end);
1503
1504            dynamicQuery.compile(session);
1505
1506            return dynamicQuery.list();
1507        }
1508        catch (Exception e) {
1509            throw processException(e);
1510        }
1511        finally {
1512            closeSession(session);
1513        }
1514    }
1515
1516    public List<ResourcePermission> findAll() throws SystemException {
1517        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1518    }
1519
1520    public List<ResourcePermission> findAll(int start, int end)
1521        throws SystemException {
1522        return findAll(start, end, null);
1523    }
1524
1525    public List<ResourcePermission> findAll(int start, int end,
1526        OrderByComparator obc) throws SystemException {
1527        Object[] finderArgs = new Object[] {
1528                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1529            };
1530
1531        List<ResourcePermission> list = (List<ResourcePermission>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1532                finderArgs, this);
1533
1534        if (list == null) {
1535            Session session = null;
1536
1537            try {
1538                session = openSession();
1539
1540                StringBuilder query = new StringBuilder();
1541
1542                query.append(
1543                    "FROM com.liferay.portal.model.ResourcePermission ");
1544
1545                if (obc != null) {
1546                    query.append("ORDER BY ");
1547                    query.append(obc.getOrderBy());
1548                }
1549
1550                Query q = session.createQuery(query.toString());
1551
1552                if (obc == null) {
1553                    list = (List<ResourcePermission>)QueryUtil.list(q,
1554                            getDialect(), start, end, false);
1555
1556                    Collections.sort(list);
1557                }
1558                else {
1559                    list = (List<ResourcePermission>)QueryUtil.list(q,
1560                            getDialect(), start, end);
1561                }
1562            }
1563            catch (Exception e) {
1564                throw processException(e);
1565            }
1566            finally {
1567                if (list == null) {
1568                    list = new ArrayList<ResourcePermission>();
1569                }
1570
1571                cacheResult(list);
1572
1573                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1574
1575                closeSession(session);
1576            }
1577        }
1578
1579        return list;
1580    }
1581
1582    public void removeByRoleId(long roleId) throws SystemException {
1583        for (ResourcePermission resourcePermission : findByRoleId(roleId)) {
1584            remove(resourcePermission);
1585        }
1586    }
1587
1588    public void removeByC_N_S(long companyId, String name, int scope)
1589        throws SystemException {
1590        for (ResourcePermission resourcePermission : findByC_N_S(companyId,
1591                name, scope)) {
1592            remove(resourcePermission);
1593        }
1594    }
1595
1596    public void removeByC_N_S_P(long companyId, String name, int scope,
1597        String primKey) throws SystemException {
1598        for (ResourcePermission resourcePermission : findByC_N_S_P(companyId,
1599                name, scope, primKey)) {
1600            remove(resourcePermission);
1601        }
1602    }
1603
1604    public void removeByC_N_S_P_R(long companyId, String name, int scope,
1605        String primKey, long roleId)
1606        throws NoSuchResourcePermissionException, SystemException {
1607        ResourcePermission resourcePermission = findByC_N_S_P_R(companyId,
1608                name, scope, primKey, roleId);
1609
1610        remove(resourcePermission);
1611    }
1612
1613    public void removeAll() throws SystemException {
1614        for (ResourcePermission resourcePermission : findAll()) {
1615            remove(resourcePermission);
1616        }
1617    }
1618
1619    public int countByRoleId(long roleId) throws SystemException {
1620        Object[] finderArgs = new Object[] { new Long(roleId) };
1621
1622        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_ROLEID,
1623                finderArgs, this);
1624
1625        if (count == null) {
1626            Session session = null;
1627
1628            try {
1629                session = openSession();
1630
1631                StringBuilder query = new StringBuilder();
1632
1633                query.append("SELECT COUNT(*) ");
1634                query.append(
1635                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1636
1637                query.append("roleId = ?");
1638
1639                query.append(" ");
1640
1641                Query q = session.createQuery(query.toString());
1642
1643                QueryPos qPos = QueryPos.getInstance(q);
1644
1645                qPos.add(roleId);
1646
1647                count = (Long)q.uniqueResult();
1648            }
1649            catch (Exception e) {
1650                throw processException(e);
1651            }
1652            finally {
1653                if (count == null) {
1654                    count = Long.valueOf(0);
1655                }
1656
1657                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_ROLEID,
1658                    finderArgs, count);
1659
1660                closeSession(session);
1661            }
1662        }
1663
1664        return count.intValue();
1665    }
1666
1667    public int countByC_N_S(long companyId, String name, int scope)
1668        throws SystemException {
1669        Object[] finderArgs = new Object[] {
1670                new Long(companyId),
1671                
1672                name, new Integer(scope)
1673            };
1674
1675        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N_S,
1676                finderArgs, this);
1677
1678        if (count == null) {
1679            Session session = null;
1680
1681            try {
1682                session = openSession();
1683
1684                StringBuilder query = new StringBuilder();
1685
1686                query.append("SELECT COUNT(*) ");
1687                query.append(
1688                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1689
1690                query.append("companyId = ?");
1691
1692                query.append(" AND ");
1693
1694                if (name == null) {
1695                    query.append("name IS NULL");
1696                }
1697                else {
1698                    query.append("name = ?");
1699                }
1700
1701                query.append(" AND ");
1702
1703                query.append("scope = ?");
1704
1705                query.append(" ");
1706
1707                Query q = session.createQuery(query.toString());
1708
1709                QueryPos qPos = QueryPos.getInstance(q);
1710
1711                qPos.add(companyId);
1712
1713                if (name != null) {
1714                    qPos.add(name);
1715                }
1716
1717                qPos.add(scope);
1718
1719                count = (Long)q.uniqueResult();
1720            }
1721            catch (Exception e) {
1722                throw processException(e);
1723            }
1724            finally {
1725                if (count == null) {
1726                    count = Long.valueOf(0);
1727                }
1728
1729                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N_S,
1730                    finderArgs, count);
1731
1732                closeSession(session);
1733            }
1734        }
1735
1736        return count.intValue();
1737    }
1738
1739    public int countByC_N_S_P(long companyId, String name, int scope,
1740        String primKey) throws SystemException {
1741        Object[] finderArgs = new Object[] {
1742                new Long(companyId),
1743                
1744                name, new Integer(scope),
1745                
1746                primKey
1747            };
1748
1749        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N_S_P,
1750                finderArgs, this);
1751
1752        if (count == null) {
1753            Session session = null;
1754
1755            try {
1756                session = openSession();
1757
1758                StringBuilder query = new StringBuilder();
1759
1760                query.append("SELECT COUNT(*) ");
1761                query.append(
1762                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1763
1764                query.append("companyId = ?");
1765
1766                query.append(" AND ");
1767
1768                if (name == null) {
1769                    query.append("name IS NULL");
1770                }
1771                else {
1772                    query.append("name = ?");
1773                }
1774
1775                query.append(" AND ");
1776
1777                query.append("scope = ?");
1778
1779                query.append(" AND ");
1780
1781                if (primKey == null) {
1782                    query.append("primKey IS NULL");
1783                }
1784                else {
1785                    query.append("primKey = ?");
1786                }
1787
1788                query.append(" ");
1789
1790                Query q = session.createQuery(query.toString());
1791
1792                QueryPos qPos = QueryPos.getInstance(q);
1793
1794                qPos.add(companyId);
1795
1796                if (name != null) {
1797                    qPos.add(name);
1798                }
1799
1800                qPos.add(scope);
1801
1802                if (primKey != null) {
1803                    qPos.add(primKey);
1804                }
1805
1806                count = (Long)q.uniqueResult();
1807            }
1808            catch (Exception e) {
1809                throw processException(e);
1810            }
1811            finally {
1812                if (count == null) {
1813                    count = Long.valueOf(0);
1814                }
1815
1816                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N_S_P,
1817                    finderArgs, count);
1818
1819                closeSession(session);
1820            }
1821        }
1822
1823        return count.intValue();
1824    }
1825
1826    public int countByC_N_S_P_R(long companyId, String name, int scope,
1827        String primKey, long roleId) throws SystemException {
1828        Object[] finderArgs = new Object[] {
1829                new Long(companyId),
1830                
1831                name, new Integer(scope),
1832                
1833                primKey, new Long(roleId)
1834            };
1835
1836        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N_S_P_R,
1837                finderArgs, this);
1838
1839        if (count == null) {
1840            Session session = null;
1841
1842            try {
1843                session = openSession();
1844
1845                StringBuilder query = new StringBuilder();
1846
1847                query.append("SELECT COUNT(*) ");
1848                query.append(
1849                    "FROM com.liferay.portal.model.ResourcePermission WHERE ");
1850
1851                query.append("companyId = ?");
1852
1853                query.append(" AND ");
1854
1855                if (name == null) {
1856                    query.append("name IS NULL");
1857                }
1858                else {
1859                    query.append("name = ?");
1860                }
1861
1862                query.append(" AND ");
1863
1864                query.append("scope = ?");
1865
1866                query.append(" AND ");
1867
1868                if (primKey == null) {
1869                    query.append("primKey IS NULL");
1870                }
1871                else {
1872                    query.append("primKey = ?");
1873                }
1874
1875                query.append(" AND ");
1876
1877                query.append("roleId = ?");
1878
1879                query.append(" ");
1880
1881                Query q = session.createQuery(query.toString());
1882
1883                QueryPos qPos = QueryPos.getInstance(q);
1884
1885                qPos.add(companyId);
1886
1887                if (name != null) {
1888                    qPos.add(name);
1889                }
1890
1891                qPos.add(scope);
1892
1893                if (primKey != null) {
1894                    qPos.add(primKey);
1895                }
1896
1897                qPos.add(roleId);
1898
1899                count = (Long)q.uniqueResult();
1900            }
1901            catch (Exception e) {
1902                throw processException(e);
1903            }
1904            finally {
1905                if (count == null) {
1906                    count = Long.valueOf(0);
1907                }
1908
1909                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N_S_P_R,
1910                    finderArgs, count);
1911
1912                closeSession(session);
1913            }
1914        }
1915
1916        return count.intValue();
1917    }
1918
1919    public int countAll() throws SystemException {
1920        Object[] finderArgs = new Object[0];
1921
1922        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1923                finderArgs, this);
1924
1925        if (count == null) {
1926            Session session = null;
1927
1928            try {
1929                session = openSession();
1930
1931                Query q = session.createQuery(
1932                        "SELECT COUNT(*) FROM com.liferay.portal.model.ResourcePermission");
1933
1934                count = (Long)q.uniqueResult();
1935            }
1936            catch (Exception e) {
1937                throw processException(e);
1938            }
1939            finally {
1940                if (count == null) {
1941                    count = Long.valueOf(0);
1942                }
1943
1944                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1945                    count);
1946
1947                closeSession(session);
1948            }
1949        }
1950
1951        return count.intValue();
1952    }
1953
1954    public void afterPropertiesSet() {
1955        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1956                    com.liferay.portal.util.PropsUtil.get(
1957                        "value.object.listener.com.liferay.portal.model.ResourcePermission")));
1958
1959        if (listenerClassNames.length > 0) {
1960            try {
1961                List<ModelListener<ResourcePermission>> listenersList = new ArrayList<ModelListener<ResourcePermission>>();
1962
1963                for (String listenerClassName : listenerClassNames) {
1964                    listenersList.add((ModelListener<ResourcePermission>)Class.forName(
1965                            listenerClassName).newInstance());
1966                }
1967
1968                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1969            }
1970            catch (Exception e) {
1971                _log.error(e);
1972            }
1973        }
1974    }
1975
1976    @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
1977    protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
1978    @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
1979    protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
1980    @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
1981    protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
1982    @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
1983    protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
1984    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
1985    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
1986    @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
1987    protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
1988    @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
1989    protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
1990    @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
1991    protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
1992    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
1993    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
1994    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
1995    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
1996    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
1997    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
1998    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
1999    protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
2000    @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
2001    protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
2002    @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
2003    protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
2004    @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
2005    protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
2006    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
2007    protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
2008    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
2009    protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
2010    @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
2011    protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
2012    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
2013    protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
2014    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
2015    protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
2016    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
2017    protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
2018    @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
2019    protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
2020    @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
2021    protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
2022    @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
2023    protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
2024    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
2025    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
2026    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
2027    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
2028    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
2029    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
2030    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
2031    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
2032    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
2033    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
2034    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
2035    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
2036    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
2037    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
2038    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
2039    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
2040    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
2041    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
2042    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
2043    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
2044    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
2045    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
2046    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
2047    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
2048    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
2049    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
2050    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
2051    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
2052    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
2053    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
2054    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
2055    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
2056    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
2057    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
2058    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
2059    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
2060    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
2061    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
2062    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
2063    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
2064    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
2065    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
2066    private static Log _log = LogFactoryUtil.getLog(ResourcePermissionPersistenceImpl.class);
2067}