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