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