1   /**
2    * Copyright (c) 2000-2008 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.portal.service.persistence;
24  
25  import com.liferay.portal.NoSuchMembershipRequestException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
28  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
29  import com.liferay.portal.kernel.dao.orm.Query;
30  import com.liferay.portal.kernel.dao.orm.QueryPos;
31  import com.liferay.portal.kernel.dao.orm.QueryUtil;
32  import com.liferay.portal.kernel.dao.orm.Session;
33  import com.liferay.portal.kernel.util.GetterUtil;
34  import com.liferay.portal.kernel.util.ListUtil;
35  import com.liferay.portal.kernel.util.OrderByComparator;
36  import com.liferay.portal.kernel.util.StringPool;
37  import com.liferay.portal.kernel.util.StringUtil;
38  import com.liferay.portal.model.MembershipRequest;
39  import com.liferay.portal.model.ModelListener;
40  import com.liferay.portal.model.impl.MembershipRequestImpl;
41  import com.liferay.portal.model.impl.MembershipRequestModelImpl;
42  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
43  
44  import org.apache.commons.logging.Log;
45  import org.apache.commons.logging.LogFactory;
46  
47  import java.util.ArrayList;
48  import java.util.Collections;
49  import java.util.Iterator;
50  import java.util.List;
51  
52  /**
53   * <a href="MembershipRequestPersistenceImpl.java.html"><b><i>View Source</i></b></a>
54   *
55   * @author Brian Wing Shun Chan
56   *
57   */
58  public class MembershipRequestPersistenceImpl extends BasePersistenceImpl
59      implements MembershipRequestPersistence {
60      public MembershipRequest create(long membershipRequestId) {
61          MembershipRequest membershipRequest = new MembershipRequestImpl();
62  
63          membershipRequest.setNew(true);
64          membershipRequest.setPrimaryKey(membershipRequestId);
65  
66          return membershipRequest;
67      }
68  
69      public MembershipRequest remove(long membershipRequestId)
70          throws NoSuchMembershipRequestException, SystemException {
71          Session session = null;
72  
73          try {
74              session = openSession();
75  
76              MembershipRequest membershipRequest = (MembershipRequest)session.get(MembershipRequestImpl.class,
77                      new Long(membershipRequestId));
78  
79              if (membershipRequest == null) {
80                  if (_log.isWarnEnabled()) {
81                      _log.warn(
82                          "No MembershipRequest exists with the primary key " +
83                          membershipRequestId);
84                  }
85  
86                  throw new NoSuchMembershipRequestException(
87                      "No MembershipRequest exists with the primary key " +
88                      membershipRequestId);
89              }
90  
91              return remove(membershipRequest);
92          }
93          catch (NoSuchMembershipRequestException nsee) {
94              throw nsee;
95          }
96          catch (Exception e) {
97              throw processException(e);
98          }
99          finally {
100             closeSession(session);
101         }
102     }
103 
104     public MembershipRequest remove(MembershipRequest membershipRequest)
105         throws SystemException {
106         if (_listeners.length > 0) {
107             for (ModelListener listener : _listeners) {
108                 listener.onBeforeRemove(membershipRequest);
109             }
110         }
111 
112         membershipRequest = removeImpl(membershipRequest);
113 
114         if (_listeners.length > 0) {
115             for (ModelListener listener : _listeners) {
116                 listener.onAfterRemove(membershipRequest);
117             }
118         }
119 
120         return membershipRequest;
121     }
122 
123     protected MembershipRequest removeImpl(MembershipRequest membershipRequest)
124         throws SystemException {
125         Session session = null;
126 
127         try {
128             session = openSession();
129 
130             if (BatchSessionUtil.isEnabled()) {
131                 Object staleObject = session.get(MembershipRequestImpl.class,
132                         membershipRequest.getPrimaryKeyObj());
133 
134                 if (staleObject != null) {
135                     session.evict(staleObject);
136                 }
137             }
138 
139             session.delete(membershipRequest);
140 
141             session.flush();
142 
143             return membershipRequest;
144         }
145         catch (Exception e) {
146             throw processException(e);
147         }
148         finally {
149             closeSession(session);
150 
151             FinderCacheUtil.clearCache(MembershipRequest.class.getName());
152         }
153     }
154 
155     /**
156      * @deprecated Use <code>update(MembershipRequest membershipRequest, boolean merge)</code>.
157      */
158     public MembershipRequest update(MembershipRequest membershipRequest)
159         throws SystemException {
160         if (_log.isWarnEnabled()) {
161             _log.warn(
162                 "Using the deprecated update(MembershipRequest membershipRequest) method. Use update(MembershipRequest membershipRequest, boolean merge) instead.");
163         }
164 
165         return update(membershipRequest, false);
166     }
167 
168     /**
169      * Add, update, or merge, the entity. This method also calls the model
170      * listeners to trigger the proper events associated with adding, deleting,
171      * or updating an entity.
172      *
173      * @param        membershipRequest the entity to add, update, or merge
174      * @param        merge boolean value for whether to merge the entity. The
175      *                default value is false. Setting merge to true is more
176      *                expensive and should only be true when membershipRequest is
177      *                transient. See LEP-5473 for a detailed discussion of this
178      *                method.
179      * @return        true if the portlet can be displayed via Ajax
180      */
181     public MembershipRequest update(MembershipRequest membershipRequest,
182         boolean merge) throws SystemException {
183         boolean isNew = membershipRequest.isNew();
184 
185         if (_listeners.length > 0) {
186             for (ModelListener listener : _listeners) {
187                 if (isNew) {
188                     listener.onBeforeCreate(membershipRequest);
189                 }
190                 else {
191                     listener.onBeforeUpdate(membershipRequest);
192                 }
193             }
194         }
195 
196         membershipRequest = updateImpl(membershipRequest, merge);
197 
198         if (_listeners.length > 0) {
199             for (ModelListener listener : _listeners) {
200                 if (isNew) {
201                     listener.onAfterCreate(membershipRequest);
202                 }
203                 else {
204                     listener.onAfterUpdate(membershipRequest);
205                 }
206             }
207         }
208 
209         return membershipRequest;
210     }
211 
212     public MembershipRequest updateImpl(
213         com.liferay.portal.model.MembershipRequest membershipRequest,
214         boolean merge) throws SystemException {
215         Session session = null;
216 
217         try {
218             session = openSession();
219 
220             BatchSessionUtil.update(session, membershipRequest, merge);
221 
222             membershipRequest.setNew(false);
223 
224             return membershipRequest;
225         }
226         catch (Exception e) {
227             throw processException(e);
228         }
229         finally {
230             closeSession(session);
231 
232             FinderCacheUtil.clearCache(MembershipRequest.class.getName());
233         }
234     }
235 
236     public MembershipRequest findByPrimaryKey(long membershipRequestId)
237         throws NoSuchMembershipRequestException, SystemException {
238         MembershipRequest membershipRequest = fetchByPrimaryKey(membershipRequestId);
239 
240         if (membershipRequest == null) {
241             if (_log.isWarnEnabled()) {
242                 _log.warn("No MembershipRequest exists with the primary key " +
243                     membershipRequestId);
244             }
245 
246             throw new NoSuchMembershipRequestException(
247                 "No MembershipRequest exists with the primary key " +
248                 membershipRequestId);
249         }
250 
251         return membershipRequest;
252     }
253 
254     public MembershipRequest fetchByPrimaryKey(long membershipRequestId)
255         throws SystemException {
256         Session session = null;
257 
258         try {
259             session = openSession();
260 
261             return (MembershipRequest)session.get(MembershipRequestImpl.class,
262                 new Long(membershipRequestId));
263         }
264         catch (Exception e) {
265             throw processException(e);
266         }
267         finally {
268             closeSession(session);
269         }
270     }
271 
272     public List<MembershipRequest> findByGroupId(long groupId)
273         throws SystemException {
274         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
275         String finderClassName = MembershipRequest.class.getName();
276         String finderMethodName = "findByGroupId";
277         String[] finderParams = new String[] { Long.class.getName() };
278         Object[] finderArgs = new Object[] { new Long(groupId) };
279 
280         Object result = null;
281 
282         if (finderClassNameCacheEnabled) {
283             result = FinderCacheUtil.getResult(finderClassName,
284                     finderMethodName, finderParams, finderArgs, this);
285         }
286 
287         if (result == null) {
288             Session session = null;
289 
290             try {
291                 session = openSession();
292 
293                 StringBuilder query = new StringBuilder();
294 
295                 query.append(
296                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
297 
298                 query.append("groupId = ?");
299 
300                 query.append(" ");
301 
302                 query.append("ORDER BY ");
303 
304                 query.append("createDate DESC");
305 
306                 Query q = session.createQuery(query.toString());
307 
308                 QueryPos qPos = QueryPos.getInstance(q);
309 
310                 qPos.add(groupId);
311 
312                 List<MembershipRequest> list = q.list();
313 
314                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
315                     finderClassName, finderMethodName, finderParams,
316                     finderArgs, list);
317 
318                 return list;
319             }
320             catch (Exception e) {
321                 throw processException(e);
322             }
323             finally {
324                 closeSession(session);
325             }
326         }
327         else {
328             return (List<MembershipRequest>)result;
329         }
330     }
331 
332     public List<MembershipRequest> findByGroupId(long groupId, int start,
333         int end) throws SystemException {
334         return findByGroupId(groupId, start, end, null);
335     }
336 
337     public List<MembershipRequest> findByGroupId(long groupId, int start,
338         int end, OrderByComparator obc) throws SystemException {
339         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
340         String finderClassName = MembershipRequest.class.getName();
341         String finderMethodName = "findByGroupId";
342         String[] finderParams = new String[] {
343                 Long.class.getName(),
344                 
345                 "java.lang.Integer", "java.lang.Integer",
346                 "com.liferay.portal.kernel.util.OrderByComparator"
347             };
348         Object[] finderArgs = new Object[] {
349                 new Long(groupId),
350                 
351                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
352             };
353 
354         Object result = null;
355 
356         if (finderClassNameCacheEnabled) {
357             result = FinderCacheUtil.getResult(finderClassName,
358                     finderMethodName, finderParams, finderArgs, this);
359         }
360 
361         if (result == null) {
362             Session session = null;
363 
364             try {
365                 session = openSession();
366 
367                 StringBuilder query = new StringBuilder();
368 
369                 query.append(
370                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
371 
372                 query.append("groupId = ?");
373 
374                 query.append(" ");
375 
376                 if (obc != null) {
377                     query.append("ORDER BY ");
378                     query.append(obc.getOrderBy());
379                 }
380 
381                 else {
382                     query.append("ORDER BY ");
383 
384                     query.append("createDate DESC");
385                 }
386 
387                 Query q = session.createQuery(query.toString());
388 
389                 QueryPos qPos = QueryPos.getInstance(q);
390 
391                 qPos.add(groupId);
392 
393                 List<MembershipRequest> list = (List<MembershipRequest>)QueryUtil.list(q,
394                         getDialect(), start, end);
395 
396                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
397                     finderClassName, finderMethodName, finderParams,
398                     finderArgs, list);
399 
400                 return list;
401             }
402             catch (Exception e) {
403                 throw processException(e);
404             }
405             finally {
406                 closeSession(session);
407             }
408         }
409         else {
410             return (List<MembershipRequest>)result;
411         }
412     }
413 
414     public MembershipRequest findByGroupId_First(long groupId,
415         OrderByComparator obc)
416         throws NoSuchMembershipRequestException, SystemException {
417         List<MembershipRequest> list = findByGroupId(groupId, 0, 1, obc);
418 
419         if (list.size() == 0) {
420             StringBuilder msg = new StringBuilder();
421 
422             msg.append("No MembershipRequest exists with the key {");
423 
424             msg.append("groupId=" + groupId);
425 
426             msg.append(StringPool.CLOSE_CURLY_BRACE);
427 
428             throw new NoSuchMembershipRequestException(msg.toString());
429         }
430         else {
431             return list.get(0);
432         }
433     }
434 
435     public MembershipRequest findByGroupId_Last(long groupId,
436         OrderByComparator obc)
437         throws NoSuchMembershipRequestException, SystemException {
438         int count = countByGroupId(groupId);
439 
440         List<MembershipRequest> list = findByGroupId(groupId, count - 1, count,
441                 obc);
442 
443         if (list.size() == 0) {
444             StringBuilder msg = new StringBuilder();
445 
446             msg.append("No MembershipRequest exists with the key {");
447 
448             msg.append("groupId=" + groupId);
449 
450             msg.append(StringPool.CLOSE_CURLY_BRACE);
451 
452             throw new NoSuchMembershipRequestException(msg.toString());
453         }
454         else {
455             return list.get(0);
456         }
457     }
458 
459     public MembershipRequest[] findByGroupId_PrevAndNext(
460         long membershipRequestId, long groupId, OrderByComparator obc)
461         throws NoSuchMembershipRequestException, SystemException {
462         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
463 
464         int count = countByGroupId(groupId);
465 
466         Session session = null;
467 
468         try {
469             session = openSession();
470 
471             StringBuilder query = new StringBuilder();
472 
473             query.append(
474                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
475 
476             query.append("groupId = ?");
477 
478             query.append(" ");
479 
480             if (obc != null) {
481                 query.append("ORDER BY ");
482                 query.append(obc.getOrderBy());
483             }
484 
485             else {
486                 query.append("ORDER BY ");
487 
488                 query.append("createDate DESC");
489             }
490 
491             Query q = session.createQuery(query.toString());
492 
493             QueryPos qPos = QueryPos.getInstance(q);
494 
495             qPos.add(groupId);
496 
497             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
498                     membershipRequest);
499 
500             MembershipRequest[] array = new MembershipRequestImpl[3];
501 
502             array[0] = (MembershipRequest)objArray[0];
503             array[1] = (MembershipRequest)objArray[1];
504             array[2] = (MembershipRequest)objArray[2];
505 
506             return array;
507         }
508         catch (Exception e) {
509             throw processException(e);
510         }
511         finally {
512             closeSession(session);
513         }
514     }
515 
516     public List<MembershipRequest> findByUserId(long userId)
517         throws SystemException {
518         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
519         String finderClassName = MembershipRequest.class.getName();
520         String finderMethodName = "findByUserId";
521         String[] finderParams = new String[] { Long.class.getName() };
522         Object[] finderArgs = new Object[] { new Long(userId) };
523 
524         Object result = null;
525 
526         if (finderClassNameCacheEnabled) {
527             result = FinderCacheUtil.getResult(finderClassName,
528                     finderMethodName, finderParams, finderArgs, this);
529         }
530 
531         if (result == null) {
532             Session session = null;
533 
534             try {
535                 session = openSession();
536 
537                 StringBuilder query = new StringBuilder();
538 
539                 query.append(
540                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
541 
542                 query.append("userId = ?");
543 
544                 query.append(" ");
545 
546                 query.append("ORDER BY ");
547 
548                 query.append("createDate DESC");
549 
550                 Query q = session.createQuery(query.toString());
551 
552                 QueryPos qPos = QueryPos.getInstance(q);
553 
554                 qPos.add(userId);
555 
556                 List<MembershipRequest> list = q.list();
557 
558                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
559                     finderClassName, finderMethodName, finderParams,
560                     finderArgs, list);
561 
562                 return list;
563             }
564             catch (Exception e) {
565                 throw processException(e);
566             }
567             finally {
568                 closeSession(session);
569             }
570         }
571         else {
572             return (List<MembershipRequest>)result;
573         }
574     }
575 
576     public List<MembershipRequest> findByUserId(long userId, int start, int end)
577         throws SystemException {
578         return findByUserId(userId, start, end, null);
579     }
580 
581     public List<MembershipRequest> findByUserId(long userId, int start,
582         int end, OrderByComparator obc) throws SystemException {
583         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
584         String finderClassName = MembershipRequest.class.getName();
585         String finderMethodName = "findByUserId";
586         String[] finderParams = new String[] {
587                 Long.class.getName(),
588                 
589                 "java.lang.Integer", "java.lang.Integer",
590                 "com.liferay.portal.kernel.util.OrderByComparator"
591             };
592         Object[] finderArgs = new Object[] {
593                 new Long(userId),
594                 
595                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
596             };
597 
598         Object result = null;
599 
600         if (finderClassNameCacheEnabled) {
601             result = FinderCacheUtil.getResult(finderClassName,
602                     finderMethodName, finderParams, finderArgs, this);
603         }
604 
605         if (result == null) {
606             Session session = null;
607 
608             try {
609                 session = openSession();
610 
611                 StringBuilder query = new StringBuilder();
612 
613                 query.append(
614                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
615 
616                 query.append("userId = ?");
617 
618                 query.append(" ");
619 
620                 if (obc != null) {
621                     query.append("ORDER BY ");
622                     query.append(obc.getOrderBy());
623                 }
624 
625                 else {
626                     query.append("ORDER BY ");
627 
628                     query.append("createDate DESC");
629                 }
630 
631                 Query q = session.createQuery(query.toString());
632 
633                 QueryPos qPos = QueryPos.getInstance(q);
634 
635                 qPos.add(userId);
636 
637                 List<MembershipRequest> list = (List<MembershipRequest>)QueryUtil.list(q,
638                         getDialect(), start, end);
639 
640                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
641                     finderClassName, finderMethodName, finderParams,
642                     finderArgs, list);
643 
644                 return list;
645             }
646             catch (Exception e) {
647                 throw processException(e);
648             }
649             finally {
650                 closeSession(session);
651             }
652         }
653         else {
654             return (List<MembershipRequest>)result;
655         }
656     }
657 
658     public MembershipRequest findByUserId_First(long userId,
659         OrderByComparator obc)
660         throws NoSuchMembershipRequestException, SystemException {
661         List<MembershipRequest> list = findByUserId(userId, 0, 1, obc);
662 
663         if (list.size() == 0) {
664             StringBuilder msg = new StringBuilder();
665 
666             msg.append("No MembershipRequest exists with the key {");
667 
668             msg.append("userId=" + userId);
669 
670             msg.append(StringPool.CLOSE_CURLY_BRACE);
671 
672             throw new NoSuchMembershipRequestException(msg.toString());
673         }
674         else {
675             return list.get(0);
676         }
677     }
678 
679     public MembershipRequest findByUserId_Last(long userId,
680         OrderByComparator obc)
681         throws NoSuchMembershipRequestException, SystemException {
682         int count = countByUserId(userId);
683 
684         List<MembershipRequest> list = findByUserId(userId, count - 1, count,
685                 obc);
686 
687         if (list.size() == 0) {
688             StringBuilder msg = new StringBuilder();
689 
690             msg.append("No MembershipRequest exists with the key {");
691 
692             msg.append("userId=" + userId);
693 
694             msg.append(StringPool.CLOSE_CURLY_BRACE);
695 
696             throw new NoSuchMembershipRequestException(msg.toString());
697         }
698         else {
699             return list.get(0);
700         }
701     }
702 
703     public MembershipRequest[] findByUserId_PrevAndNext(
704         long membershipRequestId, long userId, OrderByComparator obc)
705         throws NoSuchMembershipRequestException, SystemException {
706         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
707 
708         int count = countByUserId(userId);
709 
710         Session session = null;
711 
712         try {
713             session = openSession();
714 
715             StringBuilder query = new StringBuilder();
716 
717             query.append(
718                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
719 
720             query.append("userId = ?");
721 
722             query.append(" ");
723 
724             if (obc != null) {
725                 query.append("ORDER BY ");
726                 query.append(obc.getOrderBy());
727             }
728 
729             else {
730                 query.append("ORDER BY ");
731 
732                 query.append("createDate DESC");
733             }
734 
735             Query q = session.createQuery(query.toString());
736 
737             QueryPos qPos = QueryPos.getInstance(q);
738 
739             qPos.add(userId);
740 
741             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
742                     membershipRequest);
743 
744             MembershipRequest[] array = new MembershipRequestImpl[3];
745 
746             array[0] = (MembershipRequest)objArray[0];
747             array[1] = (MembershipRequest)objArray[1];
748             array[2] = (MembershipRequest)objArray[2];
749 
750             return array;
751         }
752         catch (Exception e) {
753             throw processException(e);
754         }
755         finally {
756             closeSession(session);
757         }
758     }
759 
760     public List<MembershipRequest> findByG_S(long groupId, int statusId)
761         throws SystemException {
762         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
763         String finderClassName = MembershipRequest.class.getName();
764         String finderMethodName = "findByG_S";
765         String[] finderParams = new String[] {
766                 Long.class.getName(), Integer.class.getName()
767             };
768         Object[] finderArgs = new Object[] {
769                 new Long(groupId), new Integer(statusId)
770             };
771 
772         Object result = null;
773 
774         if (finderClassNameCacheEnabled) {
775             result = FinderCacheUtil.getResult(finderClassName,
776                     finderMethodName, finderParams, finderArgs, this);
777         }
778 
779         if (result == null) {
780             Session session = null;
781 
782             try {
783                 session = openSession();
784 
785                 StringBuilder query = new StringBuilder();
786 
787                 query.append(
788                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
789 
790                 query.append("groupId = ?");
791 
792                 query.append(" AND ");
793 
794                 query.append("statusId = ?");
795 
796                 query.append(" ");
797 
798                 query.append("ORDER BY ");
799 
800                 query.append("createDate DESC");
801 
802                 Query q = session.createQuery(query.toString());
803 
804                 QueryPos qPos = QueryPos.getInstance(q);
805 
806                 qPos.add(groupId);
807 
808                 qPos.add(statusId);
809 
810                 List<MembershipRequest> list = q.list();
811 
812                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
813                     finderClassName, finderMethodName, finderParams,
814                     finderArgs, list);
815 
816                 return list;
817             }
818             catch (Exception e) {
819                 throw processException(e);
820             }
821             finally {
822                 closeSession(session);
823             }
824         }
825         else {
826             return (List<MembershipRequest>)result;
827         }
828     }
829 
830     public List<MembershipRequest> findByG_S(long groupId, int statusId,
831         int start, int end) throws SystemException {
832         return findByG_S(groupId, statusId, start, end, null);
833     }
834 
835     public List<MembershipRequest> findByG_S(long groupId, int statusId,
836         int start, int end, OrderByComparator obc) throws SystemException {
837         boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
838         String finderClassName = MembershipRequest.class.getName();
839         String finderMethodName = "findByG_S";
840         String[] finderParams = new String[] {
841                 Long.class.getName(), Integer.class.getName(),
842                 
843                 "java.lang.Integer", "java.lang.Integer",
844                 "com.liferay.portal.kernel.util.OrderByComparator"
845             };
846         Object[] finderArgs = new Object[] {
847                 new Long(groupId), new Integer(statusId),
848                 
849                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
850             };
851 
852         Object result = null;
853 
854         if (finderClassNameCacheEnabled) {
855             result = FinderCacheUtil.getResult(finderClassName,
856                     finderMethodName, finderParams, finderArgs, this);
857         }
858 
859         if (result == null) {
860             Session session = null;
861 
862             try {
863                 session = openSession();
864 
865                 StringBuilder query = new StringBuilder();
866 
867                 query.append(
868                     "FROM com.liferay.portal.model.MembershipRequest WHERE ");
869 
870                 query.append("groupId = ?");
871 
872                 query.append(" AND ");
873 
874                 query.append("statusId = ?");
875 
876                 query.append(" ");
877 
878                 if (obc != null) {
879                     query.append("ORDER BY ");
880                     query.append(obc.getOrderBy());
881                 }
882 
883                 else {
884                     query.append("ORDER BY ");
885 
886                     query.append("createDate DESC");
887                 }
888 
889                 Query q = session.createQuery(query.toString());
890 
891                 QueryPos qPos = QueryPos.getInstance(q);
892 
893                 qPos.add(groupId);
894 
895                 qPos.add(statusId);
896 
897                 List<MembershipRequest> list = (List<MembershipRequest>)QueryUtil.list(q,
898                         getDialect(), start, end);
899 
900                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
901                     finderClassName, finderMethodName, finderParams,
902                     finderArgs, list);
903 
904                 return list;
905             }
906             catch (Exception e) {
907                 throw processException(e);
908             }
909             finally {
910                 closeSession(session);
911             }
912         }
913         else {
914             return (List<MembershipRequest>)result;
915         }
916     }
917 
918     public MembershipRequest findByG_S_First(long groupId, int statusId,
919         OrderByComparator obc)
920         throws NoSuchMembershipRequestException, SystemException {
921         List<MembershipRequest> list = findByG_S(groupId, statusId, 0, 1, obc);
922 
923         if (list.size() == 0) {
924             StringBuilder msg = new StringBuilder();
925 
926             msg.append("No MembershipRequest exists with the key {");
927 
928             msg.append("groupId=" + groupId);
929 
930             msg.append(", ");
931             msg.append("statusId=" + statusId);
932 
933             msg.append(StringPool.CLOSE_CURLY_BRACE);
934 
935             throw new NoSuchMembershipRequestException(msg.toString());
936         }
937         else {
938             return list.get(0);
939         }
940     }
941 
942     public MembershipRequest findByG_S_Last(long groupId, int statusId,
943         OrderByComparator obc)
944         throws NoSuchMembershipRequestException, SystemException {
945         int count = countByG_S(groupId, statusId);
946 
947         List<MembershipRequest> list = findByG_S(groupId, statusId, count - 1,
948                 count, obc);
949 
950         if (list.size() == 0) {
951             StringBuilder msg = new StringBuilder();
952 
953             msg.append("No MembershipRequest exists with the key {");
954 
955             msg.append("groupId=" + groupId);
956 
957             msg.append(", ");
958             msg.append("statusId=" + statusId);
959 
960             msg.append(StringPool.CLOSE_CURLY_BRACE);
961 
962             throw new NoSuchMembershipRequestException(msg.toString());
963         }
964         else {
965             return list.get(0);
966         }
967     }
968 
969     public MembershipRequest[] findByG_S_PrevAndNext(long membershipRequestId,
970         long groupId, int statusId, OrderByComparator obc)
971         throws NoSuchMembershipRequestException, SystemException {
972         MembershipRequest membershipRequest = findByPrimaryKey(membershipRequestId);
973 
974         int count = countByG_S(groupId, statusId);
975 
976         Session session = null;
977 
978         try {
979             session = openSession();
980 
981             StringBuilder query = new StringBuilder();
982 
983             query.append(
984                 "FROM com.liferay.portal.model.MembershipRequest WHERE ");
985 
986             query.append("groupId = ?");
987 
988             query.append(" AND ");
989 
990             query.append("statusId = ?");
991 
992             query.append(" ");
993 
994             if (obc != null) {
995                 query.append("ORDER BY ");
996                 query.append(obc.getOrderBy());
997             }
998 
999             else {
1000                query.append("ORDER BY ");
1001
1002                query.append("createDate DESC");
1003            }
1004
1005            Query q = session.createQuery(query.toString());
1006
1007            QueryPos qPos = QueryPos.getInstance(q);
1008
1009            qPos.add(groupId);
1010
1011            qPos.add(statusId);
1012
1013            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1014                    membershipRequest);
1015
1016            MembershipRequest[] array = new MembershipRequestImpl[3];
1017
1018            array[0] = (MembershipRequest)objArray[0];
1019            array[1] = (MembershipRequest)objArray[1];
1020            array[2] = (MembershipRequest)objArray[2];
1021
1022            return array;
1023        }
1024        catch (Exception e) {
1025            throw processException(e);
1026        }
1027        finally {
1028            closeSession(session);
1029        }
1030    }
1031
1032    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1033        throws SystemException {
1034        Session session = null;
1035
1036        try {
1037            session = openSession();
1038
1039            dynamicQuery.compile(session);
1040
1041            return dynamicQuery.list();
1042        }
1043        catch (Exception e) {
1044            throw processException(e);
1045        }
1046        finally {
1047            closeSession(session);
1048        }
1049    }
1050
1051    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1052        int start, int end) throws SystemException {
1053        Session session = null;
1054
1055        try {
1056            session = openSession();
1057
1058            dynamicQuery.setLimit(start, end);
1059
1060            dynamicQuery.compile(session);
1061
1062            return dynamicQuery.list();
1063        }
1064        catch (Exception e) {
1065            throw processException(e);
1066        }
1067        finally {
1068            closeSession(session);
1069        }
1070    }
1071
1072    public List<MembershipRequest> findAll() throws SystemException {
1073        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1074    }
1075
1076    public List<MembershipRequest> findAll(int start, int end)
1077        throws SystemException {
1078        return findAll(start, end, null);
1079    }
1080
1081    public List<MembershipRequest> findAll(int start, int end,
1082        OrderByComparator obc) throws SystemException {
1083        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1084        String finderClassName = MembershipRequest.class.getName();
1085        String finderMethodName = "findAll";
1086        String[] finderParams = new String[] {
1087                "java.lang.Integer", "java.lang.Integer",
1088                "com.liferay.portal.kernel.util.OrderByComparator"
1089            };
1090        Object[] finderArgs = new Object[] {
1091                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1092            };
1093
1094        Object result = null;
1095
1096        if (finderClassNameCacheEnabled) {
1097            result = FinderCacheUtil.getResult(finderClassName,
1098                    finderMethodName, finderParams, finderArgs, this);
1099        }
1100
1101        if (result == null) {
1102            Session session = null;
1103
1104            try {
1105                session = openSession();
1106
1107                StringBuilder query = new StringBuilder();
1108
1109                query.append("FROM com.liferay.portal.model.MembershipRequest ");
1110
1111                if (obc != null) {
1112                    query.append("ORDER BY ");
1113                    query.append(obc.getOrderBy());
1114                }
1115
1116                else {
1117                    query.append("ORDER BY ");
1118
1119                    query.append("createDate DESC");
1120                }
1121
1122                Query q = session.createQuery(query.toString());
1123
1124                List<MembershipRequest> list = null;
1125
1126                if (obc == null) {
1127                    list = (List<MembershipRequest>)QueryUtil.list(q,
1128                            getDialect(), start, end, false);
1129
1130                    Collections.sort(list);
1131                }
1132                else {
1133                    list = (List<MembershipRequest>)QueryUtil.list(q,
1134                            getDialect(), start, end);
1135                }
1136
1137                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1138                    finderClassName, finderMethodName, finderParams,
1139                    finderArgs, list);
1140
1141                return list;
1142            }
1143            catch (Exception e) {
1144                throw processException(e);
1145            }
1146            finally {
1147                closeSession(session);
1148            }
1149        }
1150        else {
1151            return (List<MembershipRequest>)result;
1152        }
1153    }
1154
1155    public void removeByGroupId(long groupId) throws SystemException {
1156        for (MembershipRequest membershipRequest : findByGroupId(groupId)) {
1157            remove(membershipRequest);
1158        }
1159    }
1160
1161    public void removeByUserId(long userId) throws SystemException {
1162        for (MembershipRequest membershipRequest : findByUserId(userId)) {
1163            remove(membershipRequest);
1164        }
1165    }
1166
1167    public void removeByG_S(long groupId, int statusId)
1168        throws SystemException {
1169        for (MembershipRequest membershipRequest : findByG_S(groupId, statusId)) {
1170            remove(membershipRequest);
1171        }
1172    }
1173
1174    public void removeAll() throws SystemException {
1175        for (MembershipRequest membershipRequest : findAll()) {
1176            remove(membershipRequest);
1177        }
1178    }
1179
1180    public int countByGroupId(long groupId) throws SystemException {
1181        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1182        String finderClassName = MembershipRequest.class.getName();
1183        String finderMethodName = "countByGroupId";
1184        String[] finderParams = new String[] { Long.class.getName() };
1185        Object[] finderArgs = new Object[] { new Long(groupId) };
1186
1187        Object result = null;
1188
1189        if (finderClassNameCacheEnabled) {
1190            result = FinderCacheUtil.getResult(finderClassName,
1191                    finderMethodName, finderParams, finderArgs, this);
1192        }
1193
1194        if (result == null) {
1195            Session session = null;
1196
1197            try {
1198                session = openSession();
1199
1200                StringBuilder query = new StringBuilder();
1201
1202                query.append("SELECT COUNT(*) ");
1203                query.append(
1204                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1205
1206                query.append("groupId = ?");
1207
1208                query.append(" ");
1209
1210                Query q = session.createQuery(query.toString());
1211
1212                QueryPos qPos = QueryPos.getInstance(q);
1213
1214                qPos.add(groupId);
1215
1216                Long count = null;
1217
1218                Iterator<Long> itr = q.list().iterator();
1219
1220                if (itr.hasNext()) {
1221                    count = itr.next();
1222                }
1223
1224                if (count == null) {
1225                    count = new Long(0);
1226                }
1227
1228                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1229                    finderClassName, finderMethodName, finderParams,
1230                    finderArgs, count);
1231
1232                return count.intValue();
1233            }
1234            catch (Exception e) {
1235                throw processException(e);
1236            }
1237            finally {
1238                closeSession(session);
1239            }
1240        }
1241        else {
1242            return ((Long)result).intValue();
1243        }
1244    }
1245
1246    public int countByUserId(long userId) throws SystemException {
1247        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1248        String finderClassName = MembershipRequest.class.getName();
1249        String finderMethodName = "countByUserId";
1250        String[] finderParams = new String[] { Long.class.getName() };
1251        Object[] finderArgs = new Object[] { new Long(userId) };
1252
1253        Object result = null;
1254
1255        if (finderClassNameCacheEnabled) {
1256            result = FinderCacheUtil.getResult(finderClassName,
1257                    finderMethodName, finderParams, finderArgs, this);
1258        }
1259
1260        if (result == null) {
1261            Session session = null;
1262
1263            try {
1264                session = openSession();
1265
1266                StringBuilder query = new StringBuilder();
1267
1268                query.append("SELECT COUNT(*) ");
1269                query.append(
1270                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1271
1272                query.append("userId = ?");
1273
1274                query.append(" ");
1275
1276                Query q = session.createQuery(query.toString());
1277
1278                QueryPos qPos = QueryPos.getInstance(q);
1279
1280                qPos.add(userId);
1281
1282                Long count = null;
1283
1284                Iterator<Long> itr = q.list().iterator();
1285
1286                if (itr.hasNext()) {
1287                    count = itr.next();
1288                }
1289
1290                if (count == null) {
1291                    count = new Long(0);
1292                }
1293
1294                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1295                    finderClassName, finderMethodName, finderParams,
1296                    finderArgs, count);
1297
1298                return count.intValue();
1299            }
1300            catch (Exception e) {
1301                throw processException(e);
1302            }
1303            finally {
1304                closeSession(session);
1305            }
1306        }
1307        else {
1308            return ((Long)result).intValue();
1309        }
1310    }
1311
1312    public int countByG_S(long groupId, int statusId) throws SystemException {
1313        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1314        String finderClassName = MembershipRequest.class.getName();
1315        String finderMethodName = "countByG_S";
1316        String[] finderParams = new String[] {
1317                Long.class.getName(), Integer.class.getName()
1318            };
1319        Object[] finderArgs = new Object[] {
1320                new Long(groupId), new Integer(statusId)
1321            };
1322
1323        Object result = null;
1324
1325        if (finderClassNameCacheEnabled) {
1326            result = FinderCacheUtil.getResult(finderClassName,
1327                    finderMethodName, finderParams, finderArgs, this);
1328        }
1329
1330        if (result == null) {
1331            Session session = null;
1332
1333            try {
1334                session = openSession();
1335
1336                StringBuilder query = new StringBuilder();
1337
1338                query.append("SELECT COUNT(*) ");
1339                query.append(
1340                    "FROM com.liferay.portal.model.MembershipRequest WHERE ");
1341
1342                query.append("groupId = ?");
1343
1344                query.append(" AND ");
1345
1346                query.append("statusId = ?");
1347
1348                query.append(" ");
1349
1350                Query q = session.createQuery(query.toString());
1351
1352                QueryPos qPos = QueryPos.getInstance(q);
1353
1354                qPos.add(groupId);
1355
1356                qPos.add(statusId);
1357
1358                Long count = null;
1359
1360                Iterator<Long> itr = q.list().iterator();
1361
1362                if (itr.hasNext()) {
1363                    count = itr.next();
1364                }
1365
1366                if (count == null) {
1367                    count = new Long(0);
1368                }
1369
1370                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1371                    finderClassName, finderMethodName, finderParams,
1372                    finderArgs, count);
1373
1374                return count.intValue();
1375            }
1376            catch (Exception e) {
1377                throw processException(e);
1378            }
1379            finally {
1380                closeSession(session);
1381            }
1382        }
1383        else {
1384            return ((Long)result).intValue();
1385        }
1386    }
1387
1388    public int countAll() throws SystemException {
1389        boolean finderClassNameCacheEnabled = MembershipRequestModelImpl.CACHE_ENABLED;
1390        String finderClassName = MembershipRequest.class.getName();
1391        String finderMethodName = "countAll";
1392        String[] finderParams = new String[] {  };
1393        Object[] finderArgs = new Object[] {  };
1394
1395        Object result = null;
1396
1397        if (finderClassNameCacheEnabled) {
1398            result = FinderCacheUtil.getResult(finderClassName,
1399                    finderMethodName, finderParams, finderArgs, this);
1400        }
1401
1402        if (result == null) {
1403            Session session = null;
1404
1405            try {
1406                session = openSession();
1407
1408                Query q = session.createQuery(
1409                        "SELECT COUNT(*) FROM com.liferay.portal.model.MembershipRequest");
1410
1411                Long count = null;
1412
1413                Iterator<Long> itr = q.list().iterator();
1414
1415                if (itr.hasNext()) {
1416                    count = itr.next();
1417                }
1418
1419                if (count == null) {
1420                    count = new Long(0);
1421                }
1422
1423                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1424                    finderClassName, finderMethodName, finderParams,
1425                    finderArgs, count);
1426
1427                return count.intValue();
1428            }
1429            catch (Exception e) {
1430                throw processException(e);
1431            }
1432            finally {
1433                closeSession(session);
1434            }
1435        }
1436        else {
1437            return ((Long)result).intValue();
1438        }
1439    }
1440
1441    public void registerListener(ModelListener listener) {
1442        List<ModelListener> listeners = ListUtil.fromArray(_listeners);
1443
1444        listeners.add(listener);
1445
1446        _listeners = listeners.toArray(new ModelListener[listeners.size()]);
1447    }
1448
1449    public void unregisterListener(ModelListener listener) {
1450        List<ModelListener> listeners = ListUtil.fromArray(_listeners);
1451
1452        listeners.remove(listener);
1453
1454        _listeners = listeners.toArray(new ModelListener[listeners.size()]);
1455    }
1456
1457    public void afterPropertiesSet() {
1458        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1459                    com.liferay.portal.util.PropsUtil.get(
1460                        "value.object.listener.com.liferay.portal.model.MembershipRequest")));
1461
1462        if (listenerClassNames.length > 0) {
1463            try {
1464                List<ModelListener> listeners = new ArrayList<ModelListener>();
1465
1466                for (String listenerClassName : listenerClassNames) {
1467                    listeners.add((ModelListener)Class.forName(
1468                            listenerClassName).newInstance());
1469                }
1470
1471                _listeners = listeners.toArray(new ModelListener[listeners.size()]);
1472            }
1473            catch (Exception e) {
1474                _log.error(e);
1475            }
1476        }
1477    }
1478
1479    private static Log _log = LogFactory.getLog(MembershipRequestPersistenceImpl.class);
1480    private ModelListener[] _listeners = new ModelListener[0];
1481}