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