1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portlet.messageboards.service.persistence;
21  
22  import com.liferay.portal.SystemException;
23  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
24  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
25  import com.liferay.portal.kernel.dao.orm.Query;
26  import com.liferay.portal.kernel.dao.orm.QueryPos;
27  import com.liferay.portal.kernel.dao.orm.QueryUtil;
28  import com.liferay.portal.kernel.dao.orm.Session;
29  import com.liferay.portal.kernel.log.Log;
30  import com.liferay.portal.kernel.log.LogFactoryUtil;
31  import com.liferay.portal.kernel.util.GetterUtil;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringPool;
34  import com.liferay.portal.kernel.util.StringUtil;
35  import com.liferay.portal.model.ModelListener;
36  import com.liferay.portal.service.persistence.BatchSessionUtil;
37  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
38  
39  import com.liferay.portlet.messageboards.NoSuchMessageFlagException;
40  import com.liferay.portlet.messageboards.model.MBMessageFlag;
41  import com.liferay.portlet.messageboards.model.impl.MBMessageFlagImpl;
42  import com.liferay.portlet.messageboards.model.impl.MBMessageFlagModelImpl;
43  
44  import java.util.ArrayList;
45  import java.util.Collections;
46  import java.util.Iterator;
47  import java.util.List;
48  
49  /**
50   * <a href="MBMessageFlagPersistenceImpl.java.html"><b><i>View Source</i></b></a>
51   *
52   * @author Brian Wing Shun Chan
53   *
54   */
55  public class MBMessageFlagPersistenceImpl extends BasePersistenceImpl
56      implements MBMessageFlagPersistence {
57      public MBMessageFlag create(long messageFlagId) {
58          MBMessageFlag mbMessageFlag = new MBMessageFlagImpl();
59  
60          mbMessageFlag.setNew(true);
61          mbMessageFlag.setPrimaryKey(messageFlagId);
62  
63          return mbMessageFlag;
64      }
65  
66      public MBMessageFlag remove(long messageFlagId)
67          throws NoSuchMessageFlagException, SystemException {
68          Session session = null;
69  
70          try {
71              session = openSession();
72  
73              MBMessageFlag mbMessageFlag = (MBMessageFlag)session.get(MBMessageFlagImpl.class,
74                      new Long(messageFlagId));
75  
76              if (mbMessageFlag == null) {
77                  if (_log.isWarnEnabled()) {
78                      _log.warn("No MBMessageFlag exists with the primary key " +
79                          messageFlagId);
80                  }
81  
82                  throw new NoSuchMessageFlagException(
83                      "No MBMessageFlag exists with the primary key " +
84                      messageFlagId);
85              }
86  
87              return remove(mbMessageFlag);
88          }
89          catch (NoSuchMessageFlagException nsee) {
90              throw nsee;
91          }
92          catch (Exception e) {
93              throw processException(e);
94          }
95          finally {
96              closeSession(session);
97          }
98      }
99  
100     public MBMessageFlag remove(MBMessageFlag mbMessageFlag)
101         throws SystemException {
102         for (ModelListener listener : listeners) {
103             listener.onBeforeRemove(mbMessageFlag);
104         }
105 
106         mbMessageFlag = removeImpl(mbMessageFlag);
107 
108         for (ModelListener listener : listeners) {
109             listener.onAfterRemove(mbMessageFlag);
110         }
111 
112         return mbMessageFlag;
113     }
114 
115     protected MBMessageFlag removeImpl(MBMessageFlag mbMessageFlag)
116         throws SystemException {
117         Session session = null;
118 
119         try {
120             session = openSession();
121 
122             if (BatchSessionUtil.isEnabled()) {
123                 Object staleObject = session.get(MBMessageFlagImpl.class,
124                         mbMessageFlag.getPrimaryKeyObj());
125 
126                 if (staleObject != null) {
127                     session.evict(staleObject);
128                 }
129             }
130 
131             session.delete(mbMessageFlag);
132 
133             session.flush();
134 
135             return mbMessageFlag;
136         }
137         catch (Exception e) {
138             throw processException(e);
139         }
140         finally {
141             closeSession(session);
142 
143             FinderCacheUtil.clearCache(MBMessageFlag.class.getName());
144         }
145     }
146 
147     /**
148      * @deprecated Use <code>update(MBMessageFlag mbMessageFlag, boolean merge)</code>.
149      */
150     public MBMessageFlag update(MBMessageFlag mbMessageFlag)
151         throws SystemException {
152         if (_log.isWarnEnabled()) {
153             _log.warn(
154                 "Using the deprecated update(MBMessageFlag mbMessageFlag) method. Use update(MBMessageFlag mbMessageFlag, boolean merge) instead.");
155         }
156 
157         return update(mbMessageFlag, 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        mbMessageFlag 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 mbMessageFlag 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 MBMessageFlag update(MBMessageFlag mbMessageFlag, boolean merge)
174         throws SystemException {
175         boolean isNew = mbMessageFlag.isNew();
176 
177         for (ModelListener listener : listeners) {
178             if (isNew) {
179                 listener.onBeforeCreate(mbMessageFlag);
180             }
181             else {
182                 listener.onBeforeUpdate(mbMessageFlag);
183             }
184         }
185 
186         mbMessageFlag = updateImpl(mbMessageFlag, merge);
187 
188         for (ModelListener listener : listeners) {
189             if (isNew) {
190                 listener.onAfterCreate(mbMessageFlag);
191             }
192             else {
193                 listener.onAfterUpdate(mbMessageFlag);
194             }
195         }
196 
197         return mbMessageFlag;
198     }
199 
200     public MBMessageFlag updateImpl(
201         com.liferay.portlet.messageboards.model.MBMessageFlag mbMessageFlag,
202         boolean merge) throws SystemException {
203         Session session = null;
204 
205         try {
206             session = openSession();
207 
208             BatchSessionUtil.update(session, mbMessageFlag, merge);
209 
210             mbMessageFlag.setNew(false);
211 
212             return mbMessageFlag;
213         }
214         catch (Exception e) {
215             throw processException(e);
216         }
217         finally {
218             closeSession(session);
219 
220             FinderCacheUtil.clearCache(MBMessageFlag.class.getName());
221         }
222     }
223 
224     public MBMessageFlag findByPrimaryKey(long messageFlagId)
225         throws NoSuchMessageFlagException, SystemException {
226         MBMessageFlag mbMessageFlag = fetchByPrimaryKey(messageFlagId);
227 
228         if (mbMessageFlag == null) {
229             if (_log.isWarnEnabled()) {
230                 _log.warn("No MBMessageFlag exists with the primary key " +
231                     messageFlagId);
232             }
233 
234             throw new NoSuchMessageFlagException(
235                 "No MBMessageFlag exists with the primary key " +
236                 messageFlagId);
237         }
238 
239         return mbMessageFlag;
240     }
241 
242     public MBMessageFlag fetchByPrimaryKey(long messageFlagId)
243         throws SystemException {
244         Session session = null;
245 
246         try {
247             session = openSession();
248 
249             return (MBMessageFlag)session.get(MBMessageFlagImpl.class,
250                 new Long(messageFlagId));
251         }
252         catch (Exception e) {
253             throw processException(e);
254         }
255         finally {
256             closeSession(session);
257         }
258     }
259 
260     public List<MBMessageFlag> findByUserId(long userId)
261         throws SystemException {
262         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
263         String finderClassName = MBMessageFlag.class.getName();
264         String finderMethodName = "findByUserId";
265         String[] finderParams = new String[] { Long.class.getName() };
266         Object[] finderArgs = new Object[] { new Long(userId) };
267 
268         Object result = null;
269 
270         if (finderClassNameCacheEnabled) {
271             result = FinderCacheUtil.getResult(finderClassName,
272                     finderMethodName, finderParams, finderArgs, this);
273         }
274 
275         if (result == null) {
276             Session session = null;
277 
278             try {
279                 session = openSession();
280 
281                 StringBuilder query = new StringBuilder();
282 
283                 query.append(
284                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
285 
286                 query.append("userId = ?");
287 
288                 query.append(" ");
289 
290                 Query q = session.createQuery(query.toString());
291 
292                 QueryPos qPos = QueryPos.getInstance(q);
293 
294                 qPos.add(userId);
295 
296                 List<MBMessageFlag> list = q.list();
297 
298                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
299                     finderClassName, finderMethodName, finderParams,
300                     finderArgs, list);
301 
302                 return list;
303             }
304             catch (Exception e) {
305                 throw processException(e);
306             }
307             finally {
308                 closeSession(session);
309             }
310         }
311         else {
312             return (List<MBMessageFlag>)result;
313         }
314     }
315 
316     public List<MBMessageFlag> findByUserId(long userId, int start, int end)
317         throws SystemException {
318         return findByUserId(userId, start, end, null);
319     }
320 
321     public List<MBMessageFlag> findByUserId(long userId, int start, int end,
322         OrderByComparator obc) throws SystemException {
323         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
324         String finderClassName = MBMessageFlag.class.getName();
325         String finderMethodName = "findByUserId";
326         String[] finderParams = new String[] {
327                 Long.class.getName(),
328                 
329                 "java.lang.Integer", "java.lang.Integer",
330                 "com.liferay.portal.kernel.util.OrderByComparator"
331             };
332         Object[] finderArgs = new Object[] {
333                 new Long(userId),
334                 
335                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
336             };
337 
338         Object result = null;
339 
340         if (finderClassNameCacheEnabled) {
341             result = FinderCacheUtil.getResult(finderClassName,
342                     finderMethodName, finderParams, finderArgs, this);
343         }
344 
345         if (result == null) {
346             Session session = null;
347 
348             try {
349                 session = openSession();
350 
351                 StringBuilder query = new StringBuilder();
352 
353                 query.append(
354                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
355 
356                 query.append("userId = ?");
357 
358                 query.append(" ");
359 
360                 if (obc != null) {
361                     query.append("ORDER BY ");
362                     query.append(obc.getOrderBy());
363                 }
364 
365                 Query q = session.createQuery(query.toString());
366 
367                 QueryPos qPos = QueryPos.getInstance(q);
368 
369                 qPos.add(userId);
370 
371                 List<MBMessageFlag> list = (List<MBMessageFlag>)QueryUtil.list(q,
372                         getDialect(), start, end);
373 
374                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
375                     finderClassName, finderMethodName, finderParams,
376                     finderArgs, list);
377 
378                 return list;
379             }
380             catch (Exception e) {
381                 throw processException(e);
382             }
383             finally {
384                 closeSession(session);
385             }
386         }
387         else {
388             return (List<MBMessageFlag>)result;
389         }
390     }
391 
392     public MBMessageFlag findByUserId_First(long userId, OrderByComparator obc)
393         throws NoSuchMessageFlagException, SystemException {
394         List<MBMessageFlag> list = findByUserId(userId, 0, 1, obc);
395 
396         if (list.size() == 0) {
397             StringBuilder msg = new StringBuilder();
398 
399             msg.append("No MBMessageFlag exists with the key {");
400 
401             msg.append("userId=" + userId);
402 
403             msg.append(StringPool.CLOSE_CURLY_BRACE);
404 
405             throw new NoSuchMessageFlagException(msg.toString());
406         }
407         else {
408             return list.get(0);
409         }
410     }
411 
412     public MBMessageFlag findByUserId_Last(long userId, OrderByComparator obc)
413         throws NoSuchMessageFlagException, SystemException {
414         int count = countByUserId(userId);
415 
416         List<MBMessageFlag> list = findByUserId(userId, count - 1, count, obc);
417 
418         if (list.size() == 0) {
419             StringBuilder msg = new StringBuilder();
420 
421             msg.append("No MBMessageFlag exists with the key {");
422 
423             msg.append("userId=" + userId);
424 
425             msg.append(StringPool.CLOSE_CURLY_BRACE);
426 
427             throw new NoSuchMessageFlagException(msg.toString());
428         }
429         else {
430             return list.get(0);
431         }
432     }
433 
434     public MBMessageFlag[] findByUserId_PrevAndNext(long messageFlagId,
435         long userId, OrderByComparator obc)
436         throws NoSuchMessageFlagException, SystemException {
437         MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
438 
439         int count = countByUserId(userId);
440 
441         Session session = null;
442 
443         try {
444             session = openSession();
445 
446             StringBuilder query = new StringBuilder();
447 
448             query.append(
449                 "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
450 
451             query.append("userId = ?");
452 
453             query.append(" ");
454 
455             if (obc != null) {
456                 query.append("ORDER BY ");
457                 query.append(obc.getOrderBy());
458             }
459 
460             Query q = session.createQuery(query.toString());
461 
462             QueryPos qPos = QueryPos.getInstance(q);
463 
464             qPos.add(userId);
465 
466             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
467                     mbMessageFlag);
468 
469             MBMessageFlag[] array = new MBMessageFlagImpl[3];
470 
471             array[0] = (MBMessageFlag)objArray[0];
472             array[1] = (MBMessageFlag)objArray[1];
473             array[2] = (MBMessageFlag)objArray[2];
474 
475             return array;
476         }
477         catch (Exception e) {
478             throw processException(e);
479         }
480         finally {
481             closeSession(session);
482         }
483     }
484 
485     public List<MBMessageFlag> findByMessageId(long messageId)
486         throws SystemException {
487         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
488         String finderClassName = MBMessageFlag.class.getName();
489         String finderMethodName = "findByMessageId";
490         String[] finderParams = new String[] { Long.class.getName() };
491         Object[] finderArgs = new Object[] { new Long(messageId) };
492 
493         Object result = null;
494 
495         if (finderClassNameCacheEnabled) {
496             result = FinderCacheUtil.getResult(finderClassName,
497                     finderMethodName, finderParams, finderArgs, this);
498         }
499 
500         if (result == null) {
501             Session session = null;
502 
503             try {
504                 session = openSession();
505 
506                 StringBuilder query = new StringBuilder();
507 
508                 query.append(
509                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
510 
511                 query.append("messageId = ?");
512 
513                 query.append(" ");
514 
515                 Query q = session.createQuery(query.toString());
516 
517                 QueryPos qPos = QueryPos.getInstance(q);
518 
519                 qPos.add(messageId);
520 
521                 List<MBMessageFlag> list = q.list();
522 
523                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
524                     finderClassName, finderMethodName, finderParams,
525                     finderArgs, list);
526 
527                 return list;
528             }
529             catch (Exception e) {
530                 throw processException(e);
531             }
532             finally {
533                 closeSession(session);
534             }
535         }
536         else {
537             return (List<MBMessageFlag>)result;
538         }
539     }
540 
541     public List<MBMessageFlag> findByMessageId(long messageId, int start,
542         int end) throws SystemException {
543         return findByMessageId(messageId, start, end, null);
544     }
545 
546     public List<MBMessageFlag> findByMessageId(long messageId, int start,
547         int end, OrderByComparator obc) throws SystemException {
548         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
549         String finderClassName = MBMessageFlag.class.getName();
550         String finderMethodName = "findByMessageId";
551         String[] finderParams = new String[] {
552                 Long.class.getName(),
553                 
554                 "java.lang.Integer", "java.lang.Integer",
555                 "com.liferay.portal.kernel.util.OrderByComparator"
556             };
557         Object[] finderArgs = new Object[] {
558                 new Long(messageId),
559                 
560                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
561             };
562 
563         Object result = null;
564 
565         if (finderClassNameCacheEnabled) {
566             result = FinderCacheUtil.getResult(finderClassName,
567                     finderMethodName, finderParams, finderArgs, this);
568         }
569 
570         if (result == null) {
571             Session session = null;
572 
573             try {
574                 session = openSession();
575 
576                 StringBuilder query = new StringBuilder();
577 
578                 query.append(
579                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
580 
581                 query.append("messageId = ?");
582 
583                 query.append(" ");
584 
585                 if (obc != null) {
586                     query.append("ORDER BY ");
587                     query.append(obc.getOrderBy());
588                 }
589 
590                 Query q = session.createQuery(query.toString());
591 
592                 QueryPos qPos = QueryPos.getInstance(q);
593 
594                 qPos.add(messageId);
595 
596                 List<MBMessageFlag> list = (List<MBMessageFlag>)QueryUtil.list(q,
597                         getDialect(), start, end);
598 
599                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
600                     finderClassName, finderMethodName, finderParams,
601                     finderArgs, list);
602 
603                 return list;
604             }
605             catch (Exception e) {
606                 throw processException(e);
607             }
608             finally {
609                 closeSession(session);
610             }
611         }
612         else {
613             return (List<MBMessageFlag>)result;
614         }
615     }
616 
617     public MBMessageFlag findByMessageId_First(long messageId,
618         OrderByComparator obc)
619         throws NoSuchMessageFlagException, SystemException {
620         List<MBMessageFlag> list = findByMessageId(messageId, 0, 1, obc);
621 
622         if (list.size() == 0) {
623             StringBuilder msg = new StringBuilder();
624 
625             msg.append("No MBMessageFlag exists with the key {");
626 
627             msg.append("messageId=" + messageId);
628 
629             msg.append(StringPool.CLOSE_CURLY_BRACE);
630 
631             throw new NoSuchMessageFlagException(msg.toString());
632         }
633         else {
634             return list.get(0);
635         }
636     }
637 
638     public MBMessageFlag findByMessageId_Last(long messageId,
639         OrderByComparator obc)
640         throws NoSuchMessageFlagException, SystemException {
641         int count = countByMessageId(messageId);
642 
643         List<MBMessageFlag> list = findByMessageId(messageId, count - 1, count,
644                 obc);
645 
646         if (list.size() == 0) {
647             StringBuilder msg = new StringBuilder();
648 
649             msg.append("No MBMessageFlag exists with the key {");
650 
651             msg.append("messageId=" + messageId);
652 
653             msg.append(StringPool.CLOSE_CURLY_BRACE);
654 
655             throw new NoSuchMessageFlagException(msg.toString());
656         }
657         else {
658             return list.get(0);
659         }
660     }
661 
662     public MBMessageFlag[] findByMessageId_PrevAndNext(long messageFlagId,
663         long messageId, OrderByComparator obc)
664         throws NoSuchMessageFlagException, SystemException {
665         MBMessageFlag mbMessageFlag = findByPrimaryKey(messageFlagId);
666 
667         int count = countByMessageId(messageId);
668 
669         Session session = null;
670 
671         try {
672             session = openSession();
673 
674             StringBuilder query = new StringBuilder();
675 
676             query.append(
677                 "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
678 
679             query.append("messageId = ?");
680 
681             query.append(" ");
682 
683             if (obc != null) {
684                 query.append("ORDER BY ");
685                 query.append(obc.getOrderBy());
686             }
687 
688             Query q = session.createQuery(query.toString());
689 
690             QueryPos qPos = QueryPos.getInstance(q);
691 
692             qPos.add(messageId);
693 
694             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
695                     mbMessageFlag);
696 
697             MBMessageFlag[] array = new MBMessageFlagImpl[3];
698 
699             array[0] = (MBMessageFlag)objArray[0];
700             array[1] = (MBMessageFlag)objArray[1];
701             array[2] = (MBMessageFlag)objArray[2];
702 
703             return array;
704         }
705         catch (Exception e) {
706             throw processException(e);
707         }
708         finally {
709             closeSession(session);
710         }
711     }
712 
713     public MBMessageFlag findByU_M(long userId, long messageId)
714         throws NoSuchMessageFlagException, SystemException {
715         MBMessageFlag mbMessageFlag = fetchByU_M(userId, messageId);
716 
717         if (mbMessageFlag == null) {
718             StringBuilder msg = new StringBuilder();
719 
720             msg.append("No MBMessageFlag exists with the key {");
721 
722             msg.append("userId=" + userId);
723 
724             msg.append(", ");
725             msg.append("messageId=" + messageId);
726 
727             msg.append(StringPool.CLOSE_CURLY_BRACE);
728 
729             if (_log.isWarnEnabled()) {
730                 _log.warn(msg.toString());
731             }
732 
733             throw new NoSuchMessageFlagException(msg.toString());
734         }
735 
736         return mbMessageFlag;
737     }
738 
739     public MBMessageFlag fetchByU_M(long userId, long messageId)
740         throws SystemException {
741         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
742         String finderClassName = MBMessageFlag.class.getName();
743         String finderMethodName = "fetchByU_M";
744         String[] finderParams = new String[] {
745                 Long.class.getName(), Long.class.getName()
746             };
747         Object[] finderArgs = new Object[] { new Long(userId), new Long(messageId) };
748 
749         Object result = null;
750 
751         if (finderClassNameCacheEnabled) {
752             result = FinderCacheUtil.getResult(finderClassName,
753                     finderMethodName, finderParams, finderArgs, this);
754         }
755 
756         if (result == null) {
757             Session session = null;
758 
759             try {
760                 session = openSession();
761 
762                 StringBuilder query = new StringBuilder();
763 
764                 query.append(
765                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
766 
767                 query.append("userId = ?");
768 
769                 query.append(" AND ");
770 
771                 query.append("messageId = ?");
772 
773                 query.append(" ");
774 
775                 Query q = session.createQuery(query.toString());
776 
777                 QueryPos qPos = QueryPos.getInstance(q);
778 
779                 qPos.add(userId);
780 
781                 qPos.add(messageId);
782 
783                 List<MBMessageFlag> list = q.list();
784 
785                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
786                     finderClassName, finderMethodName, finderParams,
787                     finderArgs, list);
788 
789                 if (list.size() == 0) {
790                     return null;
791                 }
792                 else {
793                     return list.get(0);
794                 }
795             }
796             catch (Exception e) {
797                 throw processException(e);
798             }
799             finally {
800                 closeSession(session);
801             }
802         }
803         else {
804             List<MBMessageFlag> list = (List<MBMessageFlag>)result;
805 
806             if (list.size() == 0) {
807                 return null;
808             }
809             else {
810                 return list.get(0);
811             }
812         }
813     }
814 
815     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
816         throws SystemException {
817         Session session = null;
818 
819         try {
820             session = openSession();
821 
822             dynamicQuery.compile(session);
823 
824             return dynamicQuery.list();
825         }
826         catch (Exception e) {
827             throw processException(e);
828         }
829         finally {
830             closeSession(session);
831         }
832     }
833 
834     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
835         int start, int end) throws SystemException {
836         Session session = null;
837 
838         try {
839             session = openSession();
840 
841             dynamicQuery.setLimit(start, end);
842 
843             dynamicQuery.compile(session);
844 
845             return dynamicQuery.list();
846         }
847         catch (Exception e) {
848             throw processException(e);
849         }
850         finally {
851             closeSession(session);
852         }
853     }
854 
855     public List<MBMessageFlag> findAll() throws SystemException {
856         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
857     }
858 
859     public List<MBMessageFlag> findAll(int start, int end)
860         throws SystemException {
861         return findAll(start, end, null);
862     }
863 
864     public List<MBMessageFlag> findAll(int start, int end, OrderByComparator obc)
865         throws SystemException {
866         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
867         String finderClassName = MBMessageFlag.class.getName();
868         String finderMethodName = "findAll";
869         String[] finderParams = new String[] {
870                 "java.lang.Integer", "java.lang.Integer",
871                 "com.liferay.portal.kernel.util.OrderByComparator"
872             };
873         Object[] finderArgs = new Object[] {
874                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
875             };
876 
877         Object result = null;
878 
879         if (finderClassNameCacheEnabled) {
880             result = FinderCacheUtil.getResult(finderClassName,
881                     finderMethodName, finderParams, finderArgs, this);
882         }
883 
884         if (result == null) {
885             Session session = null;
886 
887             try {
888                 session = openSession();
889 
890                 StringBuilder query = new StringBuilder();
891 
892                 query.append(
893                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag ");
894 
895                 if (obc != null) {
896                     query.append("ORDER BY ");
897                     query.append(obc.getOrderBy());
898                 }
899 
900                 Query q = session.createQuery(query.toString());
901 
902                 List<MBMessageFlag> list = null;
903 
904                 if (obc == null) {
905                     list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
906                             start, end, false);
907 
908                     Collections.sort(list);
909                 }
910                 else {
911                     list = (List<MBMessageFlag>)QueryUtil.list(q, getDialect(),
912                             start, end);
913                 }
914 
915                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
916                     finderClassName, finderMethodName, finderParams,
917                     finderArgs, list);
918 
919                 return list;
920             }
921             catch (Exception e) {
922                 throw processException(e);
923             }
924             finally {
925                 closeSession(session);
926             }
927         }
928         else {
929             return (List<MBMessageFlag>)result;
930         }
931     }
932 
933     public void removeByUserId(long userId) throws SystemException {
934         for (MBMessageFlag mbMessageFlag : findByUserId(userId)) {
935             remove(mbMessageFlag);
936         }
937     }
938 
939     public void removeByMessageId(long messageId) throws SystemException {
940         for (MBMessageFlag mbMessageFlag : findByMessageId(messageId)) {
941             remove(mbMessageFlag);
942         }
943     }
944 
945     public void removeByU_M(long userId, long messageId)
946         throws NoSuchMessageFlagException, SystemException {
947         MBMessageFlag mbMessageFlag = findByU_M(userId, messageId);
948 
949         remove(mbMessageFlag);
950     }
951 
952     public void removeAll() throws SystemException {
953         for (MBMessageFlag mbMessageFlag : findAll()) {
954             remove(mbMessageFlag);
955         }
956     }
957 
958     public int countByUserId(long userId) throws SystemException {
959         boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
960         String finderClassName = MBMessageFlag.class.getName();
961         String finderMethodName = "countByUserId";
962         String[] finderParams = new String[] { Long.class.getName() };
963         Object[] finderArgs = new Object[] { new Long(userId) };
964 
965         Object result = null;
966 
967         if (finderClassNameCacheEnabled) {
968             result = FinderCacheUtil.getResult(finderClassName,
969                     finderMethodName, finderParams, finderArgs, this);
970         }
971 
972         if (result == null) {
973             Session session = null;
974 
975             try {
976                 session = openSession();
977 
978                 StringBuilder query = new StringBuilder();
979 
980                 query.append("SELECT COUNT(*) ");
981                 query.append(
982                     "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
983 
984                 query.append("userId = ?");
985 
986                 query.append(" ");
987 
988                 Query q = session.createQuery(query.toString());
989 
990                 QueryPos qPos = QueryPos.getInstance(q);
991 
992                 qPos.add(userId);
993 
994                 Long count = null;
995 
996                 Iterator<Long> itr = q.list().iterator();
997 
998                 if (itr.hasNext()) {
999                     count = itr.next();
1000                }
1001
1002                if (count == null) {
1003                    count = new Long(0);
1004                }
1005
1006                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1007                    finderClassName, finderMethodName, finderParams,
1008                    finderArgs, count);
1009
1010                return count.intValue();
1011            }
1012            catch (Exception e) {
1013                throw processException(e);
1014            }
1015            finally {
1016                closeSession(session);
1017            }
1018        }
1019        else {
1020            return ((Long)result).intValue();
1021        }
1022    }
1023
1024    public int countByMessageId(long messageId) throws SystemException {
1025        boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
1026        String finderClassName = MBMessageFlag.class.getName();
1027        String finderMethodName = "countByMessageId";
1028        String[] finderParams = new String[] { Long.class.getName() };
1029        Object[] finderArgs = new Object[] { new Long(messageId) };
1030
1031        Object result = null;
1032
1033        if (finderClassNameCacheEnabled) {
1034            result = FinderCacheUtil.getResult(finderClassName,
1035                    finderMethodName, finderParams, finderArgs, this);
1036        }
1037
1038        if (result == null) {
1039            Session session = null;
1040
1041            try {
1042                session = openSession();
1043
1044                StringBuilder query = new StringBuilder();
1045
1046                query.append("SELECT COUNT(*) ");
1047                query.append(
1048                    "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
1049
1050                query.append("messageId = ?");
1051
1052                query.append(" ");
1053
1054                Query q = session.createQuery(query.toString());
1055
1056                QueryPos qPos = QueryPos.getInstance(q);
1057
1058                qPos.add(messageId);
1059
1060                Long count = null;
1061
1062                Iterator<Long> itr = q.list().iterator();
1063
1064                if (itr.hasNext()) {
1065                    count = itr.next();
1066                }
1067
1068                if (count == null) {
1069                    count = new Long(0);
1070                }
1071
1072                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1073                    finderClassName, finderMethodName, finderParams,
1074                    finderArgs, count);
1075
1076                return count.intValue();
1077            }
1078            catch (Exception e) {
1079                throw processException(e);
1080            }
1081            finally {
1082                closeSession(session);
1083            }
1084        }
1085        else {
1086            return ((Long)result).intValue();
1087        }
1088    }
1089
1090    public int countByU_M(long userId, long messageId)
1091        throws SystemException {
1092        boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
1093        String finderClassName = MBMessageFlag.class.getName();
1094        String finderMethodName = "countByU_M";
1095        String[] finderParams = new String[] {
1096                Long.class.getName(), Long.class.getName()
1097            };
1098        Object[] finderArgs = new Object[] { new Long(userId), new Long(messageId) };
1099
1100        Object result = null;
1101
1102        if (finderClassNameCacheEnabled) {
1103            result = FinderCacheUtil.getResult(finderClassName,
1104                    finderMethodName, finderParams, finderArgs, this);
1105        }
1106
1107        if (result == null) {
1108            Session session = null;
1109
1110            try {
1111                session = openSession();
1112
1113                StringBuilder query = new StringBuilder();
1114
1115                query.append("SELECT COUNT(*) ");
1116                query.append(
1117                    "FROM com.liferay.portlet.messageboards.model.MBMessageFlag WHERE ");
1118
1119                query.append("userId = ?");
1120
1121                query.append(" AND ");
1122
1123                query.append("messageId = ?");
1124
1125                query.append(" ");
1126
1127                Query q = session.createQuery(query.toString());
1128
1129                QueryPos qPos = QueryPos.getInstance(q);
1130
1131                qPos.add(userId);
1132
1133                qPos.add(messageId);
1134
1135                Long count = null;
1136
1137                Iterator<Long> itr = q.list().iterator();
1138
1139                if (itr.hasNext()) {
1140                    count = itr.next();
1141                }
1142
1143                if (count == null) {
1144                    count = new Long(0);
1145                }
1146
1147                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1148                    finderClassName, finderMethodName, finderParams,
1149                    finderArgs, count);
1150
1151                return count.intValue();
1152            }
1153            catch (Exception e) {
1154                throw processException(e);
1155            }
1156            finally {
1157                closeSession(session);
1158            }
1159        }
1160        else {
1161            return ((Long)result).intValue();
1162        }
1163    }
1164
1165    public int countAll() throws SystemException {
1166        boolean finderClassNameCacheEnabled = MBMessageFlagModelImpl.CACHE_ENABLED;
1167        String finderClassName = MBMessageFlag.class.getName();
1168        String finderMethodName = "countAll";
1169        String[] finderParams = new String[] {  };
1170        Object[] finderArgs = new Object[] {  };
1171
1172        Object result = null;
1173
1174        if (finderClassNameCacheEnabled) {
1175            result = FinderCacheUtil.getResult(finderClassName,
1176                    finderMethodName, finderParams, finderArgs, this);
1177        }
1178
1179        if (result == null) {
1180            Session session = null;
1181
1182            try {
1183                session = openSession();
1184
1185                Query q = session.createQuery(
1186                        "SELECT COUNT(*) FROM com.liferay.portlet.messageboards.model.MBMessageFlag");
1187
1188                Long count = null;
1189
1190                Iterator<Long> itr = q.list().iterator();
1191
1192                if (itr.hasNext()) {
1193                    count = itr.next();
1194                }
1195
1196                if (count == null) {
1197                    count = new Long(0);
1198                }
1199
1200                FinderCacheUtil.putResult(finderClassNameCacheEnabled,
1201                    finderClassName, finderMethodName, finderParams,
1202                    finderArgs, count);
1203
1204                return count.intValue();
1205            }
1206            catch (Exception e) {
1207                throw processException(e);
1208            }
1209            finally {
1210                closeSession(session);
1211            }
1212        }
1213        else {
1214            return ((Long)result).intValue();
1215        }
1216    }
1217
1218    public void afterPropertiesSet() {
1219        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1220                    com.liferay.portal.util.PropsUtil.get(
1221                        "value.object.listener.com.liferay.portlet.messageboards.model.MBMessageFlag")));
1222
1223        if (listenerClassNames.length > 0) {
1224            try {
1225                List<ModelListener> listenersList = new ArrayList<ModelListener>();
1226
1227                for (String listenerClassName : listenerClassNames) {
1228                    listenersList.add((ModelListener)Class.forName(
1229                            listenerClassName).newInstance());
1230                }
1231
1232                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1233            }
1234            catch (Exception e) {
1235                _log.error(e);
1236            }
1237        }
1238    }
1239
1240    private static Log _log = LogFactoryUtil.getLog(MBMessageFlagPersistenceImpl.class);
1241}