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