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