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