1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portlet.journal.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.kernel.annotation.BeanReference;
19  import com.liferay.portal.kernel.cache.CacheRegistry;
20  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
21  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
22  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderPath;
24  import com.liferay.portal.kernel.dao.orm.Query;
25  import com.liferay.portal.kernel.dao.orm.QueryPos;
26  import com.liferay.portal.kernel.dao.orm.QueryUtil;
27  import com.liferay.portal.kernel.dao.orm.Session;
28  import com.liferay.portal.kernel.exception.SystemException;
29  import com.liferay.portal.kernel.log.Log;
30  import com.liferay.portal.kernel.log.LogFactoryUtil;
31  import com.liferay.portal.kernel.util.GetterUtil;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.kernel.util.Validator;
37  import com.liferay.portal.model.ModelListener;
38  import com.liferay.portal.service.persistence.BatchSessionUtil;
39  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
40  
41  import com.liferay.portlet.journal.NoSuchArticleImageException;
42  import com.liferay.portlet.journal.model.JournalArticleImage;
43  import com.liferay.portlet.journal.model.impl.JournalArticleImageImpl;
44  import com.liferay.portlet.journal.model.impl.JournalArticleImageModelImpl;
45  
46  import java.io.Serializable;
47  
48  import java.util.ArrayList;
49  import java.util.Collections;
50  import java.util.List;
51  
52  /**
53   * <a href="JournalArticleImagePersistenceImpl.java.html"><b><i>View Source</i></b></a>
54   *
55   * <p>
56   * ServiceBuilder generated this class. Modifications in this class will be
57   * overwritten the next time is generated.
58   * </p>
59   *
60   * @author    Brian Wing Shun Chan
61   * @see       JournalArticleImagePersistence
62   * @see       JournalArticleImageUtil
63   * @generated
64   */
65  public class JournalArticleImagePersistenceImpl extends BasePersistenceImpl<JournalArticleImage>
66      implements JournalArticleImagePersistence {
67      public static final String FINDER_CLASS_NAME_ENTITY = JournalArticleImageImpl.class.getName();
68      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
69          ".List";
70      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
71              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
72              FINDER_CLASS_NAME_LIST, "findByGroupId",
73              new String[] { Long.class.getName() });
74      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
75              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
76              FINDER_CLASS_NAME_LIST, "findByGroupId",
77              new String[] {
78                  Long.class.getName(),
79                  
80              "java.lang.Integer", "java.lang.Integer",
81                  "com.liferay.portal.kernel.util.OrderByComparator"
82              });
83      public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
84              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "countByGroupId",
86              new String[] { Long.class.getName() });
87      public static final FinderPath FINDER_PATH_FIND_BY_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
88              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
89              FINDER_CLASS_NAME_LIST, "findByTempImage",
90              new String[] { Boolean.class.getName() });
91      public static final FinderPath FINDER_PATH_FIND_BY_OBC_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
92              JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
93              FINDER_CLASS_NAME_LIST, "findByTempImage",
94              new String[] {
95                  Boolean.class.getName(),
96                  
97              "java.lang.Integer", "java.lang.Integer",
98                  "com.liferay.portal.kernel.util.OrderByComparator"
99              });
100     public static final FinderPath FINDER_PATH_COUNT_BY_TEMPIMAGE = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
101             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
102             FINDER_CLASS_NAME_LIST, "countByTempImage",
103             new String[] { Boolean.class.getName() });
104     public static final FinderPath FINDER_PATH_FIND_BY_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
105             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
106             FINDER_CLASS_NAME_LIST, "findByG_A_V",
107             new String[] {
108                 Long.class.getName(), String.class.getName(),
109                 Double.class.getName()
110             });
111     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
112             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
113             FINDER_CLASS_NAME_LIST, "findByG_A_V",
114             new String[] {
115                 Long.class.getName(), String.class.getName(),
116                 Double.class.getName(),
117                 
118             "java.lang.Integer", "java.lang.Integer",
119                 "com.liferay.portal.kernel.util.OrderByComparator"
120             });
121     public static final FinderPath FINDER_PATH_COUNT_BY_G_A_V = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
122             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
123             FINDER_CLASS_NAME_LIST, "countByG_A_V",
124             new String[] {
125                 Long.class.getName(), String.class.getName(),
126                 Double.class.getName()
127             });
128     public static final FinderPath FINDER_PATH_FETCH_BY_G_A_V_E_E_L = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
129             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
130             FINDER_CLASS_NAME_ENTITY, "fetchByG_A_V_E_E_L",
131             new String[] {
132                 Long.class.getName(), String.class.getName(),
133                 Double.class.getName(), String.class.getName(),
134                 String.class.getName(), String.class.getName()
135             });
136     public static final FinderPath FINDER_PATH_COUNT_BY_G_A_V_E_E_L = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
137             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
138             FINDER_CLASS_NAME_LIST, "countByG_A_V_E_E_L",
139             new String[] {
140                 Long.class.getName(), String.class.getName(),
141                 Double.class.getName(), String.class.getName(),
142                 String.class.getName(), String.class.getName()
143             });
144     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
145             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
146             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
147     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
148             JournalArticleImageModelImpl.FINDER_CACHE_ENABLED,
149             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
150 
151     public void cacheResult(JournalArticleImage journalArticleImage) {
152         EntityCacheUtil.putResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
153             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey(),
154             journalArticleImage);
155 
156         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
157             new Object[] {
158                 new Long(journalArticleImage.getGroupId()),
159                 
160             journalArticleImage.getArticleId(),
161                 new Double(journalArticleImage.getVersion()),
162                 
163             journalArticleImage.getElInstanceId(),
164                 
165             journalArticleImage.getElName(),
166                 
167             journalArticleImage.getLanguageId()
168             }, journalArticleImage);
169     }
170 
171     public void cacheResult(List<JournalArticleImage> journalArticleImages) {
172         for (JournalArticleImage journalArticleImage : journalArticleImages) {
173             if (EntityCacheUtil.getResult(
174                         JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
175                         JournalArticleImageImpl.class,
176                         journalArticleImage.getPrimaryKey(), this) == null) {
177                 cacheResult(journalArticleImage);
178             }
179         }
180     }
181 
182     public void clearCache() {
183         CacheRegistry.clear(JournalArticleImageImpl.class.getName());
184         EntityCacheUtil.clearCache(JournalArticleImageImpl.class.getName());
185         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
186         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
187     }
188 
189     public JournalArticleImage create(long articleImageId) {
190         JournalArticleImage journalArticleImage = new JournalArticleImageImpl();
191 
192         journalArticleImage.setNew(true);
193         journalArticleImage.setPrimaryKey(articleImageId);
194 
195         return journalArticleImage;
196     }
197 
198     public JournalArticleImage remove(Serializable primaryKey)
199         throws NoSuchModelException, SystemException {
200         return remove(((Long)primaryKey).longValue());
201     }
202 
203     public JournalArticleImage remove(long articleImageId)
204         throws NoSuchArticleImageException, SystemException {
205         Session session = null;
206 
207         try {
208             session = openSession();
209 
210             JournalArticleImage journalArticleImage = (JournalArticleImage)session.get(JournalArticleImageImpl.class,
211                     new Long(articleImageId));
212 
213             if (journalArticleImage == null) {
214                 if (_log.isWarnEnabled()) {
215                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
216                         articleImageId);
217                 }
218 
219                 throw new NoSuchArticleImageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
220                     articleImageId);
221             }
222 
223             return remove(journalArticleImage);
224         }
225         catch (NoSuchArticleImageException nsee) {
226             throw nsee;
227         }
228         catch (Exception e) {
229             throw processException(e);
230         }
231         finally {
232             closeSession(session);
233         }
234     }
235 
236     public JournalArticleImage remove(JournalArticleImage journalArticleImage)
237         throws SystemException {
238         for (ModelListener<JournalArticleImage> listener : listeners) {
239             listener.onBeforeRemove(journalArticleImage);
240         }
241 
242         journalArticleImage = removeImpl(journalArticleImage);
243 
244         for (ModelListener<JournalArticleImage> listener : listeners) {
245             listener.onAfterRemove(journalArticleImage);
246         }
247 
248         return journalArticleImage;
249     }
250 
251     protected JournalArticleImage removeImpl(
252         JournalArticleImage journalArticleImage) throws SystemException {
253         journalArticleImage = toUnwrappedModel(journalArticleImage);
254 
255         Session session = null;
256 
257         try {
258             session = openSession();
259 
260             if (journalArticleImage.isCachedModel() ||
261                     BatchSessionUtil.isEnabled()) {
262                 Object staleObject = session.get(JournalArticleImageImpl.class,
263                         journalArticleImage.getPrimaryKeyObj());
264 
265                 if (staleObject != null) {
266                     session.evict(staleObject);
267                 }
268             }
269 
270             session.delete(journalArticleImage);
271 
272             session.flush();
273         }
274         catch (Exception e) {
275             throw processException(e);
276         }
277         finally {
278             closeSession(session);
279         }
280 
281         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
282 
283         JournalArticleImageModelImpl journalArticleImageModelImpl = (JournalArticleImageModelImpl)journalArticleImage;
284 
285         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
286             new Object[] {
287                 new Long(journalArticleImageModelImpl.getOriginalGroupId()),
288                 
289             journalArticleImageModelImpl.getOriginalArticleId(),
290                 new Double(journalArticleImageModelImpl.getOriginalVersion()),
291                 
292             journalArticleImageModelImpl.getOriginalElInstanceId(),
293                 
294             journalArticleImageModelImpl.getOriginalElName(),
295                 
296             journalArticleImageModelImpl.getOriginalLanguageId()
297             });
298 
299         EntityCacheUtil.removeResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
300             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey());
301 
302         return journalArticleImage;
303     }
304 
305     public JournalArticleImage updateImpl(
306         com.liferay.portlet.journal.model.JournalArticleImage journalArticleImage,
307         boolean merge) throws SystemException {
308         journalArticleImage = toUnwrappedModel(journalArticleImage);
309 
310         boolean isNew = journalArticleImage.isNew();
311 
312         JournalArticleImageModelImpl journalArticleImageModelImpl = (JournalArticleImageModelImpl)journalArticleImage;
313 
314         Session session = null;
315 
316         try {
317             session = openSession();
318 
319             BatchSessionUtil.update(session, journalArticleImage, merge);
320 
321             journalArticleImage.setNew(false);
322         }
323         catch (Exception e) {
324             throw processException(e);
325         }
326         finally {
327             closeSession(session);
328         }
329 
330         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
331 
332         EntityCacheUtil.putResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
333             JournalArticleImageImpl.class, journalArticleImage.getPrimaryKey(),
334             journalArticleImage);
335 
336         if (!isNew &&
337                 ((journalArticleImage.getGroupId() != journalArticleImageModelImpl.getOriginalGroupId()) ||
338                 !Validator.equals(journalArticleImage.getArticleId(),
339                     journalArticleImageModelImpl.getOriginalArticleId()) ||
340                 (journalArticleImage.getVersion() != journalArticleImageModelImpl.getOriginalVersion()) ||
341                 !Validator.equals(journalArticleImage.getElInstanceId(),
342                     journalArticleImageModelImpl.getOriginalElInstanceId()) ||
343                 !Validator.equals(journalArticleImage.getElName(),
344                     journalArticleImageModelImpl.getOriginalElName()) ||
345                 !Validator.equals(journalArticleImage.getLanguageId(),
346                     journalArticleImageModelImpl.getOriginalLanguageId()))) {
347             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
348                 new Object[] {
349                     new Long(journalArticleImageModelImpl.getOriginalGroupId()),
350                     
351                 journalArticleImageModelImpl.getOriginalArticleId(),
352                     new Double(journalArticleImageModelImpl.getOriginalVersion()),
353                     
354                 journalArticleImageModelImpl.getOriginalElInstanceId(),
355                     
356                 journalArticleImageModelImpl.getOriginalElName(),
357                     
358                 journalArticleImageModelImpl.getOriginalLanguageId()
359                 });
360         }
361 
362         if (isNew ||
363                 ((journalArticleImage.getGroupId() != journalArticleImageModelImpl.getOriginalGroupId()) ||
364                 !Validator.equals(journalArticleImage.getArticleId(),
365                     journalArticleImageModelImpl.getOriginalArticleId()) ||
366                 (journalArticleImage.getVersion() != journalArticleImageModelImpl.getOriginalVersion()) ||
367                 !Validator.equals(journalArticleImage.getElInstanceId(),
368                     journalArticleImageModelImpl.getOriginalElInstanceId()) ||
369                 !Validator.equals(journalArticleImage.getElName(),
370                     journalArticleImageModelImpl.getOriginalElName()) ||
371                 !Validator.equals(journalArticleImage.getLanguageId(),
372                     journalArticleImageModelImpl.getOriginalLanguageId()))) {
373             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
374                 new Object[] {
375                     new Long(journalArticleImage.getGroupId()),
376                     
377                 journalArticleImage.getArticleId(),
378                     new Double(journalArticleImage.getVersion()),
379                     
380                 journalArticleImage.getElInstanceId(),
381                     
382                 journalArticleImage.getElName(),
383                     
384                 journalArticleImage.getLanguageId()
385                 }, journalArticleImage);
386         }
387 
388         return journalArticleImage;
389     }
390 
391     protected JournalArticleImage toUnwrappedModel(
392         JournalArticleImage journalArticleImage) {
393         if (journalArticleImage instanceof JournalArticleImageImpl) {
394             return journalArticleImage;
395         }
396 
397         JournalArticleImageImpl journalArticleImageImpl = new JournalArticleImageImpl();
398 
399         journalArticleImageImpl.setNew(journalArticleImage.isNew());
400         journalArticleImageImpl.setPrimaryKey(journalArticleImage.getPrimaryKey());
401 
402         journalArticleImageImpl.setArticleImageId(journalArticleImage.getArticleImageId());
403         journalArticleImageImpl.setGroupId(journalArticleImage.getGroupId());
404         journalArticleImageImpl.setArticleId(journalArticleImage.getArticleId());
405         journalArticleImageImpl.setVersion(journalArticleImage.getVersion());
406         journalArticleImageImpl.setElInstanceId(journalArticleImage.getElInstanceId());
407         journalArticleImageImpl.setElName(journalArticleImage.getElName());
408         journalArticleImageImpl.setLanguageId(journalArticleImage.getLanguageId());
409         journalArticleImageImpl.setTempImage(journalArticleImage.isTempImage());
410 
411         return journalArticleImageImpl;
412     }
413 
414     public JournalArticleImage findByPrimaryKey(Serializable primaryKey)
415         throws NoSuchModelException, SystemException {
416         return findByPrimaryKey(((Long)primaryKey).longValue());
417     }
418 
419     public JournalArticleImage findByPrimaryKey(long articleImageId)
420         throws NoSuchArticleImageException, SystemException {
421         JournalArticleImage journalArticleImage = fetchByPrimaryKey(articleImageId);
422 
423         if (journalArticleImage == null) {
424             if (_log.isWarnEnabled()) {
425                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + articleImageId);
426             }
427 
428             throw new NoSuchArticleImageException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
429                 articleImageId);
430         }
431 
432         return journalArticleImage;
433     }
434 
435     public JournalArticleImage fetchByPrimaryKey(Serializable primaryKey)
436         throws SystemException {
437         return fetchByPrimaryKey(((Long)primaryKey).longValue());
438     }
439 
440     public JournalArticleImage fetchByPrimaryKey(long articleImageId)
441         throws SystemException {
442         JournalArticleImage journalArticleImage = (JournalArticleImage)EntityCacheUtil.getResult(JournalArticleImageModelImpl.ENTITY_CACHE_ENABLED,
443                 JournalArticleImageImpl.class, articleImageId, this);
444 
445         if (journalArticleImage == null) {
446             Session session = null;
447 
448             try {
449                 session = openSession();
450 
451                 journalArticleImage = (JournalArticleImage)session.get(JournalArticleImageImpl.class,
452                         new Long(articleImageId));
453             }
454             catch (Exception e) {
455                 throw processException(e);
456             }
457             finally {
458                 if (journalArticleImage != null) {
459                     cacheResult(journalArticleImage);
460                 }
461 
462                 closeSession(session);
463             }
464         }
465 
466         return journalArticleImage;
467     }
468 
469     public List<JournalArticleImage> findByGroupId(long groupId)
470         throws SystemException {
471         Object[] finderArgs = new Object[] { new Long(groupId) };
472 
473         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
474                 finderArgs, this);
475 
476         if (list == null) {
477             Session session = null;
478 
479             try {
480                 session = openSession();
481 
482                 StringBundler query = new StringBundler(2);
483 
484                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
485 
486                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
487 
488                 String sql = query.toString();
489 
490                 Query q = session.createQuery(sql);
491 
492                 QueryPos qPos = QueryPos.getInstance(q);
493 
494                 qPos.add(groupId);
495 
496                 list = q.list();
497             }
498             catch (Exception e) {
499                 throw processException(e);
500             }
501             finally {
502                 if (list == null) {
503                     list = new ArrayList<JournalArticleImage>();
504                 }
505 
506                 cacheResult(list);
507 
508                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
509                     finderArgs, list);
510 
511                 closeSession(session);
512             }
513         }
514 
515         return list;
516     }
517 
518     public List<JournalArticleImage> findByGroupId(long groupId, int start,
519         int end) throws SystemException {
520         return findByGroupId(groupId, start, end, null);
521     }
522 
523     public List<JournalArticleImage> findByGroupId(long groupId, int start,
524         int end, OrderByComparator obc) throws SystemException {
525         Object[] finderArgs = new Object[] {
526                 new Long(groupId),
527                 
528                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
529             };
530 
531         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
532                 finderArgs, this);
533 
534         if (list == null) {
535             Session session = null;
536 
537             try {
538                 session = openSession();
539 
540                 StringBundler query = null;
541 
542                 if (obc != null) {
543                     query = new StringBundler(3 +
544                             (obc.getOrderByFields().length * 3));
545                 }
546                 else {
547                     query = new StringBundler(2);
548                 }
549 
550                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
551 
552                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
553 
554                 if (obc != null) {
555                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
556                 }
557 
558                 String sql = query.toString();
559 
560                 Query q = session.createQuery(sql);
561 
562                 QueryPos qPos = QueryPos.getInstance(q);
563 
564                 qPos.add(groupId);
565 
566                 list = (List<JournalArticleImage>)QueryUtil.list(q,
567                         getDialect(), start, end);
568             }
569             catch (Exception e) {
570                 throw processException(e);
571             }
572             finally {
573                 if (list == null) {
574                     list = new ArrayList<JournalArticleImage>();
575                 }
576 
577                 cacheResult(list);
578 
579                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
580                     finderArgs, list);
581 
582                 closeSession(session);
583             }
584         }
585 
586         return list;
587     }
588 
589     public JournalArticleImage findByGroupId_First(long groupId,
590         OrderByComparator obc)
591         throws NoSuchArticleImageException, SystemException {
592         List<JournalArticleImage> list = findByGroupId(groupId, 0, 1, obc);
593 
594         if (list.isEmpty()) {
595             StringBundler msg = new StringBundler(4);
596 
597             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
598 
599             msg.append("groupId=");
600             msg.append(groupId);
601 
602             msg.append(StringPool.CLOSE_CURLY_BRACE);
603 
604             throw new NoSuchArticleImageException(msg.toString());
605         }
606         else {
607             return list.get(0);
608         }
609     }
610 
611     public JournalArticleImage findByGroupId_Last(long groupId,
612         OrderByComparator obc)
613         throws NoSuchArticleImageException, SystemException {
614         int count = countByGroupId(groupId);
615 
616         List<JournalArticleImage> list = findByGroupId(groupId, count - 1,
617                 count, obc);
618 
619         if (list.isEmpty()) {
620             StringBundler msg = new StringBundler(4);
621 
622             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
623 
624             msg.append("groupId=");
625             msg.append(groupId);
626 
627             msg.append(StringPool.CLOSE_CURLY_BRACE);
628 
629             throw new NoSuchArticleImageException(msg.toString());
630         }
631         else {
632             return list.get(0);
633         }
634     }
635 
636     public JournalArticleImage[] findByGroupId_PrevAndNext(
637         long articleImageId, long groupId, OrderByComparator obc)
638         throws NoSuchArticleImageException, SystemException {
639         JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
640 
641         int count = countByGroupId(groupId);
642 
643         Session session = null;
644 
645         try {
646             session = openSession();
647 
648             StringBundler query = null;
649 
650             if (obc != null) {
651                 query = new StringBundler(3 +
652                         (obc.getOrderByFields().length * 3));
653             }
654             else {
655                 query = new StringBundler(2);
656             }
657 
658             query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
659 
660             query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
661 
662             if (obc != null) {
663                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
664             }
665 
666             String sql = query.toString();
667 
668             Query q = session.createQuery(sql);
669 
670             QueryPos qPos = QueryPos.getInstance(q);
671 
672             qPos.add(groupId);
673 
674             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
675                     journalArticleImage);
676 
677             JournalArticleImage[] array = new JournalArticleImageImpl[3];
678 
679             array[0] = (JournalArticleImage)objArray[0];
680             array[1] = (JournalArticleImage)objArray[1];
681             array[2] = (JournalArticleImage)objArray[2];
682 
683             return array;
684         }
685         catch (Exception e) {
686             throw processException(e);
687         }
688         finally {
689             closeSession(session);
690         }
691     }
692 
693     public List<JournalArticleImage> findByTempImage(boolean tempImage)
694         throws SystemException {
695         Object[] finderArgs = new Object[] { Boolean.valueOf(tempImage) };
696 
697         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_TEMPIMAGE,
698                 finderArgs, this);
699 
700         if (list == null) {
701             Session session = null;
702 
703             try {
704                 session = openSession();
705 
706                 StringBundler query = new StringBundler(2);
707 
708                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
709 
710                 query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
711 
712                 String sql = query.toString();
713 
714                 Query q = session.createQuery(sql);
715 
716                 QueryPos qPos = QueryPos.getInstance(q);
717 
718                 qPos.add(tempImage);
719 
720                 list = q.list();
721             }
722             catch (Exception e) {
723                 throw processException(e);
724             }
725             finally {
726                 if (list == null) {
727                     list = new ArrayList<JournalArticleImage>();
728                 }
729 
730                 cacheResult(list);
731 
732                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_TEMPIMAGE,
733                     finderArgs, list);
734 
735                 closeSession(session);
736             }
737         }
738 
739         return list;
740     }
741 
742     public List<JournalArticleImage> findByTempImage(boolean tempImage,
743         int start, int end) throws SystemException {
744         return findByTempImage(tempImage, start, end, null);
745     }
746 
747     public List<JournalArticleImage> findByTempImage(boolean tempImage,
748         int start, int end, OrderByComparator obc) throws SystemException {
749         Object[] finderArgs = new Object[] {
750                 Boolean.valueOf(tempImage),
751                 
752                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
753             };
754 
755         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_TEMPIMAGE,
756                 finderArgs, this);
757 
758         if (list == null) {
759             Session session = null;
760 
761             try {
762                 session = openSession();
763 
764                 StringBundler query = null;
765 
766                 if (obc != null) {
767                     query = new StringBundler(3 +
768                             (obc.getOrderByFields().length * 3));
769                 }
770                 else {
771                     query = new StringBundler(2);
772                 }
773 
774                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
775 
776                 query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
777 
778                 if (obc != null) {
779                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
780                 }
781 
782                 String sql = query.toString();
783 
784                 Query q = session.createQuery(sql);
785 
786                 QueryPos qPos = QueryPos.getInstance(q);
787 
788                 qPos.add(tempImage);
789 
790                 list = (List<JournalArticleImage>)QueryUtil.list(q,
791                         getDialect(), start, end);
792             }
793             catch (Exception e) {
794                 throw processException(e);
795             }
796             finally {
797                 if (list == null) {
798                     list = new ArrayList<JournalArticleImage>();
799                 }
800 
801                 cacheResult(list);
802 
803                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_TEMPIMAGE,
804                     finderArgs, list);
805 
806                 closeSession(session);
807             }
808         }
809 
810         return list;
811     }
812 
813     public JournalArticleImage findByTempImage_First(boolean tempImage,
814         OrderByComparator obc)
815         throws NoSuchArticleImageException, SystemException {
816         List<JournalArticleImage> list = findByTempImage(tempImage, 0, 1, obc);
817 
818         if (list.isEmpty()) {
819             StringBundler msg = new StringBundler(4);
820 
821             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
822 
823             msg.append("tempImage=");
824             msg.append(tempImage);
825 
826             msg.append(StringPool.CLOSE_CURLY_BRACE);
827 
828             throw new NoSuchArticleImageException(msg.toString());
829         }
830         else {
831             return list.get(0);
832         }
833     }
834 
835     public JournalArticleImage findByTempImage_Last(boolean tempImage,
836         OrderByComparator obc)
837         throws NoSuchArticleImageException, SystemException {
838         int count = countByTempImage(tempImage);
839 
840         List<JournalArticleImage> list = findByTempImage(tempImage, count - 1,
841                 count, obc);
842 
843         if (list.isEmpty()) {
844             StringBundler msg = new StringBundler(4);
845 
846             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
847 
848             msg.append("tempImage=");
849             msg.append(tempImage);
850 
851             msg.append(StringPool.CLOSE_CURLY_BRACE);
852 
853             throw new NoSuchArticleImageException(msg.toString());
854         }
855         else {
856             return list.get(0);
857         }
858     }
859 
860     public JournalArticleImage[] findByTempImage_PrevAndNext(
861         long articleImageId, boolean tempImage, OrderByComparator obc)
862         throws NoSuchArticleImageException, SystemException {
863         JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
864 
865         int count = countByTempImage(tempImage);
866 
867         Session session = null;
868 
869         try {
870             session = openSession();
871 
872             StringBundler query = null;
873 
874             if (obc != null) {
875                 query = new StringBundler(3 +
876                         (obc.getOrderByFields().length * 3));
877             }
878             else {
879                 query = new StringBundler(2);
880             }
881 
882             query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
883 
884             query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
885 
886             if (obc != null) {
887                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
888             }
889 
890             String sql = query.toString();
891 
892             Query q = session.createQuery(sql);
893 
894             QueryPos qPos = QueryPos.getInstance(q);
895 
896             qPos.add(tempImage);
897 
898             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
899                     journalArticleImage);
900 
901             JournalArticleImage[] array = new JournalArticleImageImpl[3];
902 
903             array[0] = (JournalArticleImage)objArray[0];
904             array[1] = (JournalArticleImage)objArray[1];
905             array[2] = (JournalArticleImage)objArray[2];
906 
907             return array;
908         }
909         catch (Exception e) {
910             throw processException(e);
911         }
912         finally {
913             closeSession(session);
914         }
915     }
916 
917     public List<JournalArticleImage> findByG_A_V(long groupId,
918         String articleId, double version) throws SystemException {
919         Object[] finderArgs = new Object[] {
920                 new Long(groupId),
921                 
922                 articleId, new Double(version)
923             };
924 
925         List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_A_V,
926                 finderArgs, this);
927 
928         if (list == null) {
929             Session session = null;
930 
931             try {
932                 session = openSession();
933 
934                 StringBundler query = new StringBundler(4);
935 
936                 query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
937 
938                 query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
939 
940                 if (articleId == null) {
941                     query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
942                 }
943                 else {
944                     if (articleId.equals(StringPool.BLANK)) {
945                         query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
946                     }
947                     else {
948                         query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
949                     }
950                 }
951 
952                 query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
953 
954                 String sql = query.toString();
955 
956                 Query q = session.createQuery(sql);
957 
958                 QueryPos qPos = QueryPos.getInstance(q);
959 
960                 qPos.add(groupId);
961 
962                 if (articleId != null) {
963                     qPos.add(articleId);
964                 }
965 
966                 qPos.add(version);
967 
968                 list = q.list();
969             }
970             catch (Exception e) {
971                 throw processException(e);
972             }
973             finally {
974                 if (list == null) {
975                     list = new ArrayList<JournalArticleImage>();
976                 }
977 
978                 cacheResult(list);
979 
980                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_A_V,
981                     finderArgs, list);
982 
983                 closeSession(session);
984             }
985         }
986 
987         return list;
988     }
989 
990     public List<JournalArticleImage> findByG_A_V(long groupId,
991         String articleId, double version, int start, int end)
992         throws SystemException {
993         return findByG_A_V(groupId, articleId, version, start, end, null);
994     }
995 
996     public List<JournalArticleImage> findByG_A_V(long groupId,
997         String articleId, double version, int start, int end,
998         OrderByComparator obc) throws SystemException {
999         Object[] finderArgs = new Object[] {
1000                new Long(groupId),
1001                
1002                articleId, new Double(version),
1003                
1004                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1005            };
1006
1007        List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_A_V,
1008                finderArgs, this);
1009
1010        if (list == null) {
1011            Session session = null;
1012
1013            try {
1014                session = openSession();
1015
1016                StringBundler query = null;
1017
1018                if (obc != null) {
1019                    query = new StringBundler(5 +
1020                            (obc.getOrderByFields().length * 3));
1021                }
1022                else {
1023                    query = new StringBundler(4);
1024                }
1025
1026                query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1027
1028                query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1029
1030                if (articleId == null) {
1031                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1032                }
1033                else {
1034                    if (articleId.equals(StringPool.BLANK)) {
1035                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1036                    }
1037                    else {
1038                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1039                    }
1040                }
1041
1042                query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1043
1044                if (obc != null) {
1045                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1046                }
1047
1048                String sql = query.toString();
1049
1050                Query q = session.createQuery(sql);
1051
1052                QueryPos qPos = QueryPos.getInstance(q);
1053
1054                qPos.add(groupId);
1055
1056                if (articleId != null) {
1057                    qPos.add(articleId);
1058                }
1059
1060                qPos.add(version);
1061
1062                list = (List<JournalArticleImage>)QueryUtil.list(q,
1063                        getDialect(), start, end);
1064            }
1065            catch (Exception e) {
1066                throw processException(e);
1067            }
1068            finally {
1069                if (list == null) {
1070                    list = new ArrayList<JournalArticleImage>();
1071                }
1072
1073                cacheResult(list);
1074
1075                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_A_V,
1076                    finderArgs, list);
1077
1078                closeSession(session);
1079            }
1080        }
1081
1082        return list;
1083    }
1084
1085    public JournalArticleImage findByG_A_V_First(long groupId,
1086        String articleId, double version, OrderByComparator obc)
1087        throws NoSuchArticleImageException, SystemException {
1088        List<JournalArticleImage> list = findByG_A_V(groupId, articleId,
1089                version, 0, 1, obc);
1090
1091        if (list.isEmpty()) {
1092            StringBundler msg = new StringBundler(8);
1093
1094            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1095
1096            msg.append("groupId=");
1097            msg.append(groupId);
1098
1099            msg.append(", articleId=");
1100            msg.append(articleId);
1101
1102            msg.append(", version=");
1103            msg.append(version);
1104
1105            msg.append(StringPool.CLOSE_CURLY_BRACE);
1106
1107            throw new NoSuchArticleImageException(msg.toString());
1108        }
1109        else {
1110            return list.get(0);
1111        }
1112    }
1113
1114    public JournalArticleImage findByG_A_V_Last(long groupId, String articleId,
1115        double version, OrderByComparator obc)
1116        throws NoSuchArticleImageException, SystemException {
1117        int count = countByG_A_V(groupId, articleId, version);
1118
1119        List<JournalArticleImage> list = findByG_A_V(groupId, articleId,
1120                version, count - 1, count, obc);
1121
1122        if (list.isEmpty()) {
1123            StringBundler msg = new StringBundler(8);
1124
1125            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1126
1127            msg.append("groupId=");
1128            msg.append(groupId);
1129
1130            msg.append(", articleId=");
1131            msg.append(articleId);
1132
1133            msg.append(", version=");
1134            msg.append(version);
1135
1136            msg.append(StringPool.CLOSE_CURLY_BRACE);
1137
1138            throw new NoSuchArticleImageException(msg.toString());
1139        }
1140        else {
1141            return list.get(0);
1142        }
1143    }
1144
1145    public JournalArticleImage[] findByG_A_V_PrevAndNext(long articleImageId,
1146        long groupId, String articleId, double version, OrderByComparator obc)
1147        throws NoSuchArticleImageException, SystemException {
1148        JournalArticleImage journalArticleImage = findByPrimaryKey(articleImageId);
1149
1150        int count = countByG_A_V(groupId, articleId, version);
1151
1152        Session session = null;
1153
1154        try {
1155            session = openSession();
1156
1157            StringBundler query = null;
1158
1159            if (obc != null) {
1160                query = new StringBundler(5 +
1161                        (obc.getOrderByFields().length * 3));
1162            }
1163            else {
1164                query = new StringBundler(4);
1165            }
1166
1167            query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1168
1169            query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1170
1171            if (articleId == null) {
1172                query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1173            }
1174            else {
1175                if (articleId.equals(StringPool.BLANK)) {
1176                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1177                }
1178                else {
1179                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1180                }
1181            }
1182
1183            query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1184
1185            if (obc != null) {
1186                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1187            }
1188
1189            String sql = query.toString();
1190
1191            Query q = session.createQuery(sql);
1192
1193            QueryPos qPos = QueryPos.getInstance(q);
1194
1195            qPos.add(groupId);
1196
1197            if (articleId != null) {
1198                qPos.add(articleId);
1199            }
1200
1201            qPos.add(version);
1202
1203            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1204                    journalArticleImage);
1205
1206            JournalArticleImage[] array = new JournalArticleImageImpl[3];
1207
1208            array[0] = (JournalArticleImage)objArray[0];
1209            array[1] = (JournalArticleImage)objArray[1];
1210            array[2] = (JournalArticleImage)objArray[2];
1211
1212            return array;
1213        }
1214        catch (Exception e) {
1215            throw processException(e);
1216        }
1217        finally {
1218            closeSession(session);
1219        }
1220    }
1221
1222    public JournalArticleImage findByG_A_V_E_E_L(long groupId,
1223        String articleId, double version, String elInstanceId, String elName,
1224        String languageId) throws NoSuchArticleImageException, SystemException {
1225        JournalArticleImage journalArticleImage = fetchByG_A_V_E_E_L(groupId,
1226                articleId, version, elInstanceId, elName, languageId);
1227
1228        if (journalArticleImage == null) {
1229            StringBundler msg = new StringBundler(14);
1230
1231            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1232
1233            msg.append("groupId=");
1234            msg.append(groupId);
1235
1236            msg.append(", articleId=");
1237            msg.append(articleId);
1238
1239            msg.append(", version=");
1240            msg.append(version);
1241
1242            msg.append(", elInstanceId=");
1243            msg.append(elInstanceId);
1244
1245            msg.append(", elName=");
1246            msg.append(elName);
1247
1248            msg.append(", languageId=");
1249            msg.append(languageId);
1250
1251            msg.append(StringPool.CLOSE_CURLY_BRACE);
1252
1253            if (_log.isWarnEnabled()) {
1254                _log.warn(msg.toString());
1255            }
1256
1257            throw new NoSuchArticleImageException(msg.toString());
1258        }
1259
1260        return journalArticleImage;
1261    }
1262
1263    public JournalArticleImage fetchByG_A_V_E_E_L(long groupId,
1264        String articleId, double version, String elInstanceId, String elName,
1265        String languageId) throws SystemException {
1266        return fetchByG_A_V_E_E_L(groupId, articleId, version, elInstanceId,
1267            elName, languageId, true);
1268    }
1269
1270    public JournalArticleImage fetchByG_A_V_E_E_L(long groupId,
1271        String articleId, double version, String elInstanceId, String elName,
1272        String languageId, boolean retrieveFromCache) throws SystemException {
1273        Object[] finderArgs = new Object[] {
1274                new Long(groupId),
1275                
1276                articleId, new Double(version),
1277                
1278                elInstanceId,
1279                
1280                elName,
1281                
1282                languageId
1283            };
1284
1285        Object result = null;
1286
1287        if (retrieveFromCache) {
1288            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
1289                    finderArgs, this);
1290        }
1291
1292        if (result == null) {
1293            Session session = null;
1294
1295            try {
1296                session = openSession();
1297
1298                StringBundler query = new StringBundler(7);
1299
1300                query.append(_SQL_SELECT_JOURNALARTICLEIMAGE_WHERE);
1301
1302                query.append(_FINDER_COLUMN_G_A_V_E_E_L_GROUPID_2);
1303
1304                if (articleId == null) {
1305                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_1);
1306                }
1307                else {
1308                    if (articleId.equals(StringPool.BLANK)) {
1309                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_3);
1310                    }
1311                    else {
1312                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_2);
1313                    }
1314                }
1315
1316                query.append(_FINDER_COLUMN_G_A_V_E_E_L_VERSION_2);
1317
1318                if (elInstanceId == null) {
1319                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_1);
1320                }
1321                else {
1322                    if (elInstanceId.equals(StringPool.BLANK)) {
1323                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_3);
1324                    }
1325                    else {
1326                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_2);
1327                    }
1328                }
1329
1330                if (elName == null) {
1331                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_1);
1332                }
1333                else {
1334                    if (elName.equals(StringPool.BLANK)) {
1335                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_3);
1336                    }
1337                    else {
1338                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_2);
1339                    }
1340                }
1341
1342                if (languageId == null) {
1343                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_1);
1344                }
1345                else {
1346                    if (languageId.equals(StringPool.BLANK)) {
1347                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_3);
1348                    }
1349                    else {
1350                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_2);
1351                    }
1352                }
1353
1354                String sql = query.toString();
1355
1356                Query q = session.createQuery(sql);
1357
1358                QueryPos qPos = QueryPos.getInstance(q);
1359
1360                qPos.add(groupId);
1361
1362                if (articleId != null) {
1363                    qPos.add(articleId);
1364                }
1365
1366                qPos.add(version);
1367
1368                if (elInstanceId != null) {
1369                    qPos.add(elInstanceId);
1370                }
1371
1372                if (elName != null) {
1373                    qPos.add(elName);
1374                }
1375
1376                if (languageId != null) {
1377                    qPos.add(languageId);
1378                }
1379
1380                List<JournalArticleImage> list = q.list();
1381
1382                result = list;
1383
1384                JournalArticleImage journalArticleImage = null;
1385
1386                if (list.isEmpty()) {
1387                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
1388                        finderArgs, list);
1389                }
1390                else {
1391                    journalArticleImage = list.get(0);
1392
1393                    cacheResult(journalArticleImage);
1394
1395                    if ((journalArticleImage.getGroupId() != groupId) ||
1396                            (journalArticleImage.getArticleId() == null) ||
1397                            !journalArticleImage.getArticleId().equals(articleId) ||
1398                            (journalArticleImage.getVersion() != version) ||
1399                            (journalArticleImage.getElInstanceId() == null) ||
1400                            !journalArticleImage.getElInstanceId()
1401                                                    .equals(elInstanceId) ||
1402                            (journalArticleImage.getElName() == null) ||
1403                            !journalArticleImage.getElName().equals(elName) ||
1404                            (journalArticleImage.getLanguageId() == null) ||
1405                            !journalArticleImage.getLanguageId()
1406                                                    .equals(languageId)) {
1407                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
1408                            finderArgs, journalArticleImage);
1409                    }
1410                }
1411
1412                return journalArticleImage;
1413            }
1414            catch (Exception e) {
1415                throw processException(e);
1416            }
1417            finally {
1418                if (result == null) {
1419                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_A_V_E_E_L,
1420                        finderArgs, new ArrayList<JournalArticleImage>());
1421                }
1422
1423                closeSession(session);
1424            }
1425        }
1426        else {
1427            if (result instanceof List<?>) {
1428                return null;
1429            }
1430            else {
1431                return (JournalArticleImage)result;
1432            }
1433        }
1434    }
1435
1436    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1437        throws SystemException {
1438        Session session = null;
1439
1440        try {
1441            session = openSession();
1442
1443            dynamicQuery.compile(session);
1444
1445            return dynamicQuery.list();
1446        }
1447        catch (Exception e) {
1448            throw processException(e);
1449        }
1450        finally {
1451            closeSession(session);
1452        }
1453    }
1454
1455    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1456        int start, int end) throws SystemException {
1457        Session session = null;
1458
1459        try {
1460            session = openSession();
1461
1462            dynamicQuery.setLimit(start, end);
1463
1464            dynamicQuery.compile(session);
1465
1466            return dynamicQuery.list();
1467        }
1468        catch (Exception e) {
1469            throw processException(e);
1470        }
1471        finally {
1472            closeSession(session);
1473        }
1474    }
1475
1476    public List<JournalArticleImage> findAll() throws SystemException {
1477        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1478    }
1479
1480    public List<JournalArticleImage> findAll(int start, int end)
1481        throws SystemException {
1482        return findAll(start, end, null);
1483    }
1484
1485    public List<JournalArticleImage> findAll(int start, int end,
1486        OrderByComparator obc) throws SystemException {
1487        Object[] finderArgs = new Object[] {
1488                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1489            };
1490
1491        List<JournalArticleImage> list = (List<JournalArticleImage>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1492                finderArgs, this);
1493
1494        if (list == null) {
1495            Session session = null;
1496
1497            try {
1498                session = openSession();
1499
1500                StringBundler query = null;
1501                String sql = null;
1502
1503                if (obc != null) {
1504                    query = new StringBundler(2 +
1505                            (obc.getOrderByFields().length * 3));
1506
1507                    query.append(_SQL_SELECT_JOURNALARTICLEIMAGE);
1508
1509                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1510
1511                    sql = query.toString();
1512                }
1513
1514                sql = _SQL_SELECT_JOURNALARTICLEIMAGE;
1515
1516                Query q = session.createQuery(sql);
1517
1518                if (obc == null) {
1519                    list = (List<JournalArticleImage>)QueryUtil.list(q,
1520                            getDialect(), start, end, false);
1521
1522                    Collections.sort(list);
1523                }
1524                else {
1525                    list = (List<JournalArticleImage>)QueryUtil.list(q,
1526                            getDialect(), start, end);
1527                }
1528            }
1529            catch (Exception e) {
1530                throw processException(e);
1531            }
1532            finally {
1533                if (list == null) {
1534                    list = new ArrayList<JournalArticleImage>();
1535                }
1536
1537                cacheResult(list);
1538
1539                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1540
1541                closeSession(session);
1542            }
1543        }
1544
1545        return list;
1546    }
1547
1548    public void removeByGroupId(long groupId) throws SystemException {
1549        for (JournalArticleImage journalArticleImage : findByGroupId(groupId)) {
1550            remove(journalArticleImage);
1551        }
1552    }
1553
1554    public void removeByTempImage(boolean tempImage) throws SystemException {
1555        for (JournalArticleImage journalArticleImage : findByTempImage(
1556                tempImage)) {
1557            remove(journalArticleImage);
1558        }
1559    }
1560
1561    public void removeByG_A_V(long groupId, String articleId, double version)
1562        throws SystemException {
1563        for (JournalArticleImage journalArticleImage : findByG_A_V(groupId,
1564                articleId, version)) {
1565            remove(journalArticleImage);
1566        }
1567    }
1568
1569    public void removeByG_A_V_E_E_L(long groupId, String articleId,
1570        double version, String elInstanceId, String elName, String languageId)
1571        throws NoSuchArticleImageException, SystemException {
1572        JournalArticleImage journalArticleImage = findByG_A_V_E_E_L(groupId,
1573                articleId, version, elInstanceId, elName, languageId);
1574
1575        remove(journalArticleImage);
1576    }
1577
1578    public void removeAll() throws SystemException {
1579        for (JournalArticleImage journalArticleImage : findAll()) {
1580            remove(journalArticleImage);
1581        }
1582    }
1583
1584    public int countByGroupId(long groupId) throws SystemException {
1585        Object[] finderArgs = new Object[] { new Long(groupId) };
1586
1587        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
1588                finderArgs, this);
1589
1590        if (count == null) {
1591            Session session = null;
1592
1593            try {
1594                session = openSession();
1595
1596                StringBundler query = new StringBundler(2);
1597
1598                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1599
1600                query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
1601
1602                String sql = query.toString();
1603
1604                Query q = session.createQuery(sql);
1605
1606                QueryPos qPos = QueryPos.getInstance(q);
1607
1608                qPos.add(groupId);
1609
1610                count = (Long)q.uniqueResult();
1611            }
1612            catch (Exception e) {
1613                throw processException(e);
1614            }
1615            finally {
1616                if (count == null) {
1617                    count = Long.valueOf(0);
1618                }
1619
1620                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
1621                    finderArgs, count);
1622
1623                closeSession(session);
1624            }
1625        }
1626
1627        return count.intValue();
1628    }
1629
1630    public int countByTempImage(boolean tempImage) throws SystemException {
1631        Object[] finderArgs = new Object[] { Boolean.valueOf(tempImage) };
1632
1633        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_TEMPIMAGE,
1634                finderArgs, this);
1635
1636        if (count == null) {
1637            Session session = null;
1638
1639            try {
1640                session = openSession();
1641
1642                StringBundler query = new StringBundler(2);
1643
1644                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1645
1646                query.append(_FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2);
1647
1648                String sql = query.toString();
1649
1650                Query q = session.createQuery(sql);
1651
1652                QueryPos qPos = QueryPos.getInstance(q);
1653
1654                qPos.add(tempImage);
1655
1656                count = (Long)q.uniqueResult();
1657            }
1658            catch (Exception e) {
1659                throw processException(e);
1660            }
1661            finally {
1662                if (count == null) {
1663                    count = Long.valueOf(0);
1664                }
1665
1666                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_TEMPIMAGE,
1667                    finderArgs, count);
1668
1669                closeSession(session);
1670            }
1671        }
1672
1673        return count.intValue();
1674    }
1675
1676    public int countByG_A_V(long groupId, String articleId, double version)
1677        throws SystemException {
1678        Object[] finderArgs = new Object[] {
1679                new Long(groupId),
1680                
1681                articleId, new Double(version)
1682            };
1683
1684        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_A_V,
1685                finderArgs, this);
1686
1687        if (count == null) {
1688            Session session = null;
1689
1690            try {
1691                session = openSession();
1692
1693                StringBundler query = new StringBundler(4);
1694
1695                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1696
1697                query.append(_FINDER_COLUMN_G_A_V_GROUPID_2);
1698
1699                if (articleId == null) {
1700                    query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_1);
1701                }
1702                else {
1703                    if (articleId.equals(StringPool.BLANK)) {
1704                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_3);
1705                    }
1706                    else {
1707                        query.append(_FINDER_COLUMN_G_A_V_ARTICLEID_2);
1708                    }
1709                }
1710
1711                query.append(_FINDER_COLUMN_G_A_V_VERSION_2);
1712
1713                String sql = query.toString();
1714
1715                Query q = session.createQuery(sql);
1716
1717                QueryPos qPos = QueryPos.getInstance(q);
1718
1719                qPos.add(groupId);
1720
1721                if (articleId != null) {
1722                    qPos.add(articleId);
1723                }
1724
1725                qPos.add(version);
1726
1727                count = (Long)q.uniqueResult();
1728            }
1729            catch (Exception e) {
1730                throw processException(e);
1731            }
1732            finally {
1733                if (count == null) {
1734                    count = Long.valueOf(0);
1735                }
1736
1737                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_A_V,
1738                    finderArgs, count);
1739
1740                closeSession(session);
1741            }
1742        }
1743
1744        return count.intValue();
1745    }
1746
1747    public int countByG_A_V_E_E_L(long groupId, String articleId,
1748        double version, String elInstanceId, String elName, String languageId)
1749        throws SystemException {
1750        Object[] finderArgs = new Object[] {
1751                new Long(groupId),
1752                
1753                articleId, new Double(version),
1754                
1755                elInstanceId,
1756                
1757                elName,
1758                
1759                languageId
1760            };
1761
1762        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_A_V_E_E_L,
1763                finderArgs, this);
1764
1765        if (count == null) {
1766            Session session = null;
1767
1768            try {
1769                session = openSession();
1770
1771                StringBundler query = new StringBundler(7);
1772
1773                query.append(_SQL_COUNT_JOURNALARTICLEIMAGE_WHERE);
1774
1775                query.append(_FINDER_COLUMN_G_A_V_E_E_L_GROUPID_2);
1776
1777                if (articleId == null) {
1778                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_1);
1779                }
1780                else {
1781                    if (articleId.equals(StringPool.BLANK)) {
1782                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_3);
1783                    }
1784                    else {
1785                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_2);
1786                    }
1787                }
1788
1789                query.append(_FINDER_COLUMN_G_A_V_E_E_L_VERSION_2);
1790
1791                if (elInstanceId == null) {
1792                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_1);
1793                }
1794                else {
1795                    if (elInstanceId.equals(StringPool.BLANK)) {
1796                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_3);
1797                    }
1798                    else {
1799                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_2);
1800                    }
1801                }
1802
1803                if (elName == null) {
1804                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_1);
1805                }
1806                else {
1807                    if (elName.equals(StringPool.BLANK)) {
1808                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_3);
1809                    }
1810                    else {
1811                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_ELNAME_2);
1812                    }
1813                }
1814
1815                if (languageId == null) {
1816                    query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_1);
1817                }
1818                else {
1819                    if (languageId.equals(StringPool.BLANK)) {
1820                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_3);
1821                    }
1822                    else {
1823                        query.append(_FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_2);
1824                    }
1825                }
1826
1827                String sql = query.toString();
1828
1829                Query q = session.createQuery(sql);
1830
1831                QueryPos qPos = QueryPos.getInstance(q);
1832
1833                qPos.add(groupId);
1834
1835                if (articleId != null) {
1836                    qPos.add(articleId);
1837                }
1838
1839                qPos.add(version);
1840
1841                if (elInstanceId != null) {
1842                    qPos.add(elInstanceId);
1843                }
1844
1845                if (elName != null) {
1846                    qPos.add(elName);
1847                }
1848
1849                if (languageId != null) {
1850                    qPos.add(languageId);
1851                }
1852
1853                count = (Long)q.uniqueResult();
1854            }
1855            catch (Exception e) {
1856                throw processException(e);
1857            }
1858            finally {
1859                if (count == null) {
1860                    count = Long.valueOf(0);
1861                }
1862
1863                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_A_V_E_E_L,
1864                    finderArgs, count);
1865
1866                closeSession(session);
1867            }
1868        }
1869
1870        return count.intValue();
1871    }
1872
1873    public int countAll() throws SystemException {
1874        Object[] finderArgs = new Object[0];
1875
1876        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1877                finderArgs, this);
1878
1879        if (count == null) {
1880            Session session = null;
1881
1882            try {
1883                session = openSession();
1884
1885                Query q = session.createQuery(_SQL_COUNT_JOURNALARTICLEIMAGE);
1886
1887                count = (Long)q.uniqueResult();
1888            }
1889            catch (Exception e) {
1890                throw processException(e);
1891            }
1892            finally {
1893                if (count == null) {
1894                    count = Long.valueOf(0);
1895                }
1896
1897                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1898                    count);
1899
1900                closeSession(session);
1901            }
1902        }
1903
1904        return count.intValue();
1905    }
1906
1907    public void afterPropertiesSet() {
1908        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1909                    com.liferay.portal.util.PropsUtil.get(
1910                        "value.object.listener.com.liferay.portlet.journal.model.JournalArticleImage")));
1911
1912        if (listenerClassNames.length > 0) {
1913            try {
1914                List<ModelListener<JournalArticleImage>> listenersList = new ArrayList<ModelListener<JournalArticleImage>>();
1915
1916                for (String listenerClassName : listenerClassNames) {
1917                    listenersList.add((ModelListener<JournalArticleImage>)Class.forName(
1918                            listenerClassName).newInstance());
1919                }
1920
1921                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1922            }
1923            catch (Exception e) {
1924                _log.error(e);
1925            }
1926        }
1927    }
1928
1929    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticlePersistence")
1930    protected com.liferay.portlet.journal.service.persistence.JournalArticlePersistence journalArticlePersistence;
1931    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence")
1932    protected com.liferay.portlet.journal.service.persistence.JournalArticleImagePersistence journalArticleImagePersistence;
1933    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence")
1934    protected com.liferay.portlet.journal.service.persistence.JournalArticleResourcePersistence journalArticleResourcePersistence;
1935    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence")
1936    protected com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence journalContentSearchPersistence;
1937    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalFeedPersistence")
1938    protected com.liferay.portlet.journal.service.persistence.JournalFeedPersistence journalFeedPersistence;
1939    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalStructurePersistence")
1940    protected com.liferay.portlet.journal.service.persistence.JournalStructurePersistence journalStructurePersistence;
1941    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence")
1942    protected com.liferay.portlet.journal.service.persistence.JournalTemplatePersistence journalTemplatePersistence;
1943    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence")
1944    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
1945    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
1946    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1947    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
1948    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1949    private static final String _SQL_SELECT_JOURNALARTICLEIMAGE = "SELECT journalArticleImage FROM JournalArticleImage journalArticleImage";
1950    private static final String _SQL_SELECT_JOURNALARTICLEIMAGE_WHERE = "SELECT journalArticleImage FROM JournalArticleImage journalArticleImage WHERE ";
1951    private static final String _SQL_COUNT_JOURNALARTICLEIMAGE = "SELECT COUNT(journalArticleImage) FROM JournalArticleImage journalArticleImage";
1952    private static final String _SQL_COUNT_JOURNALARTICLEIMAGE_WHERE = "SELECT COUNT(journalArticleImage) FROM JournalArticleImage journalArticleImage WHERE ";
1953    private static final String _FINDER_COLUMN_GROUPID_GROUPID_2 = "journalArticleImage.groupId = ?";
1954    private static final String _FINDER_COLUMN_TEMPIMAGE_TEMPIMAGE_2 = "journalArticleImage.tempImage = ?";
1955    private static final String _FINDER_COLUMN_G_A_V_GROUPID_2 = "journalArticleImage.groupId = ? AND ";
1956    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_1 = "journalArticleImage.articleId IS NULL AND ";
1957    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_2 = "journalArticleImage.articleId = ? AND ";
1958    private static final String _FINDER_COLUMN_G_A_V_ARTICLEID_3 = "(journalArticleImage.articleId IS NULL OR journalArticleImage.articleId = ?) AND ";
1959    private static final String _FINDER_COLUMN_G_A_V_VERSION_2 = "journalArticleImage.version = ?";
1960    private static final String _FINDER_COLUMN_G_A_V_E_E_L_GROUPID_2 = "journalArticleImage.groupId = ? AND ";
1961    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_1 = "journalArticleImage.articleId IS NULL AND ";
1962    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_2 = "journalArticleImage.articleId = ? AND ";
1963    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ARTICLEID_3 = "(journalArticleImage.articleId IS NULL OR journalArticleImage.articleId = ?) AND ";
1964    private static final String _FINDER_COLUMN_G_A_V_E_E_L_VERSION_2 = "journalArticleImage.version = ? AND ";
1965    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_1 = "journalArticleImage.elInstanceId IS NULL AND ";
1966    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_2 = "journalArticleImage.elInstanceId = ? AND ";
1967    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELINSTANCEID_3 = "(journalArticleImage.elInstanceId IS NULL OR journalArticleImage.elInstanceId = ?) AND ";
1968    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELNAME_1 = "journalArticleImage.elName IS NULL AND ";
1969    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELNAME_2 = "journalArticleImage.elName = ? AND ";
1970    private static final String _FINDER_COLUMN_G_A_V_E_E_L_ELNAME_3 = "(journalArticleImage.elName IS NULL OR journalArticleImage.elName = ?) AND ";
1971    private static final String _FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_1 = "journalArticleImage.languageId IS NULL";
1972    private static final String _FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_2 = "journalArticleImage.languageId = ?";
1973    private static final String _FINDER_COLUMN_G_A_V_E_E_L_LANGUAGEID_3 = "(journalArticleImage.languageId IS NULL OR journalArticleImage.languageId = ?)";
1974    private static final String _ORDER_BY_ENTITY_ALIAS = "journalArticleImage.";
1975    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No JournalArticleImage exists with the primary key ";
1976    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No JournalArticleImage exists with the key {";
1977    private static Log _log = LogFactoryUtil.getLog(JournalArticleImagePersistenceImpl.class);
1978}