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.portlet.tasks.service.persistence;
24  
25  import com.liferay.portal.SystemException;
26  import com.liferay.portal.kernel.annotation.BeanReference;
27  import com.liferay.portal.kernel.cache.CacheRegistry;
28  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
29  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
30  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
31  import com.liferay.portal.kernel.dao.orm.FinderPath;
32  import com.liferay.portal.kernel.dao.orm.Query;
33  import com.liferay.portal.kernel.dao.orm.QueryPos;
34  import com.liferay.portal.kernel.dao.orm.QueryUtil;
35  import com.liferay.portal.kernel.dao.orm.Session;
36  import com.liferay.portal.kernel.log.Log;
37  import com.liferay.portal.kernel.log.LogFactoryUtil;
38  import com.liferay.portal.kernel.util.GetterUtil;
39  import com.liferay.portal.kernel.util.OrderByComparator;
40  import com.liferay.portal.kernel.util.StringPool;
41  import com.liferay.portal.kernel.util.StringUtil;
42  import com.liferay.portal.model.ModelListener;
43  import com.liferay.portal.service.persistence.BatchSessionUtil;
44  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
45  
46  import com.liferay.portlet.tasks.NoSuchReviewException;
47  import com.liferay.portlet.tasks.model.TasksReview;
48  import com.liferay.portlet.tasks.model.impl.TasksReviewImpl;
49  import com.liferay.portlet.tasks.model.impl.TasksReviewModelImpl;
50  
51  import java.util.ArrayList;
52  import java.util.Collections;
53  import java.util.List;
54  
55  /**
56   * <a href="TasksReviewPersistenceImpl.java.html"><b><i>View Source</i></b></a>
57   *
58   * @author Brian Wing Shun Chan
59   *
60   */
61  public class TasksReviewPersistenceImpl extends BasePersistenceImpl
62      implements TasksReviewPersistence {
63      public static final String FINDER_CLASS_NAME_ENTITY = TasksReviewImpl.class.getName();
64      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
65          ".List";
66      public static final FinderPath FINDER_PATH_FIND_BY_USERID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
67              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
68              "findByUserId", new String[] { Long.class.getName() });
69      public static final FinderPath FINDER_PATH_FIND_BY_OBC_USERID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
70              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
71              "findByUserId",
72              new String[] {
73                  Long.class.getName(),
74                  
75              "java.lang.Integer", "java.lang.Integer",
76                  "com.liferay.portal.kernel.util.OrderByComparator"
77              });
78      public static final FinderPath FINDER_PATH_COUNT_BY_USERID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
79              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
80              "countByUserId", new String[] { Long.class.getName() });
81      public static final FinderPath FINDER_PATH_FIND_BY_PROPOSALID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
82              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
83              "findByProposalId", new String[] { Long.class.getName() });
84      public static final FinderPath FINDER_PATH_FIND_BY_OBC_PROPOSALID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
85              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
86              "findByProposalId",
87              new String[] {
88                  Long.class.getName(),
89                  
90              "java.lang.Integer", "java.lang.Integer",
91                  "com.liferay.portal.kernel.util.OrderByComparator"
92              });
93      public static final FinderPath FINDER_PATH_COUNT_BY_PROPOSALID = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
94              TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
95              "countByProposalId", new String[] { Long.class.getName() });
96      public static final FinderPath FINDER_PATH_FETCH_BY_U_P = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
97              TasksReviewModelImpl.FINDER_CACHE_ENABLED,
98              FINDER_CLASS_NAME_ENTITY, "fetchByU_P",
99              new String[] { Long.class.getName(), Long.class.getName() });
100     public static final FinderPath FINDER_PATH_COUNT_BY_U_P = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
101             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
102             "countByU_P",
103             new String[] { Long.class.getName(), Long.class.getName() });
104     public static final FinderPath FINDER_PATH_FIND_BY_P_S = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
105             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
106             "findByP_S",
107             new String[] { Long.class.getName(), Integer.class.getName() });
108     public static final FinderPath FINDER_PATH_FIND_BY_OBC_P_S = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
109             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
110             "findByP_S",
111             new String[] {
112                 Long.class.getName(), Integer.class.getName(),
113                 
114             "java.lang.Integer", "java.lang.Integer",
115                 "com.liferay.portal.kernel.util.OrderByComparator"
116             });
117     public static final FinderPath FINDER_PATH_COUNT_BY_P_S = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
118             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
119             "countByP_S",
120             new String[] { Long.class.getName(), Integer.class.getName() });
121     public static final FinderPath FINDER_PATH_FIND_BY_P_S_C = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
122             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
123             "findByP_S_C",
124             new String[] {
125                 Long.class.getName(), Integer.class.getName(),
126                 Boolean.class.getName()
127             });
128     public static final FinderPath FINDER_PATH_FIND_BY_OBC_P_S_C = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
129             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
130             "findByP_S_C",
131             new String[] {
132                 Long.class.getName(), Integer.class.getName(),
133                 Boolean.class.getName(),
134                 
135             "java.lang.Integer", "java.lang.Integer",
136                 "com.liferay.portal.kernel.util.OrderByComparator"
137             });
138     public static final FinderPath FINDER_PATH_COUNT_BY_P_S_C = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
139             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
140             "countByP_S_C",
141             new String[] {
142                 Long.class.getName(), Integer.class.getName(),
143                 Boolean.class.getName()
144             });
145     public static final FinderPath FINDER_PATH_FIND_BY_P_S_C_R = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
146             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
147             "findByP_S_C_R",
148             new String[] {
149                 Long.class.getName(), Integer.class.getName(),
150                 Boolean.class.getName(), Boolean.class.getName()
151             });
152     public static final FinderPath FINDER_PATH_FIND_BY_OBC_P_S_C_R = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
153             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
154             "findByP_S_C_R",
155             new String[] {
156                 Long.class.getName(), Integer.class.getName(),
157                 Boolean.class.getName(), Boolean.class.getName(),
158                 
159             "java.lang.Integer", "java.lang.Integer",
160                 "com.liferay.portal.kernel.util.OrderByComparator"
161             });
162     public static final FinderPath FINDER_PATH_COUNT_BY_P_S_C_R = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
163             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
164             "countByP_S_C_R",
165             new String[] {
166                 Long.class.getName(), Integer.class.getName(),
167                 Boolean.class.getName(), Boolean.class.getName()
168             });
169     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
170             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
171             "findAll", new String[0]);
172     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
173             TasksReviewModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
174             "countAll", new String[0]);
175 
176     public void cacheResult(TasksReview tasksReview) {
177         EntityCacheUtil.putResult(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
178             TasksReviewImpl.class, tasksReview.getPrimaryKey(), tasksReview);
179 
180         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_P,
181             new Object[] {
182                 new Long(tasksReview.getUserId()),
183                 new Long(tasksReview.getProposalId())
184             }, tasksReview);
185     }
186 
187     public void cacheResult(List<TasksReview> tasksReviews) {
188         for (TasksReview tasksReview : tasksReviews) {
189             if (EntityCacheUtil.getResult(
190                         TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
191                         TasksReviewImpl.class, tasksReview.getPrimaryKey(), this) == null) {
192                 cacheResult(tasksReview);
193             }
194         }
195     }
196 
197     public void clearCache() {
198         CacheRegistry.clear(TasksReviewImpl.class.getName());
199         EntityCacheUtil.clearCache(TasksReviewImpl.class.getName());
200         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
201         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
202     }
203 
204     public TasksReview create(long reviewId) {
205         TasksReview tasksReview = new TasksReviewImpl();
206 
207         tasksReview.setNew(true);
208         tasksReview.setPrimaryKey(reviewId);
209 
210         return tasksReview;
211     }
212 
213     public TasksReview remove(long reviewId)
214         throws NoSuchReviewException, SystemException {
215         Session session = null;
216 
217         try {
218             session = openSession();
219 
220             TasksReview tasksReview = (TasksReview)session.get(TasksReviewImpl.class,
221                     new Long(reviewId));
222 
223             if (tasksReview == null) {
224                 if (_log.isWarnEnabled()) {
225                     _log.warn("No TasksReview exists with the primary key " +
226                         reviewId);
227                 }
228 
229                 throw new NoSuchReviewException(
230                     "No TasksReview exists with the primary key " + reviewId);
231             }
232 
233             return remove(tasksReview);
234         }
235         catch (NoSuchReviewException nsee) {
236             throw nsee;
237         }
238         catch (Exception e) {
239             throw processException(e);
240         }
241         finally {
242             closeSession(session);
243         }
244     }
245 
246     public TasksReview remove(TasksReview tasksReview)
247         throws SystemException {
248         for (ModelListener<TasksReview> listener : listeners) {
249             listener.onBeforeRemove(tasksReview);
250         }
251 
252         tasksReview = removeImpl(tasksReview);
253 
254         for (ModelListener<TasksReview> listener : listeners) {
255             listener.onAfterRemove(tasksReview);
256         }
257 
258         return tasksReview;
259     }
260 
261     protected TasksReview removeImpl(TasksReview tasksReview)
262         throws SystemException {
263         Session session = null;
264 
265         try {
266             session = openSession();
267 
268             if (tasksReview.isCachedModel() || BatchSessionUtil.isEnabled()) {
269                 Object staleObject = session.get(TasksReviewImpl.class,
270                         tasksReview.getPrimaryKeyObj());
271 
272                 if (staleObject != null) {
273                     session.evict(staleObject);
274                 }
275             }
276 
277             session.delete(tasksReview);
278 
279             session.flush();
280         }
281         catch (Exception e) {
282             throw processException(e);
283         }
284         finally {
285             closeSession(session);
286         }
287 
288         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
289 
290         TasksReviewModelImpl tasksReviewModelImpl = (TasksReviewModelImpl)tasksReview;
291 
292         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_U_P,
293             new Object[] {
294                 new Long(tasksReviewModelImpl.getOriginalUserId()),
295                 new Long(tasksReviewModelImpl.getOriginalProposalId())
296             });
297 
298         EntityCacheUtil.removeResult(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
299             TasksReviewImpl.class, tasksReview.getPrimaryKey());
300 
301         return tasksReview;
302     }
303 
304     /**
305      * @deprecated Use <code>update(TasksReview tasksReview, boolean merge)</code>.
306      */
307     public TasksReview update(TasksReview tasksReview)
308         throws SystemException {
309         if (_log.isWarnEnabled()) {
310             _log.warn(
311                 "Using the deprecated update(TasksReview tasksReview) method. Use update(TasksReview tasksReview, boolean merge) instead.");
312         }
313 
314         return update(tasksReview, false);
315     }
316 
317     /**
318      * Add, update, or merge, the entity. This method also calls the model
319      * listeners to trigger the proper events associated with adding, deleting,
320      * or updating an entity.
321      *
322      * @param        tasksReview the entity to add, update, or merge
323      * @param        merge boolean value for whether to merge the entity. The
324      *                default value is false. Setting merge to true is more
325      *                expensive and should only be true when tasksReview is
326      *                transient. See LEP-5473 for a detailed discussion of this
327      *                method.
328      * @return        true if the portlet can be displayed via Ajax
329      */
330     public TasksReview update(TasksReview tasksReview, boolean merge)
331         throws SystemException {
332         boolean isNew = tasksReview.isNew();
333 
334         for (ModelListener<TasksReview> listener : listeners) {
335             if (isNew) {
336                 listener.onBeforeCreate(tasksReview);
337             }
338             else {
339                 listener.onBeforeUpdate(tasksReview);
340             }
341         }
342 
343         tasksReview = updateImpl(tasksReview, merge);
344 
345         for (ModelListener<TasksReview> listener : listeners) {
346             if (isNew) {
347                 listener.onAfterCreate(tasksReview);
348             }
349             else {
350                 listener.onAfterUpdate(tasksReview);
351             }
352         }
353 
354         return tasksReview;
355     }
356 
357     public TasksReview updateImpl(
358         com.liferay.portlet.tasks.model.TasksReview tasksReview, boolean merge)
359         throws SystemException {
360         boolean isNew = tasksReview.isNew();
361 
362         TasksReviewModelImpl tasksReviewModelImpl = (TasksReviewModelImpl)tasksReview;
363 
364         Session session = null;
365 
366         try {
367             session = openSession();
368 
369             BatchSessionUtil.update(session, tasksReview, merge);
370 
371             tasksReview.setNew(false);
372         }
373         catch (Exception e) {
374             throw processException(e);
375         }
376         finally {
377             closeSession(session);
378         }
379 
380         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
381 
382         EntityCacheUtil.putResult(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
383             TasksReviewImpl.class, tasksReview.getPrimaryKey(), tasksReview);
384 
385         if (!isNew &&
386                 ((tasksReview.getUserId() != tasksReviewModelImpl.getOriginalUserId()) ||
387                 (tasksReview.getProposalId() != tasksReviewModelImpl.getOriginalProposalId()))) {
388             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_U_P,
389                 new Object[] {
390                     new Long(tasksReviewModelImpl.getOriginalUserId()),
391                     new Long(tasksReviewModelImpl.getOriginalProposalId())
392                 });
393         }
394 
395         if (isNew ||
396                 ((tasksReview.getUserId() != tasksReviewModelImpl.getOriginalUserId()) ||
397                 (tasksReview.getProposalId() != tasksReviewModelImpl.getOriginalProposalId()))) {
398             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_P,
399                 new Object[] {
400                     new Long(tasksReview.getUserId()),
401                     new Long(tasksReview.getProposalId())
402                 }, tasksReview);
403         }
404 
405         return tasksReview;
406     }
407 
408     public TasksReview findByPrimaryKey(long reviewId)
409         throws NoSuchReviewException, SystemException {
410         TasksReview tasksReview = fetchByPrimaryKey(reviewId);
411 
412         if (tasksReview == null) {
413             if (_log.isWarnEnabled()) {
414                 _log.warn("No TasksReview exists with the primary key " +
415                     reviewId);
416             }
417 
418             throw new NoSuchReviewException(
419                 "No TasksReview exists with the primary key " + reviewId);
420         }
421 
422         return tasksReview;
423     }
424 
425     public TasksReview fetchByPrimaryKey(long reviewId)
426         throws SystemException {
427         TasksReview tasksReview = (TasksReview)EntityCacheUtil.getResult(TasksReviewModelImpl.ENTITY_CACHE_ENABLED,
428                 TasksReviewImpl.class, reviewId, this);
429 
430         if (tasksReview == null) {
431             Session session = null;
432 
433             try {
434                 session = openSession();
435 
436                 tasksReview = (TasksReview)session.get(TasksReviewImpl.class,
437                         new Long(reviewId));
438             }
439             catch (Exception e) {
440                 throw processException(e);
441             }
442             finally {
443                 if (tasksReview != null) {
444                     cacheResult(tasksReview);
445                 }
446 
447                 closeSession(session);
448             }
449         }
450 
451         return tasksReview;
452     }
453 
454     public List<TasksReview> findByUserId(long userId)
455         throws SystemException {
456         Object[] finderArgs = new Object[] { new Long(userId) };
457 
458         List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_USERID,
459                 finderArgs, this);
460 
461         if (list == null) {
462             Session session = null;
463 
464             try {
465                 session = openSession();
466 
467                 StringBuilder query = new StringBuilder();
468 
469                 query.append(
470                     "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
471 
472                 query.append("userId = ?");
473 
474                 query.append(" ");
475 
476                 query.append("ORDER BY ");
477 
478                 query.append("createDate ASC");
479 
480                 Query q = session.createQuery(query.toString());
481 
482                 QueryPos qPos = QueryPos.getInstance(q);
483 
484                 qPos.add(userId);
485 
486                 list = q.list();
487             }
488             catch (Exception e) {
489                 throw processException(e);
490             }
491             finally {
492                 if (list == null) {
493                     list = new ArrayList<TasksReview>();
494                 }
495 
496                 cacheResult(list);
497 
498                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_USERID,
499                     finderArgs, list);
500 
501                 closeSession(session);
502             }
503         }
504 
505         return list;
506     }
507 
508     public List<TasksReview> findByUserId(long userId, int start, int end)
509         throws SystemException {
510         return findByUserId(userId, start, end, null);
511     }
512 
513     public List<TasksReview> findByUserId(long userId, int start, int end,
514         OrderByComparator obc) throws SystemException {
515         Object[] finderArgs = new Object[] {
516                 new Long(userId),
517                 
518                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
519             };
520 
521         List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_USERID,
522                 finderArgs, this);
523 
524         if (list == null) {
525             Session session = null;
526 
527             try {
528                 session = openSession();
529 
530                 StringBuilder query = new StringBuilder();
531 
532                 query.append(
533                     "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
534 
535                 query.append("userId = ?");
536 
537                 query.append(" ");
538 
539                 if (obc != null) {
540                     query.append("ORDER BY ");
541                     query.append(obc.getOrderBy());
542                 }
543 
544                 else {
545                     query.append("ORDER BY ");
546 
547                     query.append("createDate ASC");
548                 }
549 
550                 Query q = session.createQuery(query.toString());
551 
552                 QueryPos qPos = QueryPos.getInstance(q);
553 
554                 qPos.add(userId);
555 
556                 list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
557                         start, end);
558             }
559             catch (Exception e) {
560                 throw processException(e);
561             }
562             finally {
563                 if (list == null) {
564                     list = new ArrayList<TasksReview>();
565                 }
566 
567                 cacheResult(list);
568 
569                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_USERID,
570                     finderArgs, list);
571 
572                 closeSession(session);
573             }
574         }
575 
576         return list;
577     }
578 
579     public TasksReview findByUserId_First(long userId, OrderByComparator obc)
580         throws NoSuchReviewException, SystemException {
581         List<TasksReview> list = findByUserId(userId, 0, 1, obc);
582 
583         if (list.isEmpty()) {
584             StringBuilder msg = new StringBuilder();
585 
586             msg.append("No TasksReview exists with the key {");
587 
588             msg.append("userId=" + userId);
589 
590             msg.append(StringPool.CLOSE_CURLY_BRACE);
591 
592             throw new NoSuchReviewException(msg.toString());
593         }
594         else {
595             return list.get(0);
596         }
597     }
598 
599     public TasksReview findByUserId_Last(long userId, OrderByComparator obc)
600         throws NoSuchReviewException, SystemException {
601         int count = countByUserId(userId);
602 
603         List<TasksReview> list = findByUserId(userId, count - 1, count, obc);
604 
605         if (list.isEmpty()) {
606             StringBuilder msg = new StringBuilder();
607 
608             msg.append("No TasksReview exists with the key {");
609 
610             msg.append("userId=" + userId);
611 
612             msg.append(StringPool.CLOSE_CURLY_BRACE);
613 
614             throw new NoSuchReviewException(msg.toString());
615         }
616         else {
617             return list.get(0);
618         }
619     }
620 
621     public TasksReview[] findByUserId_PrevAndNext(long reviewId, long userId,
622         OrderByComparator obc) throws NoSuchReviewException, SystemException {
623         TasksReview tasksReview = findByPrimaryKey(reviewId);
624 
625         int count = countByUserId(userId);
626 
627         Session session = null;
628 
629         try {
630             session = openSession();
631 
632             StringBuilder query = new StringBuilder();
633 
634             query.append(
635                 "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
636 
637             query.append("userId = ?");
638 
639             query.append(" ");
640 
641             if (obc != null) {
642                 query.append("ORDER BY ");
643                 query.append(obc.getOrderBy());
644             }
645 
646             else {
647                 query.append("ORDER BY ");
648 
649                 query.append("createDate ASC");
650             }
651 
652             Query q = session.createQuery(query.toString());
653 
654             QueryPos qPos = QueryPos.getInstance(q);
655 
656             qPos.add(userId);
657 
658             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
659                     tasksReview);
660 
661             TasksReview[] array = new TasksReviewImpl[3];
662 
663             array[0] = (TasksReview)objArray[0];
664             array[1] = (TasksReview)objArray[1];
665             array[2] = (TasksReview)objArray[2];
666 
667             return array;
668         }
669         catch (Exception e) {
670             throw processException(e);
671         }
672         finally {
673             closeSession(session);
674         }
675     }
676 
677     public List<TasksReview> findByProposalId(long proposalId)
678         throws SystemException {
679         Object[] finderArgs = new Object[] { new Long(proposalId) };
680 
681         List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_PROPOSALID,
682                 finderArgs, this);
683 
684         if (list == null) {
685             Session session = null;
686 
687             try {
688                 session = openSession();
689 
690                 StringBuilder query = new StringBuilder();
691 
692                 query.append(
693                     "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
694 
695                 query.append("proposalId = ?");
696 
697                 query.append(" ");
698 
699                 query.append("ORDER BY ");
700 
701                 query.append("createDate ASC");
702 
703                 Query q = session.createQuery(query.toString());
704 
705                 QueryPos qPos = QueryPos.getInstance(q);
706 
707                 qPos.add(proposalId);
708 
709                 list = q.list();
710             }
711             catch (Exception e) {
712                 throw processException(e);
713             }
714             finally {
715                 if (list == null) {
716                     list = new ArrayList<TasksReview>();
717                 }
718 
719                 cacheResult(list);
720 
721                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_PROPOSALID,
722                     finderArgs, list);
723 
724                 closeSession(session);
725             }
726         }
727 
728         return list;
729     }
730 
731     public List<TasksReview> findByProposalId(long proposalId, int start,
732         int end) throws SystemException {
733         return findByProposalId(proposalId, start, end, null);
734     }
735 
736     public List<TasksReview> findByProposalId(long proposalId, int start,
737         int end, OrderByComparator obc) throws SystemException {
738         Object[] finderArgs = new Object[] {
739                 new Long(proposalId),
740                 
741                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
742             };
743 
744         List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_PROPOSALID,
745                 finderArgs, this);
746 
747         if (list == null) {
748             Session session = null;
749 
750             try {
751                 session = openSession();
752 
753                 StringBuilder query = new StringBuilder();
754 
755                 query.append(
756                     "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
757 
758                 query.append("proposalId = ?");
759 
760                 query.append(" ");
761 
762                 if (obc != null) {
763                     query.append("ORDER BY ");
764                     query.append(obc.getOrderBy());
765                 }
766 
767                 else {
768                     query.append("ORDER BY ");
769 
770                     query.append("createDate ASC");
771                 }
772 
773                 Query q = session.createQuery(query.toString());
774 
775                 QueryPos qPos = QueryPos.getInstance(q);
776 
777                 qPos.add(proposalId);
778 
779                 list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
780                         start, end);
781             }
782             catch (Exception e) {
783                 throw processException(e);
784             }
785             finally {
786                 if (list == null) {
787                     list = new ArrayList<TasksReview>();
788                 }
789 
790                 cacheResult(list);
791 
792                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_PROPOSALID,
793                     finderArgs, list);
794 
795                 closeSession(session);
796             }
797         }
798 
799         return list;
800     }
801 
802     public TasksReview findByProposalId_First(long proposalId,
803         OrderByComparator obc) throws NoSuchReviewException, SystemException {
804         List<TasksReview> list = findByProposalId(proposalId, 0, 1, obc);
805 
806         if (list.isEmpty()) {
807             StringBuilder msg = new StringBuilder();
808 
809             msg.append("No TasksReview exists with the key {");
810 
811             msg.append("proposalId=" + proposalId);
812 
813             msg.append(StringPool.CLOSE_CURLY_BRACE);
814 
815             throw new NoSuchReviewException(msg.toString());
816         }
817         else {
818             return list.get(0);
819         }
820     }
821 
822     public TasksReview findByProposalId_Last(long proposalId,
823         OrderByComparator obc) throws NoSuchReviewException, SystemException {
824         int count = countByProposalId(proposalId);
825 
826         List<TasksReview> list = findByProposalId(proposalId, count - 1, count,
827                 obc);
828 
829         if (list.isEmpty()) {
830             StringBuilder msg = new StringBuilder();
831 
832             msg.append("No TasksReview exists with the key {");
833 
834             msg.append("proposalId=" + proposalId);
835 
836             msg.append(StringPool.CLOSE_CURLY_BRACE);
837 
838             throw new NoSuchReviewException(msg.toString());
839         }
840         else {
841             return list.get(0);
842         }
843     }
844 
845     public TasksReview[] findByProposalId_PrevAndNext(long reviewId,
846         long proposalId, OrderByComparator obc)
847         throws NoSuchReviewException, SystemException {
848         TasksReview tasksReview = findByPrimaryKey(reviewId);
849 
850         int count = countByProposalId(proposalId);
851 
852         Session session = null;
853 
854         try {
855             session = openSession();
856 
857             StringBuilder query = new StringBuilder();
858 
859             query.append(
860                 "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
861 
862             query.append("proposalId = ?");
863 
864             query.append(" ");
865 
866             if (obc != null) {
867                 query.append("ORDER BY ");
868                 query.append(obc.getOrderBy());
869             }
870 
871             else {
872                 query.append("ORDER BY ");
873 
874                 query.append("createDate ASC");
875             }
876 
877             Query q = session.createQuery(query.toString());
878 
879             QueryPos qPos = QueryPos.getInstance(q);
880 
881             qPos.add(proposalId);
882 
883             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
884                     tasksReview);
885 
886             TasksReview[] array = new TasksReviewImpl[3];
887 
888             array[0] = (TasksReview)objArray[0];
889             array[1] = (TasksReview)objArray[1];
890             array[2] = (TasksReview)objArray[2];
891 
892             return array;
893         }
894         catch (Exception e) {
895             throw processException(e);
896         }
897         finally {
898             closeSession(session);
899         }
900     }
901 
902     public TasksReview findByU_P(long userId, long proposalId)
903         throws NoSuchReviewException, SystemException {
904         TasksReview tasksReview = fetchByU_P(userId, proposalId);
905 
906         if (tasksReview == null) {
907             StringBuilder msg = new StringBuilder();
908 
909             msg.append("No TasksReview exists with the key {");
910 
911             msg.append("userId=" + userId);
912 
913             msg.append(", ");
914             msg.append("proposalId=" + proposalId);
915 
916             msg.append(StringPool.CLOSE_CURLY_BRACE);
917 
918             if (_log.isWarnEnabled()) {
919                 _log.warn(msg.toString());
920             }
921 
922             throw new NoSuchReviewException(msg.toString());
923         }
924 
925         return tasksReview;
926     }
927 
928     public TasksReview fetchByU_P(long userId, long proposalId)
929         throws SystemException {
930         return fetchByU_P(userId, proposalId, true);
931     }
932 
933     public TasksReview fetchByU_P(long userId, long proposalId,
934         boolean retrieveFromCache) throws SystemException {
935         Object[] finderArgs = new Object[] {
936                 new Long(userId), new Long(proposalId)
937             };
938 
939         Object result = null;
940 
941         if (retrieveFromCache) {
942             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_U_P,
943                     finderArgs, this);
944         }
945 
946         if (result == null) {
947             Session session = null;
948 
949             try {
950                 session = openSession();
951 
952                 StringBuilder query = new StringBuilder();
953 
954                 query.append(
955                     "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
956 
957                 query.append("userId = ?");
958 
959                 query.append(" AND ");
960 
961                 query.append("proposalId = ?");
962 
963                 query.append(" ");
964 
965                 query.append("ORDER BY ");
966 
967                 query.append("createDate ASC");
968 
969                 Query q = session.createQuery(query.toString());
970 
971                 QueryPos qPos = QueryPos.getInstance(q);
972 
973                 qPos.add(userId);
974 
975                 qPos.add(proposalId);
976 
977                 List<TasksReview> list = q.list();
978 
979                 result = list;
980 
981                 TasksReview tasksReview = null;
982 
983                 if (list.isEmpty()) {
984                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_P,
985                         finderArgs, list);
986                 }
987                 else {
988                     tasksReview = list.get(0);
989 
990                     cacheResult(tasksReview);
991 
992                     if ((tasksReview.getUserId() != userId) ||
993                             (tasksReview.getProposalId() != proposalId)) {
994                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_P,
995                             finderArgs, list);
996                     }
997                 }
998 
999                 return tasksReview;
1000            }
1001            catch (Exception e) {
1002                throw processException(e);
1003            }
1004            finally {
1005                if (result == null) {
1006                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_U_P,
1007                        finderArgs, new ArrayList<TasksReview>());
1008                }
1009
1010                closeSession(session);
1011            }
1012        }
1013        else {
1014            if (result instanceof List) {
1015                return null;
1016            }
1017            else {
1018                return (TasksReview)result;
1019            }
1020        }
1021    }
1022
1023    public List<TasksReview> findByP_S(long proposalId, int stage)
1024        throws SystemException {
1025        Object[] finderArgs = new Object[] {
1026                new Long(proposalId), new Integer(stage)
1027            };
1028
1029        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_P_S,
1030                finderArgs, this);
1031
1032        if (list == null) {
1033            Session session = null;
1034
1035            try {
1036                session = openSession();
1037
1038                StringBuilder query = new StringBuilder();
1039
1040                query.append(
1041                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1042
1043                query.append("proposalId = ?");
1044
1045                query.append(" AND ");
1046
1047                query.append("stage = ?");
1048
1049                query.append(" ");
1050
1051                query.append("ORDER BY ");
1052
1053                query.append("createDate ASC");
1054
1055                Query q = session.createQuery(query.toString());
1056
1057                QueryPos qPos = QueryPos.getInstance(q);
1058
1059                qPos.add(proposalId);
1060
1061                qPos.add(stage);
1062
1063                list = q.list();
1064            }
1065            catch (Exception e) {
1066                throw processException(e);
1067            }
1068            finally {
1069                if (list == null) {
1070                    list = new ArrayList<TasksReview>();
1071                }
1072
1073                cacheResult(list);
1074
1075                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_P_S, finderArgs,
1076                    list);
1077
1078                closeSession(session);
1079            }
1080        }
1081
1082        return list;
1083    }
1084
1085    public List<TasksReview> findByP_S(long proposalId, int stage, int start,
1086        int end) throws SystemException {
1087        return findByP_S(proposalId, stage, start, end, null);
1088    }
1089
1090    public List<TasksReview> findByP_S(long proposalId, int stage, int start,
1091        int end, OrderByComparator obc) throws SystemException {
1092        Object[] finderArgs = new Object[] {
1093                new Long(proposalId), new Integer(stage),
1094                
1095                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1096            };
1097
1098        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_P_S,
1099                finderArgs, this);
1100
1101        if (list == null) {
1102            Session session = null;
1103
1104            try {
1105                session = openSession();
1106
1107                StringBuilder query = new StringBuilder();
1108
1109                query.append(
1110                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1111
1112                query.append("proposalId = ?");
1113
1114                query.append(" AND ");
1115
1116                query.append("stage = ?");
1117
1118                query.append(" ");
1119
1120                if (obc != null) {
1121                    query.append("ORDER BY ");
1122                    query.append(obc.getOrderBy());
1123                }
1124
1125                else {
1126                    query.append("ORDER BY ");
1127
1128                    query.append("createDate ASC");
1129                }
1130
1131                Query q = session.createQuery(query.toString());
1132
1133                QueryPos qPos = QueryPos.getInstance(q);
1134
1135                qPos.add(proposalId);
1136
1137                qPos.add(stage);
1138
1139                list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
1140                        start, end);
1141            }
1142            catch (Exception e) {
1143                throw processException(e);
1144            }
1145            finally {
1146                if (list == null) {
1147                    list = new ArrayList<TasksReview>();
1148                }
1149
1150                cacheResult(list);
1151
1152                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_P_S,
1153                    finderArgs, list);
1154
1155                closeSession(session);
1156            }
1157        }
1158
1159        return list;
1160    }
1161
1162    public TasksReview findByP_S_First(long proposalId, int stage,
1163        OrderByComparator obc) throws NoSuchReviewException, SystemException {
1164        List<TasksReview> list = findByP_S(proposalId, stage, 0, 1, obc);
1165
1166        if (list.isEmpty()) {
1167            StringBuilder msg = new StringBuilder();
1168
1169            msg.append("No TasksReview exists with the key {");
1170
1171            msg.append("proposalId=" + proposalId);
1172
1173            msg.append(", ");
1174            msg.append("stage=" + stage);
1175
1176            msg.append(StringPool.CLOSE_CURLY_BRACE);
1177
1178            throw new NoSuchReviewException(msg.toString());
1179        }
1180        else {
1181            return list.get(0);
1182        }
1183    }
1184
1185    public TasksReview findByP_S_Last(long proposalId, int stage,
1186        OrderByComparator obc) throws NoSuchReviewException, SystemException {
1187        int count = countByP_S(proposalId, stage);
1188
1189        List<TasksReview> list = findByP_S(proposalId, stage, count - 1, count,
1190                obc);
1191
1192        if (list.isEmpty()) {
1193            StringBuilder msg = new StringBuilder();
1194
1195            msg.append("No TasksReview exists with the key {");
1196
1197            msg.append("proposalId=" + proposalId);
1198
1199            msg.append(", ");
1200            msg.append("stage=" + stage);
1201
1202            msg.append(StringPool.CLOSE_CURLY_BRACE);
1203
1204            throw new NoSuchReviewException(msg.toString());
1205        }
1206        else {
1207            return list.get(0);
1208        }
1209    }
1210
1211    public TasksReview[] findByP_S_PrevAndNext(long reviewId, long proposalId,
1212        int stage, OrderByComparator obc)
1213        throws NoSuchReviewException, SystemException {
1214        TasksReview tasksReview = findByPrimaryKey(reviewId);
1215
1216        int count = countByP_S(proposalId, stage);
1217
1218        Session session = null;
1219
1220        try {
1221            session = openSession();
1222
1223            StringBuilder query = new StringBuilder();
1224
1225            query.append(
1226                "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1227
1228            query.append("proposalId = ?");
1229
1230            query.append(" AND ");
1231
1232            query.append("stage = ?");
1233
1234            query.append(" ");
1235
1236            if (obc != null) {
1237                query.append("ORDER BY ");
1238                query.append(obc.getOrderBy());
1239            }
1240
1241            else {
1242                query.append("ORDER BY ");
1243
1244                query.append("createDate ASC");
1245            }
1246
1247            Query q = session.createQuery(query.toString());
1248
1249            QueryPos qPos = QueryPos.getInstance(q);
1250
1251            qPos.add(proposalId);
1252
1253            qPos.add(stage);
1254
1255            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1256                    tasksReview);
1257
1258            TasksReview[] array = new TasksReviewImpl[3];
1259
1260            array[0] = (TasksReview)objArray[0];
1261            array[1] = (TasksReview)objArray[1];
1262            array[2] = (TasksReview)objArray[2];
1263
1264            return array;
1265        }
1266        catch (Exception e) {
1267            throw processException(e);
1268        }
1269        finally {
1270            closeSession(session);
1271        }
1272    }
1273
1274    public List<TasksReview> findByP_S_C(long proposalId, int stage,
1275        boolean completed) throws SystemException {
1276        Object[] finderArgs = new Object[] {
1277                new Long(proposalId), new Integer(stage),
1278                Boolean.valueOf(completed)
1279            };
1280
1281        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_P_S_C,
1282                finderArgs, this);
1283
1284        if (list == null) {
1285            Session session = null;
1286
1287            try {
1288                session = openSession();
1289
1290                StringBuilder query = new StringBuilder();
1291
1292                query.append(
1293                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1294
1295                query.append("proposalId = ?");
1296
1297                query.append(" AND ");
1298
1299                query.append("stage = ?");
1300
1301                query.append(" AND ");
1302
1303                query.append("completed = ?");
1304
1305                query.append(" ");
1306
1307                query.append("ORDER BY ");
1308
1309                query.append("createDate ASC");
1310
1311                Query q = session.createQuery(query.toString());
1312
1313                QueryPos qPos = QueryPos.getInstance(q);
1314
1315                qPos.add(proposalId);
1316
1317                qPos.add(stage);
1318
1319                qPos.add(completed);
1320
1321                list = q.list();
1322            }
1323            catch (Exception e) {
1324                throw processException(e);
1325            }
1326            finally {
1327                if (list == null) {
1328                    list = new ArrayList<TasksReview>();
1329                }
1330
1331                cacheResult(list);
1332
1333                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_P_S_C,
1334                    finderArgs, list);
1335
1336                closeSession(session);
1337            }
1338        }
1339
1340        return list;
1341    }
1342
1343    public List<TasksReview> findByP_S_C(long proposalId, int stage,
1344        boolean completed, int start, int end) throws SystemException {
1345        return findByP_S_C(proposalId, stage, completed, start, end, null);
1346    }
1347
1348    public List<TasksReview> findByP_S_C(long proposalId, int stage,
1349        boolean completed, int start, int end, OrderByComparator obc)
1350        throws SystemException {
1351        Object[] finderArgs = new Object[] {
1352                new Long(proposalId), new Integer(stage),
1353                Boolean.valueOf(completed),
1354                
1355                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1356            };
1357
1358        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_P_S_C,
1359                finderArgs, this);
1360
1361        if (list == null) {
1362            Session session = null;
1363
1364            try {
1365                session = openSession();
1366
1367                StringBuilder query = new StringBuilder();
1368
1369                query.append(
1370                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1371
1372                query.append("proposalId = ?");
1373
1374                query.append(" AND ");
1375
1376                query.append("stage = ?");
1377
1378                query.append(" AND ");
1379
1380                query.append("completed = ?");
1381
1382                query.append(" ");
1383
1384                if (obc != null) {
1385                    query.append("ORDER BY ");
1386                    query.append(obc.getOrderBy());
1387                }
1388
1389                else {
1390                    query.append("ORDER BY ");
1391
1392                    query.append("createDate ASC");
1393                }
1394
1395                Query q = session.createQuery(query.toString());
1396
1397                QueryPos qPos = QueryPos.getInstance(q);
1398
1399                qPos.add(proposalId);
1400
1401                qPos.add(stage);
1402
1403                qPos.add(completed);
1404
1405                list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
1406                        start, end);
1407            }
1408            catch (Exception e) {
1409                throw processException(e);
1410            }
1411            finally {
1412                if (list == null) {
1413                    list = new ArrayList<TasksReview>();
1414                }
1415
1416                cacheResult(list);
1417
1418                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_P_S_C,
1419                    finderArgs, list);
1420
1421                closeSession(session);
1422            }
1423        }
1424
1425        return list;
1426    }
1427
1428    public TasksReview findByP_S_C_First(long proposalId, int stage,
1429        boolean completed, OrderByComparator obc)
1430        throws NoSuchReviewException, SystemException {
1431        List<TasksReview> list = findByP_S_C(proposalId, stage, completed, 0,
1432                1, obc);
1433
1434        if (list.isEmpty()) {
1435            StringBuilder msg = new StringBuilder();
1436
1437            msg.append("No TasksReview exists with the key {");
1438
1439            msg.append("proposalId=" + proposalId);
1440
1441            msg.append(", ");
1442            msg.append("stage=" + stage);
1443
1444            msg.append(", ");
1445            msg.append("completed=" + completed);
1446
1447            msg.append(StringPool.CLOSE_CURLY_BRACE);
1448
1449            throw new NoSuchReviewException(msg.toString());
1450        }
1451        else {
1452            return list.get(0);
1453        }
1454    }
1455
1456    public TasksReview findByP_S_C_Last(long proposalId, int stage,
1457        boolean completed, OrderByComparator obc)
1458        throws NoSuchReviewException, SystemException {
1459        int count = countByP_S_C(proposalId, stage, completed);
1460
1461        List<TasksReview> list = findByP_S_C(proposalId, stage, completed,
1462                count - 1, count, obc);
1463
1464        if (list.isEmpty()) {
1465            StringBuilder msg = new StringBuilder();
1466
1467            msg.append("No TasksReview exists with the key {");
1468
1469            msg.append("proposalId=" + proposalId);
1470
1471            msg.append(", ");
1472            msg.append("stage=" + stage);
1473
1474            msg.append(", ");
1475            msg.append("completed=" + completed);
1476
1477            msg.append(StringPool.CLOSE_CURLY_BRACE);
1478
1479            throw new NoSuchReviewException(msg.toString());
1480        }
1481        else {
1482            return list.get(0);
1483        }
1484    }
1485
1486    public TasksReview[] findByP_S_C_PrevAndNext(long reviewId,
1487        long proposalId, int stage, boolean completed, OrderByComparator obc)
1488        throws NoSuchReviewException, SystemException {
1489        TasksReview tasksReview = findByPrimaryKey(reviewId);
1490
1491        int count = countByP_S_C(proposalId, stage, completed);
1492
1493        Session session = null;
1494
1495        try {
1496            session = openSession();
1497
1498            StringBuilder query = new StringBuilder();
1499
1500            query.append(
1501                "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1502
1503            query.append("proposalId = ?");
1504
1505            query.append(" AND ");
1506
1507            query.append("stage = ?");
1508
1509            query.append(" AND ");
1510
1511            query.append("completed = ?");
1512
1513            query.append(" ");
1514
1515            if (obc != null) {
1516                query.append("ORDER BY ");
1517                query.append(obc.getOrderBy());
1518            }
1519
1520            else {
1521                query.append("ORDER BY ");
1522
1523                query.append("createDate ASC");
1524            }
1525
1526            Query q = session.createQuery(query.toString());
1527
1528            QueryPos qPos = QueryPos.getInstance(q);
1529
1530            qPos.add(proposalId);
1531
1532            qPos.add(stage);
1533
1534            qPos.add(completed);
1535
1536            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1537                    tasksReview);
1538
1539            TasksReview[] array = new TasksReviewImpl[3];
1540
1541            array[0] = (TasksReview)objArray[0];
1542            array[1] = (TasksReview)objArray[1];
1543            array[2] = (TasksReview)objArray[2];
1544
1545            return array;
1546        }
1547        catch (Exception e) {
1548            throw processException(e);
1549        }
1550        finally {
1551            closeSession(session);
1552        }
1553    }
1554
1555    public List<TasksReview> findByP_S_C_R(long proposalId, int stage,
1556        boolean completed, boolean rejected) throws SystemException {
1557        Object[] finderArgs = new Object[] {
1558                new Long(proposalId), new Integer(stage),
1559                Boolean.valueOf(completed), Boolean.valueOf(rejected)
1560            };
1561
1562        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_P_S_C_R,
1563                finderArgs, this);
1564
1565        if (list == null) {
1566            Session session = null;
1567
1568            try {
1569                session = openSession();
1570
1571                StringBuilder query = new StringBuilder();
1572
1573                query.append(
1574                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1575
1576                query.append("proposalId = ?");
1577
1578                query.append(" AND ");
1579
1580                query.append("stage = ?");
1581
1582                query.append(" AND ");
1583
1584                query.append("completed = ?");
1585
1586                query.append(" AND ");
1587
1588                query.append("rejected = ?");
1589
1590                query.append(" ");
1591
1592                query.append("ORDER BY ");
1593
1594                query.append("createDate ASC");
1595
1596                Query q = session.createQuery(query.toString());
1597
1598                QueryPos qPos = QueryPos.getInstance(q);
1599
1600                qPos.add(proposalId);
1601
1602                qPos.add(stage);
1603
1604                qPos.add(completed);
1605
1606                qPos.add(rejected);
1607
1608                list = q.list();
1609            }
1610            catch (Exception e) {
1611                throw processException(e);
1612            }
1613            finally {
1614                if (list == null) {
1615                    list = new ArrayList<TasksReview>();
1616                }
1617
1618                cacheResult(list);
1619
1620                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_P_S_C_R,
1621                    finderArgs, list);
1622
1623                closeSession(session);
1624            }
1625        }
1626
1627        return list;
1628    }
1629
1630    public List<TasksReview> findByP_S_C_R(long proposalId, int stage,
1631        boolean completed, boolean rejected, int start, int end)
1632        throws SystemException {
1633        return findByP_S_C_R(proposalId, stage, completed, rejected, start,
1634            end, null);
1635    }
1636
1637    public List<TasksReview> findByP_S_C_R(long proposalId, int stage,
1638        boolean completed, boolean rejected, int start, int end,
1639        OrderByComparator obc) throws SystemException {
1640        Object[] finderArgs = new Object[] {
1641                new Long(proposalId), new Integer(stage),
1642                Boolean.valueOf(completed), Boolean.valueOf(rejected),
1643                
1644                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1645            };
1646
1647        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_P_S_C_R,
1648                finderArgs, this);
1649
1650        if (list == null) {
1651            Session session = null;
1652
1653            try {
1654                session = openSession();
1655
1656                StringBuilder query = new StringBuilder();
1657
1658                query.append(
1659                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1660
1661                query.append("proposalId = ?");
1662
1663                query.append(" AND ");
1664
1665                query.append("stage = ?");
1666
1667                query.append(" AND ");
1668
1669                query.append("completed = ?");
1670
1671                query.append(" AND ");
1672
1673                query.append("rejected = ?");
1674
1675                query.append(" ");
1676
1677                if (obc != null) {
1678                    query.append("ORDER BY ");
1679                    query.append(obc.getOrderBy());
1680                }
1681
1682                else {
1683                    query.append("ORDER BY ");
1684
1685                    query.append("createDate ASC");
1686                }
1687
1688                Query q = session.createQuery(query.toString());
1689
1690                QueryPos qPos = QueryPos.getInstance(q);
1691
1692                qPos.add(proposalId);
1693
1694                qPos.add(stage);
1695
1696                qPos.add(completed);
1697
1698                qPos.add(rejected);
1699
1700                list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
1701                        start, end);
1702            }
1703            catch (Exception e) {
1704                throw processException(e);
1705            }
1706            finally {
1707                if (list == null) {
1708                    list = new ArrayList<TasksReview>();
1709                }
1710
1711                cacheResult(list);
1712
1713                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_P_S_C_R,
1714                    finderArgs, list);
1715
1716                closeSession(session);
1717            }
1718        }
1719
1720        return list;
1721    }
1722
1723    public TasksReview findByP_S_C_R_First(long proposalId, int stage,
1724        boolean completed, boolean rejected, OrderByComparator obc)
1725        throws NoSuchReviewException, SystemException {
1726        List<TasksReview> list = findByP_S_C_R(proposalId, stage, completed,
1727                rejected, 0, 1, obc);
1728
1729        if (list.isEmpty()) {
1730            StringBuilder msg = new StringBuilder();
1731
1732            msg.append("No TasksReview exists with the key {");
1733
1734            msg.append("proposalId=" + proposalId);
1735
1736            msg.append(", ");
1737            msg.append("stage=" + stage);
1738
1739            msg.append(", ");
1740            msg.append("completed=" + completed);
1741
1742            msg.append(", ");
1743            msg.append("rejected=" + rejected);
1744
1745            msg.append(StringPool.CLOSE_CURLY_BRACE);
1746
1747            throw new NoSuchReviewException(msg.toString());
1748        }
1749        else {
1750            return list.get(0);
1751        }
1752    }
1753
1754    public TasksReview findByP_S_C_R_Last(long proposalId, int stage,
1755        boolean completed, boolean rejected, OrderByComparator obc)
1756        throws NoSuchReviewException, SystemException {
1757        int count = countByP_S_C_R(proposalId, stage, completed, rejected);
1758
1759        List<TasksReview> list = findByP_S_C_R(proposalId, stage, completed,
1760                rejected, count - 1, count, obc);
1761
1762        if (list.isEmpty()) {
1763            StringBuilder msg = new StringBuilder();
1764
1765            msg.append("No TasksReview exists with the key {");
1766
1767            msg.append("proposalId=" + proposalId);
1768
1769            msg.append(", ");
1770            msg.append("stage=" + stage);
1771
1772            msg.append(", ");
1773            msg.append("completed=" + completed);
1774
1775            msg.append(", ");
1776            msg.append("rejected=" + rejected);
1777
1778            msg.append(StringPool.CLOSE_CURLY_BRACE);
1779
1780            throw new NoSuchReviewException(msg.toString());
1781        }
1782        else {
1783            return list.get(0);
1784        }
1785    }
1786
1787    public TasksReview[] findByP_S_C_R_PrevAndNext(long reviewId,
1788        long proposalId, int stage, boolean completed, boolean rejected,
1789        OrderByComparator obc) throws NoSuchReviewException, SystemException {
1790        TasksReview tasksReview = findByPrimaryKey(reviewId);
1791
1792        int count = countByP_S_C_R(proposalId, stage, completed, rejected);
1793
1794        Session session = null;
1795
1796        try {
1797            session = openSession();
1798
1799            StringBuilder query = new StringBuilder();
1800
1801            query.append(
1802                "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
1803
1804            query.append("proposalId = ?");
1805
1806            query.append(" AND ");
1807
1808            query.append("stage = ?");
1809
1810            query.append(" AND ");
1811
1812            query.append("completed = ?");
1813
1814            query.append(" AND ");
1815
1816            query.append("rejected = ?");
1817
1818            query.append(" ");
1819
1820            if (obc != null) {
1821                query.append("ORDER BY ");
1822                query.append(obc.getOrderBy());
1823            }
1824
1825            else {
1826                query.append("ORDER BY ");
1827
1828                query.append("createDate ASC");
1829            }
1830
1831            Query q = session.createQuery(query.toString());
1832
1833            QueryPos qPos = QueryPos.getInstance(q);
1834
1835            qPos.add(proposalId);
1836
1837            qPos.add(stage);
1838
1839            qPos.add(completed);
1840
1841            qPos.add(rejected);
1842
1843            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1844                    tasksReview);
1845
1846            TasksReview[] array = new TasksReviewImpl[3];
1847
1848            array[0] = (TasksReview)objArray[0];
1849            array[1] = (TasksReview)objArray[1];
1850            array[2] = (TasksReview)objArray[2];
1851
1852            return array;
1853        }
1854        catch (Exception e) {
1855            throw processException(e);
1856        }
1857        finally {
1858            closeSession(session);
1859        }
1860    }
1861
1862    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1863        throws SystemException {
1864        Session session = null;
1865
1866        try {
1867            session = openSession();
1868
1869            dynamicQuery.compile(session);
1870
1871            return dynamicQuery.list();
1872        }
1873        catch (Exception e) {
1874            throw processException(e);
1875        }
1876        finally {
1877            closeSession(session);
1878        }
1879    }
1880
1881    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1882        int start, int end) throws SystemException {
1883        Session session = null;
1884
1885        try {
1886            session = openSession();
1887
1888            dynamicQuery.setLimit(start, end);
1889
1890            dynamicQuery.compile(session);
1891
1892            return dynamicQuery.list();
1893        }
1894        catch (Exception e) {
1895            throw processException(e);
1896        }
1897        finally {
1898            closeSession(session);
1899        }
1900    }
1901
1902    public List<TasksReview> findAll() throws SystemException {
1903        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1904    }
1905
1906    public List<TasksReview> findAll(int start, int end)
1907        throws SystemException {
1908        return findAll(start, end, null);
1909    }
1910
1911    public List<TasksReview> findAll(int start, int end, OrderByComparator obc)
1912        throws SystemException {
1913        Object[] finderArgs = new Object[] {
1914                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1915            };
1916
1917        List<TasksReview> list = (List<TasksReview>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1918                finderArgs, this);
1919
1920        if (list == null) {
1921            Session session = null;
1922
1923            try {
1924                session = openSession();
1925
1926                StringBuilder query = new StringBuilder();
1927
1928                query.append(
1929                    "FROM com.liferay.portlet.tasks.model.TasksReview ");
1930
1931                if (obc != null) {
1932                    query.append("ORDER BY ");
1933                    query.append(obc.getOrderBy());
1934                }
1935
1936                else {
1937                    query.append("ORDER BY ");
1938
1939                    query.append("createDate ASC");
1940                }
1941
1942                Query q = session.createQuery(query.toString());
1943
1944                if (obc == null) {
1945                    list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
1946                            start, end, false);
1947
1948                    Collections.sort(list);
1949                }
1950                else {
1951                    list = (List<TasksReview>)QueryUtil.list(q, getDialect(),
1952                            start, end);
1953                }
1954            }
1955            catch (Exception e) {
1956                throw processException(e);
1957            }
1958            finally {
1959                if (list == null) {
1960                    list = new ArrayList<TasksReview>();
1961                }
1962
1963                cacheResult(list);
1964
1965                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1966
1967                closeSession(session);
1968            }
1969        }
1970
1971        return list;
1972    }
1973
1974    public void removeByUserId(long userId) throws SystemException {
1975        for (TasksReview tasksReview : findByUserId(userId)) {
1976            remove(tasksReview);
1977        }
1978    }
1979
1980    public void removeByProposalId(long proposalId) throws SystemException {
1981        for (TasksReview tasksReview : findByProposalId(proposalId)) {
1982            remove(tasksReview);
1983        }
1984    }
1985
1986    public void removeByU_P(long userId, long proposalId)
1987        throws NoSuchReviewException, SystemException {
1988        TasksReview tasksReview = findByU_P(userId, proposalId);
1989
1990        remove(tasksReview);
1991    }
1992
1993    public void removeByP_S(long proposalId, int stage)
1994        throws SystemException {
1995        for (TasksReview tasksReview : findByP_S(proposalId, stage)) {
1996            remove(tasksReview);
1997        }
1998    }
1999
2000    public void removeByP_S_C(long proposalId, int stage, boolean completed)
2001        throws SystemException {
2002        for (TasksReview tasksReview : findByP_S_C(proposalId, stage, completed)) {
2003            remove(tasksReview);
2004        }
2005    }
2006
2007    public void removeByP_S_C_R(long proposalId, int stage, boolean completed,
2008        boolean rejected) throws SystemException {
2009        for (TasksReview tasksReview : findByP_S_C_R(proposalId, stage,
2010                completed, rejected)) {
2011            remove(tasksReview);
2012        }
2013    }
2014
2015    public void removeAll() throws SystemException {
2016        for (TasksReview tasksReview : findAll()) {
2017            remove(tasksReview);
2018        }
2019    }
2020
2021    public int countByUserId(long userId) throws SystemException {
2022        Object[] finderArgs = new Object[] { new Long(userId) };
2023
2024        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_USERID,
2025                finderArgs, this);
2026
2027        if (count == null) {
2028            Session session = null;
2029
2030            try {
2031                session = openSession();
2032
2033                StringBuilder query = new StringBuilder();
2034
2035                query.append("SELECT COUNT(*) ");
2036                query.append(
2037                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2038
2039                query.append("userId = ?");
2040
2041                query.append(" ");
2042
2043                Query q = session.createQuery(query.toString());
2044
2045                QueryPos qPos = QueryPos.getInstance(q);
2046
2047                qPos.add(userId);
2048
2049                count = (Long)q.uniqueResult();
2050            }
2051            catch (Exception e) {
2052                throw processException(e);
2053            }
2054            finally {
2055                if (count == null) {
2056                    count = Long.valueOf(0);
2057                }
2058
2059                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_USERID,
2060                    finderArgs, count);
2061
2062                closeSession(session);
2063            }
2064        }
2065
2066        return count.intValue();
2067    }
2068
2069    public int countByProposalId(long proposalId) throws SystemException {
2070        Object[] finderArgs = new Object[] { new Long(proposalId) };
2071
2072        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_PROPOSALID,
2073                finderArgs, this);
2074
2075        if (count == null) {
2076            Session session = null;
2077
2078            try {
2079                session = openSession();
2080
2081                StringBuilder query = new StringBuilder();
2082
2083                query.append("SELECT COUNT(*) ");
2084                query.append(
2085                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2086
2087                query.append("proposalId = ?");
2088
2089                query.append(" ");
2090
2091                Query q = session.createQuery(query.toString());
2092
2093                QueryPos qPos = QueryPos.getInstance(q);
2094
2095                qPos.add(proposalId);
2096
2097                count = (Long)q.uniqueResult();
2098            }
2099            catch (Exception e) {
2100                throw processException(e);
2101            }
2102            finally {
2103                if (count == null) {
2104                    count = Long.valueOf(0);
2105                }
2106
2107                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_PROPOSALID,
2108                    finderArgs, count);
2109
2110                closeSession(session);
2111            }
2112        }
2113
2114        return count.intValue();
2115    }
2116
2117    public int countByU_P(long userId, long proposalId)
2118        throws SystemException {
2119        Object[] finderArgs = new Object[] {
2120                new Long(userId), new Long(proposalId)
2121            };
2122
2123        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_U_P,
2124                finderArgs, this);
2125
2126        if (count == null) {
2127            Session session = null;
2128
2129            try {
2130                session = openSession();
2131
2132                StringBuilder query = new StringBuilder();
2133
2134                query.append("SELECT COUNT(*) ");
2135                query.append(
2136                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2137
2138                query.append("userId = ?");
2139
2140                query.append(" AND ");
2141
2142                query.append("proposalId = ?");
2143
2144                query.append(" ");
2145
2146                Query q = session.createQuery(query.toString());
2147
2148                QueryPos qPos = QueryPos.getInstance(q);
2149
2150                qPos.add(userId);
2151
2152                qPos.add(proposalId);
2153
2154                count = (Long)q.uniqueResult();
2155            }
2156            catch (Exception e) {
2157                throw processException(e);
2158            }
2159            finally {
2160                if (count == null) {
2161                    count = Long.valueOf(0);
2162                }
2163
2164                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_U_P, finderArgs,
2165                    count);
2166
2167                closeSession(session);
2168            }
2169        }
2170
2171        return count.intValue();
2172    }
2173
2174    public int countByP_S(long proposalId, int stage) throws SystemException {
2175        Object[] finderArgs = new Object[] {
2176                new Long(proposalId), new Integer(stage)
2177            };
2178
2179        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_P_S,
2180                finderArgs, this);
2181
2182        if (count == null) {
2183            Session session = null;
2184
2185            try {
2186                session = openSession();
2187
2188                StringBuilder query = new StringBuilder();
2189
2190                query.append("SELECT COUNT(*) ");
2191                query.append(
2192                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2193
2194                query.append("proposalId = ?");
2195
2196                query.append(" AND ");
2197
2198                query.append("stage = ?");
2199
2200                query.append(" ");
2201
2202                Query q = session.createQuery(query.toString());
2203
2204                QueryPos qPos = QueryPos.getInstance(q);
2205
2206                qPos.add(proposalId);
2207
2208                qPos.add(stage);
2209
2210                count = (Long)q.uniqueResult();
2211            }
2212            catch (Exception e) {
2213                throw processException(e);
2214            }
2215            finally {
2216                if (count == null) {
2217                    count = Long.valueOf(0);
2218                }
2219
2220                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_P_S, finderArgs,
2221                    count);
2222
2223                closeSession(session);
2224            }
2225        }
2226
2227        return count.intValue();
2228    }
2229
2230    public int countByP_S_C(long proposalId, int stage, boolean completed)
2231        throws SystemException {
2232        Object[] finderArgs = new Object[] {
2233                new Long(proposalId), new Integer(stage),
2234                Boolean.valueOf(completed)
2235            };
2236
2237        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_P_S_C,
2238                finderArgs, this);
2239
2240        if (count == null) {
2241            Session session = null;
2242
2243            try {
2244                session = openSession();
2245
2246                StringBuilder query = new StringBuilder();
2247
2248                query.append("SELECT COUNT(*) ");
2249                query.append(
2250                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2251
2252                query.append("proposalId = ?");
2253
2254                query.append(" AND ");
2255
2256                query.append("stage = ?");
2257
2258                query.append(" AND ");
2259
2260                query.append("completed = ?");
2261
2262                query.append(" ");
2263
2264                Query q = session.createQuery(query.toString());
2265
2266                QueryPos qPos = QueryPos.getInstance(q);
2267
2268                qPos.add(proposalId);
2269
2270                qPos.add(stage);
2271
2272                qPos.add(completed);
2273
2274                count = (Long)q.uniqueResult();
2275            }
2276            catch (Exception e) {
2277                throw processException(e);
2278            }
2279            finally {
2280                if (count == null) {
2281                    count = Long.valueOf(0);
2282                }
2283
2284                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_P_S_C,
2285                    finderArgs, count);
2286
2287                closeSession(session);
2288            }
2289        }
2290
2291        return count.intValue();
2292    }
2293
2294    public int countByP_S_C_R(long proposalId, int stage, boolean completed,
2295        boolean rejected) throws SystemException {
2296        Object[] finderArgs = new Object[] {
2297                new Long(proposalId), new Integer(stage),
2298                Boolean.valueOf(completed), Boolean.valueOf(rejected)
2299            };
2300
2301        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_P_S_C_R,
2302                finderArgs, this);
2303
2304        if (count == null) {
2305            Session session = null;
2306
2307            try {
2308                session = openSession();
2309
2310                StringBuilder query = new StringBuilder();
2311
2312                query.append("SELECT COUNT(*) ");
2313                query.append(
2314                    "FROM com.liferay.portlet.tasks.model.TasksReview WHERE ");
2315
2316                query.append("proposalId = ?");
2317
2318                query.append(" AND ");
2319
2320                query.append("stage = ?");
2321
2322                query.append(" AND ");
2323
2324                query.append("completed = ?");
2325
2326                query.append(" AND ");
2327
2328                query.append("rejected = ?");
2329
2330                query.append(" ");
2331
2332                Query q = session.createQuery(query.toString());
2333
2334                QueryPos qPos = QueryPos.getInstance(q);
2335
2336                qPos.add(proposalId);
2337
2338                qPos.add(stage);
2339
2340                qPos.add(completed);
2341
2342                qPos.add(rejected);
2343
2344                count = (Long)q.uniqueResult();
2345            }
2346            catch (Exception e) {
2347                throw processException(e);
2348            }
2349            finally {
2350                if (count == null) {
2351                    count = Long.valueOf(0);
2352                }
2353
2354                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_P_S_C_R,
2355                    finderArgs, count);
2356
2357                closeSession(session);
2358            }
2359        }
2360
2361        return count.intValue();
2362    }
2363
2364    public int countAll() throws SystemException {
2365        Object[] finderArgs = new Object[0];
2366
2367        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
2368                finderArgs, this);
2369
2370        if (count == null) {
2371            Session session = null;
2372
2373            try {
2374                session = openSession();
2375
2376                Query q = session.createQuery(
2377                        "SELECT COUNT(*) FROM com.liferay.portlet.tasks.model.TasksReview");
2378
2379                count = (Long)q.uniqueResult();
2380            }
2381            catch (Exception e) {
2382                throw processException(e);
2383            }
2384            finally {
2385                if (count == null) {
2386                    count = Long.valueOf(0);
2387                }
2388
2389                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
2390                    count);
2391
2392                closeSession(session);
2393            }
2394        }
2395
2396        return count.intValue();
2397    }
2398
2399    public void afterPropertiesSet() {
2400        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
2401                    com.liferay.portal.util.PropsUtil.get(
2402                        "value.object.listener.com.liferay.portlet.tasks.model.TasksReview")));
2403
2404        if (listenerClassNames.length > 0) {
2405            try {
2406                List<ModelListener<TasksReview>> listenersList = new ArrayList<ModelListener<TasksReview>>();
2407
2408                for (String listenerClassName : listenerClassNames) {
2409                    listenersList.add((ModelListener<TasksReview>)Class.forName(
2410                            listenerClassName).newInstance());
2411                }
2412
2413                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
2414            }
2415            catch (Exception e) {
2416                _log.error(e);
2417            }
2418        }
2419    }
2420
2421    @BeanReference(name = "com.liferay.portlet.tasks.service.persistence.TasksReviewPersistence.impl")
2422    protected com.liferay.portlet.tasks.service.persistence.TasksReviewPersistence tasksReviewPersistence;
2423    @BeanReference(name = "com.liferay.portlet.tasks.service.persistence.TasksProposalPersistence.impl")
2424    protected com.liferay.portlet.tasks.service.persistence.TasksProposalPersistence tasksProposalPersistence;
2425    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
2426    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
2427    @BeanReference(name = "com.liferay.portlet.social.service.persistence.SocialActivityPersistence.impl")
2428    protected com.liferay.portlet.social.service.persistence.SocialActivityPersistence socialActivityPersistence;
2429    private static Log _log = LogFactoryUtil.getLog(TasksReviewPersistenceImpl.class);
2430}