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