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