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