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