1   /**
2    * Copyright (c) 2000-2010 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   *
12   * 
13   */
14  
15  package com.liferay.portal.service.persistence;
16  
17  import com.liferay.portal.NoSuchLayoutException;
18  import com.liferay.portal.NoSuchModelException;
19  import com.liferay.portal.SystemException;
20  import com.liferay.portal.kernel.annotation.BeanReference;
21  import com.liferay.portal.kernel.cache.CacheRegistry;
22  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
23  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
24  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
25  import com.liferay.portal.kernel.dao.orm.FinderPath;
26  import com.liferay.portal.kernel.dao.orm.Query;
27  import com.liferay.portal.kernel.dao.orm.QueryPos;
28  import com.liferay.portal.kernel.dao.orm.QueryUtil;
29  import com.liferay.portal.kernel.dao.orm.Session;
30  import com.liferay.portal.kernel.log.Log;
31  import com.liferay.portal.kernel.log.LogFactoryUtil;
32  import com.liferay.portal.kernel.util.GetterUtil;
33  import com.liferay.portal.kernel.util.OrderByComparator;
34  import com.liferay.portal.kernel.util.StringBundler;
35  import com.liferay.portal.kernel.util.StringPool;
36  import com.liferay.portal.kernel.util.StringUtil;
37  import com.liferay.portal.kernel.util.Validator;
38  import com.liferay.portal.model.Layout;
39  import com.liferay.portal.model.ModelListener;
40  import com.liferay.portal.model.impl.LayoutImpl;
41  import com.liferay.portal.model.impl.LayoutModelImpl;
42  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
43  
44  import java.io.Serializable;
45  
46  import java.util.ArrayList;
47  import java.util.Collections;
48  import java.util.List;
49  
50  /**
51   * <a href="LayoutPersistenceImpl.java.html"><b><i>View Source</i></b></a>
52   *
53   * <p>
54   * ServiceBuilder generated this class. Modifications in this class will be
55   * overwritten the next time is generated.
56   * </p>
57   *
58   * @author    Brian Wing Shun Chan
59   * @see       LayoutPersistence
60   * @see       LayoutUtil
61   * @generated
62   */
63  public class LayoutPersistenceImpl extends BasePersistenceImpl<Layout>
64      implements LayoutPersistence {
65      public static final String FINDER_CLASS_NAME_ENTITY = LayoutImpl.class.getName();
66      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
67          ".List";
68      public static final FinderPath FINDER_PATH_FIND_BY_GROUPID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
69              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
70              "findByGroupId", new String[] { Long.class.getName() });
71      public static final FinderPath FINDER_PATH_FIND_BY_OBC_GROUPID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
72              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
73              "findByGroupId",
74              new String[] {
75                  Long.class.getName(),
76                  
77              "java.lang.Integer", "java.lang.Integer",
78                  "com.liferay.portal.kernel.util.OrderByComparator"
79              });
80      public static final FinderPath FINDER_PATH_COUNT_BY_GROUPID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
81              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
82              "countByGroupId", new String[] { Long.class.getName() });
83      public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
84              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
85              "findByCompanyId", new String[] { Long.class.getName() });
86      public static final FinderPath FINDER_PATH_FIND_BY_OBC_COMPANYID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
87              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
88              "findByCompanyId",
89              new String[] {
90                  Long.class.getName(),
91                  
92              "java.lang.Integer", "java.lang.Integer",
93                  "com.liferay.portal.kernel.util.OrderByComparator"
94              });
95      public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
96              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
97              "countByCompanyId", new String[] { Long.class.getName() });
98      public static final FinderPath FINDER_PATH_FETCH_BY_DLFOLDERID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
99              LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
100             "fetchByDLFolderId", new String[] { Long.class.getName() });
101     public static final FinderPath FINDER_PATH_COUNT_BY_DLFOLDERID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
102             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
103             "countByDLFolderId", new String[] { Long.class.getName() });
104     public static final FinderPath FINDER_PATH_FETCH_BY_ICONIMAGEID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
105             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
106             "fetchByIconImageId", new String[] { Long.class.getName() });
107     public static final FinderPath FINDER_PATH_COUNT_BY_ICONIMAGEID = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
108             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
109             "countByIconImageId", new String[] { Long.class.getName() });
110     public static final FinderPath FINDER_PATH_FIND_BY_G_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
111             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
112             "findByG_P",
113             new String[] { Long.class.getName(), Boolean.class.getName() });
114     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
115             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
116             "findByG_P",
117             new String[] {
118                 Long.class.getName(), Boolean.class.getName(),
119                 
120             "java.lang.Integer", "java.lang.Integer",
121                 "com.liferay.portal.kernel.util.OrderByComparator"
122             });
123     public static final FinderPath FINDER_PATH_COUNT_BY_G_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
124             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
125             "countByG_P",
126             new String[] { Long.class.getName(), Boolean.class.getName() });
127     public static final FinderPath FINDER_PATH_FETCH_BY_G_P_L = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
128             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
129             "fetchByG_P_L",
130             new String[] {
131                 Long.class.getName(), Boolean.class.getName(),
132                 Long.class.getName()
133             });
134     public static final FinderPath FINDER_PATH_COUNT_BY_G_P_L = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
135             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
136             "countByG_P_L",
137             new String[] {
138                 Long.class.getName(), Boolean.class.getName(),
139                 Long.class.getName()
140             });
141     public static final FinderPath FINDER_PATH_FIND_BY_G_P_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
142             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
143             "findByG_P_P",
144             new String[] {
145                 Long.class.getName(), Boolean.class.getName(),
146                 Long.class.getName()
147             });
148     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_P_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
149             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
150             "findByG_P_P",
151             new String[] {
152                 Long.class.getName(), Boolean.class.getName(),
153                 Long.class.getName(),
154                 
155             "java.lang.Integer", "java.lang.Integer",
156                 "com.liferay.portal.kernel.util.OrderByComparator"
157             });
158     public static final FinderPath FINDER_PATH_COUNT_BY_G_P_P = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
159             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
160             "countByG_P_P",
161             new String[] {
162                 Long.class.getName(), Boolean.class.getName(),
163                 Long.class.getName()
164             });
165     public static final FinderPath FINDER_PATH_FETCH_BY_G_P_F = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
166             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_ENTITY,
167             "fetchByG_P_F",
168             new String[] {
169                 Long.class.getName(), Boolean.class.getName(),
170                 String.class.getName()
171             });
172     public static final FinderPath FINDER_PATH_COUNT_BY_G_P_F = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
173             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
174             "countByG_P_F",
175             new String[] {
176                 Long.class.getName(), Boolean.class.getName(),
177                 String.class.getName()
178             });
179     public static final FinderPath FINDER_PATH_FIND_BY_G_P_T = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
180             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
181             "findByG_P_T",
182             new String[] {
183                 Long.class.getName(), Boolean.class.getName(),
184                 String.class.getName()
185             });
186     public static final FinderPath FINDER_PATH_FIND_BY_OBC_G_P_T = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
187             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
188             "findByG_P_T",
189             new String[] {
190                 Long.class.getName(), Boolean.class.getName(),
191                 String.class.getName(),
192                 
193             "java.lang.Integer", "java.lang.Integer",
194                 "com.liferay.portal.kernel.util.OrderByComparator"
195             });
196     public static final FinderPath FINDER_PATH_COUNT_BY_G_P_T = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
197             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
198             "countByG_P_T",
199             new String[] {
200                 Long.class.getName(), Boolean.class.getName(),
201                 String.class.getName()
202             });
203     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
204             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
205             "findAll", new String[0]);
206     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(LayoutModelImpl.ENTITY_CACHE_ENABLED,
207             LayoutModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
208             "countAll", new String[0]);
209 
210     public void cacheResult(Layout layout) {
211         EntityCacheUtil.putResult(LayoutModelImpl.ENTITY_CACHE_ENABLED,
212             LayoutImpl.class, layout.getPrimaryKey(), layout);
213 
214         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
215             new Object[] { new Long(layout.getDlFolderId()) }, layout);
216 
217         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
218             new Object[] { new Long(layout.getIconImageId()) }, layout);
219 
220         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_L,
221             new Object[] {
222                 new Long(layout.getGroupId()),
223                 Boolean.valueOf(layout.getPrivateLayout()),
224                 new Long(layout.getLayoutId())
225             }, layout);
226 
227         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_F,
228             new Object[] {
229                 new Long(layout.getGroupId()),
230                 Boolean.valueOf(layout.getPrivateLayout()),
231                 
232             layout.getFriendlyURL()
233             }, layout);
234     }
235 
236     public void cacheResult(List<Layout> layouts) {
237         for (Layout layout : layouts) {
238             if (EntityCacheUtil.getResult(
239                         LayoutModelImpl.ENTITY_CACHE_ENABLED, LayoutImpl.class,
240                         layout.getPrimaryKey(), this) == null) {
241                 cacheResult(layout);
242             }
243         }
244     }
245 
246     public void clearCache() {
247         CacheRegistry.clear(LayoutImpl.class.getName());
248         EntityCacheUtil.clearCache(LayoutImpl.class.getName());
249         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
250         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
251     }
252 
253     public Layout create(long plid) {
254         Layout layout = new LayoutImpl();
255 
256         layout.setNew(true);
257         layout.setPrimaryKey(plid);
258 
259         return layout;
260     }
261 
262     public Layout remove(Serializable primaryKey)
263         throws NoSuchModelException, SystemException {
264         return remove(((Long)primaryKey).longValue());
265     }
266 
267     public Layout remove(long plid)
268         throws NoSuchLayoutException, SystemException {
269         Session session = null;
270 
271         try {
272             session = openSession();
273 
274             Layout layout = (Layout)session.get(LayoutImpl.class, new Long(plid));
275 
276             if (layout == null) {
277                 if (_log.isWarnEnabled()) {
278                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + plid);
279                 }
280 
281                 throw new NoSuchLayoutException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
282                     plid);
283             }
284 
285             return remove(layout);
286         }
287         catch (NoSuchLayoutException nsee) {
288             throw nsee;
289         }
290         catch (Exception e) {
291             throw processException(e);
292         }
293         finally {
294             closeSession(session);
295         }
296     }
297 
298     public Layout remove(Layout layout) throws SystemException {
299         for (ModelListener<Layout> listener : listeners) {
300             listener.onBeforeRemove(layout);
301         }
302 
303         layout = removeImpl(layout);
304 
305         for (ModelListener<Layout> listener : listeners) {
306             listener.onAfterRemove(layout);
307         }
308 
309         return layout;
310     }
311 
312     protected Layout removeImpl(Layout layout) throws SystemException {
313         layout = toUnwrappedModel(layout);
314 
315         Session session = null;
316 
317         try {
318             session = openSession();
319 
320             if (layout.isCachedModel() || BatchSessionUtil.isEnabled()) {
321                 Object staleObject = session.get(LayoutImpl.class,
322                         layout.getPrimaryKeyObj());
323 
324                 if (staleObject != null) {
325                     session.evict(staleObject);
326                 }
327             }
328 
329             session.delete(layout);
330 
331             session.flush();
332         }
333         catch (Exception e) {
334             throw processException(e);
335         }
336         finally {
337             closeSession(session);
338         }
339 
340         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
341 
342         LayoutModelImpl layoutModelImpl = (LayoutModelImpl)layout;
343 
344         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
345             new Object[] { new Long(layoutModelImpl.getOriginalDlFolderId()) });
346 
347         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
348             new Object[] { new Long(layoutModelImpl.getOriginalIconImageId()) });
349 
350         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_P_L,
351             new Object[] {
352                 new Long(layoutModelImpl.getOriginalGroupId()),
353                 Boolean.valueOf(layoutModelImpl.getOriginalPrivateLayout()),
354                 new Long(layoutModelImpl.getOriginalLayoutId())
355             });
356 
357         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_P_F,
358             new Object[] {
359                 new Long(layoutModelImpl.getOriginalGroupId()),
360                 Boolean.valueOf(layoutModelImpl.getOriginalPrivateLayout()),
361                 
362             layoutModelImpl.getOriginalFriendlyURL()
363             });
364 
365         EntityCacheUtil.removeResult(LayoutModelImpl.ENTITY_CACHE_ENABLED,
366             LayoutImpl.class, layout.getPrimaryKey());
367 
368         return layout;
369     }
370 
371     /**
372      * @deprecated Use {@link BasePersistence#update(com.liferay.portal.model.BaseModel, boolean)}.
373      */
374     public Layout update(Layout layout) throws SystemException {
375         if (_log.isWarnEnabled()) {
376             _log.warn(
377                 "Using the deprecated update(Layout layout) method. Use update(Layout layout, boolean merge) instead.");
378         }
379 
380         return update(layout, false);
381     }
382 
383     public Layout updateImpl(com.liferay.portal.model.Layout layout,
384         boolean merge) throws SystemException {
385         layout = toUnwrappedModel(layout);
386 
387         boolean isNew = layout.isNew();
388 
389         LayoutModelImpl layoutModelImpl = (LayoutModelImpl)layout;
390 
391         Session session = null;
392 
393         try {
394             session = openSession();
395 
396             BatchSessionUtil.update(session, layout, merge);
397 
398             layout.setNew(false);
399         }
400         catch (Exception e) {
401             throw processException(e);
402         }
403         finally {
404             closeSession(session);
405         }
406 
407         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
408 
409         EntityCacheUtil.putResult(LayoutModelImpl.ENTITY_CACHE_ENABLED,
410             LayoutImpl.class, layout.getPrimaryKey(), layout);
411 
412         if (!isNew &&
413                 (layout.getDlFolderId() != layoutModelImpl.getOriginalDlFolderId())) {
414             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
415                 new Object[] { new Long(layoutModelImpl.getOriginalDlFolderId()) });
416         }
417 
418         if (isNew ||
419                 (layout.getDlFolderId() != layoutModelImpl.getOriginalDlFolderId())) {
420             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
421                 new Object[] { new Long(layout.getDlFolderId()) }, layout);
422         }
423 
424         if (!isNew &&
425                 (layout.getIconImageId() != layoutModelImpl.getOriginalIconImageId())) {
426             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
427                 new Object[] { new Long(layoutModelImpl.getOriginalIconImageId()) });
428         }
429 
430         if (isNew ||
431                 (layout.getIconImageId() != layoutModelImpl.getOriginalIconImageId())) {
432             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
433                 new Object[] { new Long(layout.getIconImageId()) }, layout);
434         }
435 
436         if (!isNew &&
437                 ((layout.getGroupId() != layoutModelImpl.getOriginalGroupId()) ||
438                 (layout.getPrivateLayout() != layoutModelImpl.getOriginalPrivateLayout()) ||
439                 (layout.getLayoutId() != layoutModelImpl.getOriginalLayoutId()))) {
440             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_P_L,
441                 new Object[] {
442                     new Long(layoutModelImpl.getOriginalGroupId()),
443                     Boolean.valueOf(layoutModelImpl.getOriginalPrivateLayout()),
444                     new Long(layoutModelImpl.getOriginalLayoutId())
445                 });
446         }
447 
448         if (isNew ||
449                 ((layout.getGroupId() != layoutModelImpl.getOriginalGroupId()) ||
450                 (layout.getPrivateLayout() != layoutModelImpl.getOriginalPrivateLayout()) ||
451                 (layout.getLayoutId() != layoutModelImpl.getOriginalLayoutId()))) {
452             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_L,
453                 new Object[] {
454                     new Long(layout.getGroupId()),
455                     Boolean.valueOf(layout.getPrivateLayout()),
456                     new Long(layout.getLayoutId())
457                 }, layout);
458         }
459 
460         if (!isNew &&
461                 ((layout.getGroupId() != layoutModelImpl.getOriginalGroupId()) ||
462                 (layout.getPrivateLayout() != layoutModelImpl.getOriginalPrivateLayout()) ||
463                 !Validator.equals(layout.getFriendlyURL(),
464                     layoutModelImpl.getOriginalFriendlyURL()))) {
465             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_G_P_F,
466                 new Object[] {
467                     new Long(layoutModelImpl.getOriginalGroupId()),
468                     Boolean.valueOf(layoutModelImpl.getOriginalPrivateLayout()),
469                     
470                 layoutModelImpl.getOriginalFriendlyURL()
471                 });
472         }
473 
474         if (isNew ||
475                 ((layout.getGroupId() != layoutModelImpl.getOriginalGroupId()) ||
476                 (layout.getPrivateLayout() != layoutModelImpl.getOriginalPrivateLayout()) ||
477                 !Validator.equals(layout.getFriendlyURL(),
478                     layoutModelImpl.getOriginalFriendlyURL()))) {
479             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_F,
480                 new Object[] {
481                     new Long(layout.getGroupId()),
482                     Boolean.valueOf(layout.getPrivateLayout()),
483                     
484                 layout.getFriendlyURL()
485                 }, layout);
486         }
487 
488         return layout;
489     }
490 
491     protected Layout toUnwrappedModel(Layout layout) {
492         if (layout instanceof LayoutImpl) {
493             return layout;
494         }
495 
496         LayoutImpl layoutImpl = new LayoutImpl();
497 
498         layoutImpl.setNew(layout.isNew());
499         layoutImpl.setPrimaryKey(layout.getPrimaryKey());
500 
501         layoutImpl.setPlid(layout.getPlid());
502         layoutImpl.setGroupId(layout.getGroupId());
503         layoutImpl.setCompanyId(layout.getCompanyId());
504         layoutImpl.setPrivateLayout(layout.isPrivateLayout());
505         layoutImpl.setLayoutId(layout.getLayoutId());
506         layoutImpl.setParentLayoutId(layout.getParentLayoutId());
507         layoutImpl.setName(layout.getName());
508         layoutImpl.setTitle(layout.getTitle());
509         layoutImpl.setDescription(layout.getDescription());
510         layoutImpl.setType(layout.getType());
511         layoutImpl.setTypeSettings(layout.getTypeSettings());
512         layoutImpl.setHidden(layout.isHidden());
513         layoutImpl.setFriendlyURL(layout.getFriendlyURL());
514         layoutImpl.setIconImage(layout.isIconImage());
515         layoutImpl.setIconImageId(layout.getIconImageId());
516         layoutImpl.setThemeId(layout.getThemeId());
517         layoutImpl.setColorSchemeId(layout.getColorSchemeId());
518         layoutImpl.setWapThemeId(layout.getWapThemeId());
519         layoutImpl.setWapColorSchemeId(layout.getWapColorSchemeId());
520         layoutImpl.setCss(layout.getCss());
521         layoutImpl.setPriority(layout.getPriority());
522         layoutImpl.setDlFolderId(layout.getDlFolderId());
523 
524         return layoutImpl;
525     }
526 
527     public Layout findByPrimaryKey(Serializable primaryKey)
528         throws NoSuchModelException, SystemException {
529         return findByPrimaryKey(((Long)primaryKey).longValue());
530     }
531 
532     public Layout findByPrimaryKey(long plid)
533         throws NoSuchLayoutException, SystemException {
534         Layout layout = fetchByPrimaryKey(plid);
535 
536         if (layout == null) {
537             if (_log.isWarnEnabled()) {
538                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + plid);
539             }
540 
541             throw new NoSuchLayoutException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
542                 plid);
543         }
544 
545         return layout;
546     }
547 
548     public Layout fetchByPrimaryKey(Serializable primaryKey)
549         throws SystemException {
550         return fetchByPrimaryKey(((Long)primaryKey).longValue());
551     }
552 
553     public Layout fetchByPrimaryKey(long plid) throws SystemException {
554         Layout layout = (Layout)EntityCacheUtil.getResult(LayoutModelImpl.ENTITY_CACHE_ENABLED,
555                 LayoutImpl.class, plid, this);
556 
557         if (layout == null) {
558             Session session = null;
559 
560             try {
561                 session = openSession();
562 
563                 layout = (Layout)session.get(LayoutImpl.class, new Long(plid));
564             }
565             catch (Exception e) {
566                 throw processException(e);
567             }
568             finally {
569                 if (layout != null) {
570                     cacheResult(layout);
571                 }
572 
573                 closeSession(session);
574             }
575         }
576 
577         return layout;
578     }
579 
580     public List<Layout> findByGroupId(long groupId) throws SystemException {
581         Object[] finderArgs = new Object[] { new Long(groupId) };
582 
583         List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_GROUPID,
584                 finderArgs, this);
585 
586         if (list == null) {
587             Session session = null;
588 
589             try {
590                 session = openSession();
591 
592                 StringBundler query = new StringBundler(3);
593 
594                 query.append(_SQL_SELECT_LAYOUT_WHERE);
595 
596                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
597 
598                 query.append(LayoutModelImpl.ORDER_BY_JPQL);
599 
600                 String sql = query.toString();
601 
602                 Query q = session.createQuery(sql);
603 
604                 QueryPos qPos = QueryPos.getInstance(q);
605 
606                 qPos.add(groupId);
607 
608                 list = q.list();
609             }
610             catch (Exception e) {
611                 throw processException(e);
612             }
613             finally {
614                 if (list == null) {
615                     list = new ArrayList<Layout>();
616                 }
617 
618                 cacheResult(list);
619 
620                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_GROUPID,
621                     finderArgs, list);
622 
623                 closeSession(session);
624             }
625         }
626 
627         return list;
628     }
629 
630     public List<Layout> findByGroupId(long groupId, int start, int end)
631         throws SystemException {
632         return findByGroupId(groupId, start, end, null);
633     }
634 
635     public List<Layout> findByGroupId(long groupId, int start, int end,
636         OrderByComparator obc) throws SystemException {
637         Object[] finderArgs = new Object[] {
638                 new Long(groupId),
639                 
640                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
641             };
642 
643         List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
644                 finderArgs, this);
645 
646         if (list == null) {
647             Session session = null;
648 
649             try {
650                 session = openSession();
651 
652                 StringBundler query = null;
653 
654                 if (obc != null) {
655                     query = new StringBundler(3 +
656                             (obc.getOrderByFields().length * 3));
657                 }
658                 else {
659                     query = new StringBundler(3);
660                 }
661 
662                 query.append(_SQL_SELECT_LAYOUT_WHERE);
663 
664                 query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
665 
666                 if (obc != null) {
667                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
668                 }
669 
670                 else {
671                     query.append(LayoutModelImpl.ORDER_BY_JPQL);
672                 }
673 
674                 String sql = query.toString();
675 
676                 Query q = session.createQuery(sql);
677 
678                 QueryPos qPos = QueryPos.getInstance(q);
679 
680                 qPos.add(groupId);
681 
682                 list = (List<Layout>)QueryUtil.list(q, getDialect(), start, end);
683             }
684             catch (Exception e) {
685                 throw processException(e);
686             }
687             finally {
688                 if (list == null) {
689                     list = new ArrayList<Layout>();
690                 }
691 
692                 cacheResult(list);
693 
694                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_GROUPID,
695                     finderArgs, list);
696 
697                 closeSession(session);
698             }
699         }
700 
701         return list;
702     }
703 
704     public Layout findByGroupId_First(long groupId, OrderByComparator obc)
705         throws NoSuchLayoutException, SystemException {
706         List<Layout> list = findByGroupId(groupId, 0, 1, obc);
707 
708         if (list.isEmpty()) {
709             StringBundler msg = new StringBundler(4);
710 
711             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
712 
713             msg.append("groupId=");
714             msg.append(groupId);
715 
716             msg.append(StringPool.CLOSE_CURLY_BRACE);
717 
718             throw new NoSuchLayoutException(msg.toString());
719         }
720         else {
721             return list.get(0);
722         }
723     }
724 
725     public Layout findByGroupId_Last(long groupId, OrderByComparator obc)
726         throws NoSuchLayoutException, SystemException {
727         int count = countByGroupId(groupId);
728 
729         List<Layout> list = findByGroupId(groupId, count - 1, count, obc);
730 
731         if (list.isEmpty()) {
732             StringBundler msg = new StringBundler(4);
733 
734             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
735 
736             msg.append("groupId=");
737             msg.append(groupId);
738 
739             msg.append(StringPool.CLOSE_CURLY_BRACE);
740 
741             throw new NoSuchLayoutException(msg.toString());
742         }
743         else {
744             return list.get(0);
745         }
746     }
747 
748     public Layout[] findByGroupId_PrevAndNext(long plid, long groupId,
749         OrderByComparator obc) throws NoSuchLayoutException, SystemException {
750         Layout layout = findByPrimaryKey(plid);
751 
752         int count = countByGroupId(groupId);
753 
754         Session session = null;
755 
756         try {
757             session = openSession();
758 
759             StringBundler query = null;
760 
761             if (obc != null) {
762                 query = new StringBundler(3 +
763                         (obc.getOrderByFields().length * 3));
764             }
765             else {
766                 query = new StringBundler(3);
767             }
768 
769             query.append(_SQL_SELECT_LAYOUT_WHERE);
770 
771             query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
772 
773             if (obc != null) {
774                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
775             }
776 
777             else {
778                 query.append(LayoutModelImpl.ORDER_BY_JPQL);
779             }
780 
781             String sql = query.toString();
782 
783             Query q = session.createQuery(sql);
784 
785             QueryPos qPos = QueryPos.getInstance(q);
786 
787             qPos.add(groupId);
788 
789             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, layout);
790 
791             Layout[] array = new LayoutImpl[3];
792 
793             array[0] = (Layout)objArray[0];
794             array[1] = (Layout)objArray[1];
795             array[2] = (Layout)objArray[2];
796 
797             return array;
798         }
799         catch (Exception e) {
800             throw processException(e);
801         }
802         finally {
803             closeSession(session);
804         }
805     }
806 
807     public List<Layout> findByCompanyId(long companyId)
808         throws SystemException {
809         Object[] finderArgs = new Object[] { new Long(companyId) };
810 
811         List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
812                 finderArgs, this);
813 
814         if (list == null) {
815             Session session = null;
816 
817             try {
818                 session = openSession();
819 
820                 StringBundler query = new StringBundler(3);
821 
822                 query.append(_SQL_SELECT_LAYOUT_WHERE);
823 
824                 query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
825 
826                 query.append(LayoutModelImpl.ORDER_BY_JPQL);
827 
828                 String sql = query.toString();
829 
830                 Query q = session.createQuery(sql);
831 
832                 QueryPos qPos = QueryPos.getInstance(q);
833 
834                 qPos.add(companyId);
835 
836                 list = q.list();
837             }
838             catch (Exception e) {
839                 throw processException(e);
840             }
841             finally {
842                 if (list == null) {
843                     list = new ArrayList<Layout>();
844                 }
845 
846                 cacheResult(list);
847 
848                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
849                     finderArgs, list);
850 
851                 closeSession(session);
852             }
853         }
854 
855         return list;
856     }
857 
858     public List<Layout> findByCompanyId(long companyId, int start, int end)
859         throws SystemException {
860         return findByCompanyId(companyId, start, end, null);
861     }
862 
863     public List<Layout> findByCompanyId(long companyId, int start, int end,
864         OrderByComparator obc) throws SystemException {
865         Object[] finderArgs = new Object[] {
866                 new Long(companyId),
867                 
868                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
869             };
870 
871         List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
872                 finderArgs, this);
873 
874         if (list == null) {
875             Session session = null;
876 
877             try {
878                 session = openSession();
879 
880                 StringBundler query = null;
881 
882                 if (obc != null) {
883                     query = new StringBundler(3 +
884                             (obc.getOrderByFields().length * 3));
885                 }
886                 else {
887                     query = new StringBundler(3);
888                 }
889 
890                 query.append(_SQL_SELECT_LAYOUT_WHERE);
891 
892                 query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
893 
894                 if (obc != null) {
895                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
896                 }
897 
898                 else {
899                     query.append(LayoutModelImpl.ORDER_BY_JPQL);
900                 }
901 
902                 String sql = query.toString();
903 
904                 Query q = session.createQuery(sql);
905 
906                 QueryPos qPos = QueryPos.getInstance(q);
907 
908                 qPos.add(companyId);
909 
910                 list = (List<Layout>)QueryUtil.list(q, getDialect(), start, end);
911             }
912             catch (Exception e) {
913                 throw processException(e);
914             }
915             finally {
916                 if (list == null) {
917                     list = new ArrayList<Layout>();
918                 }
919 
920                 cacheResult(list);
921 
922                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_COMPANYID,
923                     finderArgs, list);
924 
925                 closeSession(session);
926             }
927         }
928 
929         return list;
930     }
931 
932     public Layout findByCompanyId_First(long companyId, OrderByComparator obc)
933         throws NoSuchLayoutException, SystemException {
934         List<Layout> list = findByCompanyId(companyId, 0, 1, obc);
935 
936         if (list.isEmpty()) {
937             StringBundler msg = new StringBundler(4);
938 
939             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
940 
941             msg.append("companyId=");
942             msg.append(companyId);
943 
944             msg.append(StringPool.CLOSE_CURLY_BRACE);
945 
946             throw new NoSuchLayoutException(msg.toString());
947         }
948         else {
949             return list.get(0);
950         }
951     }
952 
953     public Layout findByCompanyId_Last(long companyId, OrderByComparator obc)
954         throws NoSuchLayoutException, SystemException {
955         int count = countByCompanyId(companyId);
956 
957         List<Layout> list = findByCompanyId(companyId, count - 1, count, obc);
958 
959         if (list.isEmpty()) {
960             StringBundler msg = new StringBundler(4);
961 
962             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
963 
964             msg.append("companyId=");
965             msg.append(companyId);
966 
967             msg.append(StringPool.CLOSE_CURLY_BRACE);
968 
969             throw new NoSuchLayoutException(msg.toString());
970         }
971         else {
972             return list.get(0);
973         }
974     }
975 
976     public Layout[] findByCompanyId_PrevAndNext(long plid, long companyId,
977         OrderByComparator obc) throws NoSuchLayoutException, SystemException {
978         Layout layout = findByPrimaryKey(plid);
979 
980         int count = countByCompanyId(companyId);
981 
982         Session session = null;
983 
984         try {
985             session = openSession();
986 
987             StringBundler query = null;
988 
989             if (obc != null) {
990                 query = new StringBundler(3 +
991                         (obc.getOrderByFields().length * 3));
992             }
993             else {
994                 query = new StringBundler(3);
995             }
996 
997             query.append(_SQL_SELECT_LAYOUT_WHERE);
998 
999             query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
1000
1001            if (obc != null) {
1002                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1003            }
1004
1005            else {
1006                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1007            }
1008
1009            String sql = query.toString();
1010
1011            Query q = session.createQuery(sql);
1012
1013            QueryPos qPos = QueryPos.getInstance(q);
1014
1015            qPos.add(companyId);
1016
1017            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, layout);
1018
1019            Layout[] array = new LayoutImpl[3];
1020
1021            array[0] = (Layout)objArray[0];
1022            array[1] = (Layout)objArray[1];
1023            array[2] = (Layout)objArray[2];
1024
1025            return array;
1026        }
1027        catch (Exception e) {
1028            throw processException(e);
1029        }
1030        finally {
1031            closeSession(session);
1032        }
1033    }
1034
1035    public Layout findByDLFolderId(long dlFolderId)
1036        throws NoSuchLayoutException, SystemException {
1037        Layout layout = fetchByDLFolderId(dlFolderId);
1038
1039        if (layout == null) {
1040            StringBundler msg = new StringBundler(4);
1041
1042            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1043
1044            msg.append("dlFolderId=");
1045            msg.append(dlFolderId);
1046
1047            msg.append(StringPool.CLOSE_CURLY_BRACE);
1048
1049            if (_log.isWarnEnabled()) {
1050                _log.warn(msg.toString());
1051            }
1052
1053            throw new NoSuchLayoutException(msg.toString());
1054        }
1055
1056        return layout;
1057    }
1058
1059    public Layout fetchByDLFolderId(long dlFolderId) throws SystemException {
1060        return fetchByDLFolderId(dlFolderId, true);
1061    }
1062
1063    public Layout fetchByDLFolderId(long dlFolderId, boolean retrieveFromCache)
1064        throws SystemException {
1065        Object[] finderArgs = new Object[] { new Long(dlFolderId) };
1066
1067        Object result = null;
1068
1069        if (retrieveFromCache) {
1070            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
1071                    finderArgs, this);
1072        }
1073
1074        if (result == null) {
1075            Session session = null;
1076
1077            try {
1078                session = openSession();
1079
1080                StringBundler query = new StringBundler(3);
1081
1082                query.append(_SQL_SELECT_LAYOUT_WHERE);
1083
1084                query.append(_FINDER_COLUMN_DLFOLDERID_DLFOLDERID_2);
1085
1086                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1087
1088                String sql = query.toString();
1089
1090                Query q = session.createQuery(sql);
1091
1092                QueryPos qPos = QueryPos.getInstance(q);
1093
1094                qPos.add(dlFolderId);
1095
1096                List<Layout> list = q.list();
1097
1098                result = list;
1099
1100                Layout layout = null;
1101
1102                if (list.isEmpty()) {
1103                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
1104                        finderArgs, list);
1105                }
1106                else {
1107                    layout = list.get(0);
1108
1109                    cacheResult(layout);
1110
1111                    if ((layout.getDlFolderId() != dlFolderId)) {
1112                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
1113                            finderArgs, layout);
1114                    }
1115                }
1116
1117                return layout;
1118            }
1119            catch (Exception e) {
1120                throw processException(e);
1121            }
1122            finally {
1123                if (result == null) {
1124                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_DLFOLDERID,
1125                        finderArgs, new ArrayList<Layout>());
1126                }
1127
1128                closeSession(session);
1129            }
1130        }
1131        else {
1132            if (result instanceof List<?>) {
1133                return null;
1134            }
1135            else {
1136                return (Layout)result;
1137            }
1138        }
1139    }
1140
1141    public Layout findByIconImageId(long iconImageId)
1142        throws NoSuchLayoutException, SystemException {
1143        Layout layout = fetchByIconImageId(iconImageId);
1144
1145        if (layout == null) {
1146            StringBundler msg = new StringBundler(4);
1147
1148            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1149
1150            msg.append("iconImageId=");
1151            msg.append(iconImageId);
1152
1153            msg.append(StringPool.CLOSE_CURLY_BRACE);
1154
1155            if (_log.isWarnEnabled()) {
1156                _log.warn(msg.toString());
1157            }
1158
1159            throw new NoSuchLayoutException(msg.toString());
1160        }
1161
1162        return layout;
1163    }
1164
1165    public Layout fetchByIconImageId(long iconImageId)
1166        throws SystemException {
1167        return fetchByIconImageId(iconImageId, true);
1168    }
1169
1170    public Layout fetchByIconImageId(long iconImageId, boolean retrieveFromCache)
1171        throws SystemException {
1172        Object[] finderArgs = new Object[] { new Long(iconImageId) };
1173
1174        Object result = null;
1175
1176        if (retrieveFromCache) {
1177            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
1178                    finderArgs, this);
1179        }
1180
1181        if (result == null) {
1182            Session session = null;
1183
1184            try {
1185                session = openSession();
1186
1187                StringBundler query = new StringBundler(3);
1188
1189                query.append(_SQL_SELECT_LAYOUT_WHERE);
1190
1191                query.append(_FINDER_COLUMN_ICONIMAGEID_ICONIMAGEID_2);
1192
1193                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1194
1195                String sql = query.toString();
1196
1197                Query q = session.createQuery(sql);
1198
1199                QueryPos qPos = QueryPos.getInstance(q);
1200
1201                qPos.add(iconImageId);
1202
1203                List<Layout> list = q.list();
1204
1205                result = list;
1206
1207                Layout layout = null;
1208
1209                if (list.isEmpty()) {
1210                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
1211                        finderArgs, list);
1212                }
1213                else {
1214                    layout = list.get(0);
1215
1216                    cacheResult(layout);
1217
1218                    if ((layout.getIconImageId() != iconImageId)) {
1219                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
1220                            finderArgs, layout);
1221                    }
1222                }
1223
1224                return layout;
1225            }
1226            catch (Exception e) {
1227                throw processException(e);
1228            }
1229            finally {
1230                if (result == null) {
1231                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_ICONIMAGEID,
1232                        finderArgs, new ArrayList<Layout>());
1233                }
1234
1235                closeSession(session);
1236            }
1237        }
1238        else {
1239            if (result instanceof List<?>) {
1240                return null;
1241            }
1242            else {
1243                return (Layout)result;
1244            }
1245        }
1246    }
1247
1248    public List<Layout> findByG_P(long groupId, boolean privateLayout)
1249        throws SystemException {
1250        Object[] finderArgs = new Object[] {
1251                new Long(groupId), Boolean.valueOf(privateLayout)
1252            };
1253
1254        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_P,
1255                finderArgs, this);
1256
1257        if (list == null) {
1258            Session session = null;
1259
1260            try {
1261                session = openSession();
1262
1263                StringBundler query = new StringBundler(4);
1264
1265                query.append(_SQL_SELECT_LAYOUT_WHERE);
1266
1267                query.append(_FINDER_COLUMN_G_P_GROUPID_2);
1268
1269                query.append(_FINDER_COLUMN_G_P_PRIVATELAYOUT_2);
1270
1271                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1272
1273                String sql = query.toString();
1274
1275                Query q = session.createQuery(sql);
1276
1277                QueryPos qPos = QueryPos.getInstance(q);
1278
1279                qPos.add(groupId);
1280
1281                qPos.add(privateLayout);
1282
1283                list = q.list();
1284            }
1285            catch (Exception e) {
1286                throw processException(e);
1287            }
1288            finally {
1289                if (list == null) {
1290                    list = new ArrayList<Layout>();
1291                }
1292
1293                cacheResult(list);
1294
1295                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_P, finderArgs,
1296                    list);
1297
1298                closeSession(session);
1299            }
1300        }
1301
1302        return list;
1303    }
1304
1305    public List<Layout> findByG_P(long groupId, boolean privateLayout,
1306        int start, int end) throws SystemException {
1307        return findByG_P(groupId, privateLayout, start, end, null);
1308    }
1309
1310    public List<Layout> findByG_P(long groupId, boolean privateLayout,
1311        int start, int end, OrderByComparator obc) throws SystemException {
1312        Object[] finderArgs = new Object[] {
1313                new Long(groupId), Boolean.valueOf(privateLayout),
1314                
1315                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1316            };
1317
1318        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_P,
1319                finderArgs, this);
1320
1321        if (list == null) {
1322            Session session = null;
1323
1324            try {
1325                session = openSession();
1326
1327                StringBundler query = null;
1328
1329                if (obc != null) {
1330                    query = new StringBundler(4 +
1331                            (obc.getOrderByFields().length * 3));
1332                }
1333                else {
1334                    query = new StringBundler(4);
1335                }
1336
1337                query.append(_SQL_SELECT_LAYOUT_WHERE);
1338
1339                query.append(_FINDER_COLUMN_G_P_GROUPID_2);
1340
1341                query.append(_FINDER_COLUMN_G_P_PRIVATELAYOUT_2);
1342
1343                if (obc != null) {
1344                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1345                }
1346
1347                else {
1348                    query.append(LayoutModelImpl.ORDER_BY_JPQL);
1349                }
1350
1351                String sql = query.toString();
1352
1353                Query q = session.createQuery(sql);
1354
1355                QueryPos qPos = QueryPos.getInstance(q);
1356
1357                qPos.add(groupId);
1358
1359                qPos.add(privateLayout);
1360
1361                list = (List<Layout>)QueryUtil.list(q, getDialect(), start, end);
1362            }
1363            catch (Exception e) {
1364                throw processException(e);
1365            }
1366            finally {
1367                if (list == null) {
1368                    list = new ArrayList<Layout>();
1369                }
1370
1371                cacheResult(list);
1372
1373                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_P,
1374                    finderArgs, list);
1375
1376                closeSession(session);
1377            }
1378        }
1379
1380        return list;
1381    }
1382
1383    public Layout findByG_P_First(long groupId, boolean privateLayout,
1384        OrderByComparator obc) throws NoSuchLayoutException, SystemException {
1385        List<Layout> list = findByG_P(groupId, privateLayout, 0, 1, obc);
1386
1387        if (list.isEmpty()) {
1388            StringBundler msg = new StringBundler(6);
1389
1390            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1391
1392            msg.append("groupId=");
1393            msg.append(groupId);
1394
1395            msg.append(", privateLayout=");
1396            msg.append(privateLayout);
1397
1398            msg.append(StringPool.CLOSE_CURLY_BRACE);
1399
1400            throw new NoSuchLayoutException(msg.toString());
1401        }
1402        else {
1403            return list.get(0);
1404        }
1405    }
1406
1407    public Layout findByG_P_Last(long groupId, boolean privateLayout,
1408        OrderByComparator obc) throws NoSuchLayoutException, SystemException {
1409        int count = countByG_P(groupId, privateLayout);
1410
1411        List<Layout> list = findByG_P(groupId, privateLayout, count - 1, count,
1412                obc);
1413
1414        if (list.isEmpty()) {
1415            StringBundler msg = new StringBundler(6);
1416
1417            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1418
1419            msg.append("groupId=");
1420            msg.append(groupId);
1421
1422            msg.append(", privateLayout=");
1423            msg.append(privateLayout);
1424
1425            msg.append(StringPool.CLOSE_CURLY_BRACE);
1426
1427            throw new NoSuchLayoutException(msg.toString());
1428        }
1429        else {
1430            return list.get(0);
1431        }
1432    }
1433
1434    public Layout[] findByG_P_PrevAndNext(long plid, long groupId,
1435        boolean privateLayout, OrderByComparator obc)
1436        throws NoSuchLayoutException, SystemException {
1437        Layout layout = findByPrimaryKey(plid);
1438
1439        int count = countByG_P(groupId, privateLayout);
1440
1441        Session session = null;
1442
1443        try {
1444            session = openSession();
1445
1446            StringBundler query = null;
1447
1448            if (obc != null) {
1449                query = new StringBundler(4 +
1450                        (obc.getOrderByFields().length * 3));
1451            }
1452            else {
1453                query = new StringBundler(4);
1454            }
1455
1456            query.append(_SQL_SELECT_LAYOUT_WHERE);
1457
1458            query.append(_FINDER_COLUMN_G_P_GROUPID_2);
1459
1460            query.append(_FINDER_COLUMN_G_P_PRIVATELAYOUT_2);
1461
1462            if (obc != null) {
1463                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1464            }
1465
1466            else {
1467                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1468            }
1469
1470            String sql = query.toString();
1471
1472            Query q = session.createQuery(sql);
1473
1474            QueryPos qPos = QueryPos.getInstance(q);
1475
1476            qPos.add(groupId);
1477
1478            qPos.add(privateLayout);
1479
1480            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, layout);
1481
1482            Layout[] array = new LayoutImpl[3];
1483
1484            array[0] = (Layout)objArray[0];
1485            array[1] = (Layout)objArray[1];
1486            array[2] = (Layout)objArray[2];
1487
1488            return array;
1489        }
1490        catch (Exception e) {
1491            throw processException(e);
1492        }
1493        finally {
1494            closeSession(session);
1495        }
1496    }
1497
1498    public Layout findByG_P_L(long groupId, boolean privateLayout, long layoutId)
1499        throws NoSuchLayoutException, SystemException {
1500        Layout layout = fetchByG_P_L(groupId, privateLayout, layoutId);
1501
1502        if (layout == null) {
1503            StringBundler msg = new StringBundler(8);
1504
1505            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1506
1507            msg.append("groupId=");
1508            msg.append(groupId);
1509
1510            msg.append(", privateLayout=");
1511            msg.append(privateLayout);
1512
1513            msg.append(", layoutId=");
1514            msg.append(layoutId);
1515
1516            msg.append(StringPool.CLOSE_CURLY_BRACE);
1517
1518            if (_log.isWarnEnabled()) {
1519                _log.warn(msg.toString());
1520            }
1521
1522            throw new NoSuchLayoutException(msg.toString());
1523        }
1524
1525        return layout;
1526    }
1527
1528    public Layout fetchByG_P_L(long groupId, boolean privateLayout,
1529        long layoutId) throws SystemException {
1530        return fetchByG_P_L(groupId, privateLayout, layoutId, true);
1531    }
1532
1533    public Layout fetchByG_P_L(long groupId, boolean privateLayout,
1534        long layoutId, boolean retrieveFromCache) throws SystemException {
1535        Object[] finderArgs = new Object[] {
1536                new Long(groupId), Boolean.valueOf(privateLayout),
1537                new Long(layoutId)
1538            };
1539
1540        Object result = null;
1541
1542        if (retrieveFromCache) {
1543            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_P_L,
1544                    finderArgs, this);
1545        }
1546
1547        if (result == null) {
1548            Session session = null;
1549
1550            try {
1551                session = openSession();
1552
1553                StringBundler query = new StringBundler(5);
1554
1555                query.append(_SQL_SELECT_LAYOUT_WHERE);
1556
1557                query.append(_FINDER_COLUMN_G_P_L_GROUPID_2);
1558
1559                query.append(_FINDER_COLUMN_G_P_L_PRIVATELAYOUT_2);
1560
1561                query.append(_FINDER_COLUMN_G_P_L_LAYOUTID_2);
1562
1563                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1564
1565                String sql = query.toString();
1566
1567                Query q = session.createQuery(sql);
1568
1569                QueryPos qPos = QueryPos.getInstance(q);
1570
1571                qPos.add(groupId);
1572
1573                qPos.add(privateLayout);
1574
1575                qPos.add(layoutId);
1576
1577                List<Layout> list = q.list();
1578
1579                result = list;
1580
1581                Layout layout = null;
1582
1583                if (list.isEmpty()) {
1584                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_L,
1585                        finderArgs, list);
1586                }
1587                else {
1588                    layout = list.get(0);
1589
1590                    cacheResult(layout);
1591
1592                    if ((layout.getGroupId() != groupId) ||
1593                            (layout.getPrivateLayout() != privateLayout) ||
1594                            (layout.getLayoutId() != layoutId)) {
1595                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_L,
1596                            finderArgs, layout);
1597                    }
1598                }
1599
1600                return layout;
1601            }
1602            catch (Exception e) {
1603                throw processException(e);
1604            }
1605            finally {
1606                if (result == null) {
1607                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_L,
1608                        finderArgs, new ArrayList<Layout>());
1609                }
1610
1611                closeSession(session);
1612            }
1613        }
1614        else {
1615            if (result instanceof List<?>) {
1616                return null;
1617            }
1618            else {
1619                return (Layout)result;
1620            }
1621        }
1622    }
1623
1624    public List<Layout> findByG_P_P(long groupId, boolean privateLayout,
1625        long parentLayoutId) throws SystemException {
1626        Object[] finderArgs = new Object[] {
1627                new Long(groupId), Boolean.valueOf(privateLayout),
1628                new Long(parentLayoutId)
1629            };
1630
1631        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_P_P,
1632                finderArgs, this);
1633
1634        if (list == null) {
1635            Session session = null;
1636
1637            try {
1638                session = openSession();
1639
1640                StringBundler query = new StringBundler(5);
1641
1642                query.append(_SQL_SELECT_LAYOUT_WHERE);
1643
1644                query.append(_FINDER_COLUMN_G_P_P_GROUPID_2);
1645
1646                query.append(_FINDER_COLUMN_G_P_P_PRIVATELAYOUT_2);
1647
1648                query.append(_FINDER_COLUMN_G_P_P_PARENTLAYOUTID_2);
1649
1650                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1651
1652                String sql = query.toString();
1653
1654                Query q = session.createQuery(sql);
1655
1656                QueryPos qPos = QueryPos.getInstance(q);
1657
1658                qPos.add(groupId);
1659
1660                qPos.add(privateLayout);
1661
1662                qPos.add(parentLayoutId);
1663
1664                list = q.list();
1665            }
1666            catch (Exception e) {
1667                throw processException(e);
1668            }
1669            finally {
1670                if (list == null) {
1671                    list = new ArrayList<Layout>();
1672                }
1673
1674                cacheResult(list);
1675
1676                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_P_P,
1677                    finderArgs, list);
1678
1679                closeSession(session);
1680            }
1681        }
1682
1683        return list;
1684    }
1685
1686    public List<Layout> findByG_P_P(long groupId, boolean privateLayout,
1687        long parentLayoutId, int start, int end) throws SystemException {
1688        return findByG_P_P(groupId, privateLayout, parentLayoutId, start, end,
1689            null);
1690    }
1691
1692    public List<Layout> findByG_P_P(long groupId, boolean privateLayout,
1693        long parentLayoutId, int start, int end, OrderByComparator obc)
1694        throws SystemException {
1695        Object[] finderArgs = new Object[] {
1696                new Long(groupId), Boolean.valueOf(privateLayout),
1697                new Long(parentLayoutId),
1698                
1699                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1700            };
1701
1702        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_P_P,
1703                finderArgs, this);
1704
1705        if (list == null) {
1706            Session session = null;
1707
1708            try {
1709                session = openSession();
1710
1711                StringBundler query = null;
1712
1713                if (obc != null) {
1714                    query = new StringBundler(5 +
1715                            (obc.getOrderByFields().length * 3));
1716                }
1717                else {
1718                    query = new StringBundler(5);
1719                }
1720
1721                query.append(_SQL_SELECT_LAYOUT_WHERE);
1722
1723                query.append(_FINDER_COLUMN_G_P_P_GROUPID_2);
1724
1725                query.append(_FINDER_COLUMN_G_P_P_PRIVATELAYOUT_2);
1726
1727                query.append(_FINDER_COLUMN_G_P_P_PARENTLAYOUTID_2);
1728
1729                if (obc != null) {
1730                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1731                }
1732
1733                else {
1734                    query.append(LayoutModelImpl.ORDER_BY_JPQL);
1735                }
1736
1737                String sql = query.toString();
1738
1739                Query q = session.createQuery(sql);
1740
1741                QueryPos qPos = QueryPos.getInstance(q);
1742
1743                qPos.add(groupId);
1744
1745                qPos.add(privateLayout);
1746
1747                qPos.add(parentLayoutId);
1748
1749                list = (List<Layout>)QueryUtil.list(q, getDialect(), start, end);
1750            }
1751            catch (Exception e) {
1752                throw processException(e);
1753            }
1754            finally {
1755                if (list == null) {
1756                    list = new ArrayList<Layout>();
1757                }
1758
1759                cacheResult(list);
1760
1761                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_P_P,
1762                    finderArgs, list);
1763
1764                closeSession(session);
1765            }
1766        }
1767
1768        return list;
1769    }
1770
1771    public Layout findByG_P_P_First(long groupId, boolean privateLayout,
1772        long parentLayoutId, OrderByComparator obc)
1773        throws NoSuchLayoutException, SystemException {
1774        List<Layout> list = findByG_P_P(groupId, privateLayout, parentLayoutId,
1775                0, 1, obc);
1776
1777        if (list.isEmpty()) {
1778            StringBundler msg = new StringBundler(8);
1779
1780            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1781
1782            msg.append("groupId=");
1783            msg.append(groupId);
1784
1785            msg.append(", privateLayout=");
1786            msg.append(privateLayout);
1787
1788            msg.append(", parentLayoutId=");
1789            msg.append(parentLayoutId);
1790
1791            msg.append(StringPool.CLOSE_CURLY_BRACE);
1792
1793            throw new NoSuchLayoutException(msg.toString());
1794        }
1795        else {
1796            return list.get(0);
1797        }
1798    }
1799
1800    public Layout findByG_P_P_Last(long groupId, boolean privateLayout,
1801        long parentLayoutId, OrderByComparator obc)
1802        throws NoSuchLayoutException, SystemException {
1803        int count = countByG_P_P(groupId, privateLayout, parentLayoutId);
1804
1805        List<Layout> list = findByG_P_P(groupId, privateLayout, parentLayoutId,
1806                count - 1, count, obc);
1807
1808        if (list.isEmpty()) {
1809            StringBundler msg = new StringBundler(8);
1810
1811            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1812
1813            msg.append("groupId=");
1814            msg.append(groupId);
1815
1816            msg.append(", privateLayout=");
1817            msg.append(privateLayout);
1818
1819            msg.append(", parentLayoutId=");
1820            msg.append(parentLayoutId);
1821
1822            msg.append(StringPool.CLOSE_CURLY_BRACE);
1823
1824            throw new NoSuchLayoutException(msg.toString());
1825        }
1826        else {
1827            return list.get(0);
1828        }
1829    }
1830
1831    public Layout[] findByG_P_P_PrevAndNext(long plid, long groupId,
1832        boolean privateLayout, long parentLayoutId, OrderByComparator obc)
1833        throws NoSuchLayoutException, SystemException {
1834        Layout layout = findByPrimaryKey(plid);
1835
1836        int count = countByG_P_P(groupId, privateLayout, parentLayoutId);
1837
1838        Session session = null;
1839
1840        try {
1841            session = openSession();
1842
1843            StringBundler query = null;
1844
1845            if (obc != null) {
1846                query = new StringBundler(5 +
1847                        (obc.getOrderByFields().length * 3));
1848            }
1849            else {
1850                query = new StringBundler(5);
1851            }
1852
1853            query.append(_SQL_SELECT_LAYOUT_WHERE);
1854
1855            query.append(_FINDER_COLUMN_G_P_P_GROUPID_2);
1856
1857            query.append(_FINDER_COLUMN_G_P_P_PRIVATELAYOUT_2);
1858
1859            query.append(_FINDER_COLUMN_G_P_P_PARENTLAYOUTID_2);
1860
1861            if (obc != null) {
1862                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
1863            }
1864
1865            else {
1866                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1867            }
1868
1869            String sql = query.toString();
1870
1871            Query q = session.createQuery(sql);
1872
1873            QueryPos qPos = QueryPos.getInstance(q);
1874
1875            qPos.add(groupId);
1876
1877            qPos.add(privateLayout);
1878
1879            qPos.add(parentLayoutId);
1880
1881            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, layout);
1882
1883            Layout[] array = new LayoutImpl[3];
1884
1885            array[0] = (Layout)objArray[0];
1886            array[1] = (Layout)objArray[1];
1887            array[2] = (Layout)objArray[2];
1888
1889            return array;
1890        }
1891        catch (Exception e) {
1892            throw processException(e);
1893        }
1894        finally {
1895            closeSession(session);
1896        }
1897    }
1898
1899    public Layout findByG_P_F(long groupId, boolean privateLayout,
1900        String friendlyURL) throws NoSuchLayoutException, SystemException {
1901        Layout layout = fetchByG_P_F(groupId, privateLayout, friendlyURL);
1902
1903        if (layout == null) {
1904            StringBundler msg = new StringBundler(8);
1905
1906            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1907
1908            msg.append("groupId=");
1909            msg.append(groupId);
1910
1911            msg.append(", privateLayout=");
1912            msg.append(privateLayout);
1913
1914            msg.append(", friendlyURL=");
1915            msg.append(friendlyURL);
1916
1917            msg.append(StringPool.CLOSE_CURLY_BRACE);
1918
1919            if (_log.isWarnEnabled()) {
1920                _log.warn(msg.toString());
1921            }
1922
1923            throw new NoSuchLayoutException(msg.toString());
1924        }
1925
1926        return layout;
1927    }
1928
1929    public Layout fetchByG_P_F(long groupId, boolean privateLayout,
1930        String friendlyURL) throws SystemException {
1931        return fetchByG_P_F(groupId, privateLayout, friendlyURL, true);
1932    }
1933
1934    public Layout fetchByG_P_F(long groupId, boolean privateLayout,
1935        String friendlyURL, boolean retrieveFromCache)
1936        throws SystemException {
1937        Object[] finderArgs = new Object[] {
1938                new Long(groupId), Boolean.valueOf(privateLayout),
1939                
1940                friendlyURL
1941            };
1942
1943        Object result = null;
1944
1945        if (retrieveFromCache) {
1946            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_G_P_F,
1947                    finderArgs, this);
1948        }
1949
1950        if (result == null) {
1951            Session session = null;
1952
1953            try {
1954                session = openSession();
1955
1956                StringBundler query = new StringBundler(5);
1957
1958                query.append(_SQL_SELECT_LAYOUT_WHERE);
1959
1960                query.append(_FINDER_COLUMN_G_P_F_GROUPID_2);
1961
1962                query.append(_FINDER_COLUMN_G_P_F_PRIVATELAYOUT_2);
1963
1964                if (friendlyURL == null) {
1965                    query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_1);
1966                }
1967                else {
1968                    if (friendlyURL.equals(StringPool.BLANK)) {
1969                        query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_3);
1970                    }
1971                    else {
1972                        query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_2);
1973                    }
1974                }
1975
1976                query.append(LayoutModelImpl.ORDER_BY_JPQL);
1977
1978                String sql = query.toString();
1979
1980                Query q = session.createQuery(sql);
1981
1982                QueryPos qPos = QueryPos.getInstance(q);
1983
1984                qPos.add(groupId);
1985
1986                qPos.add(privateLayout);
1987
1988                if (friendlyURL != null) {
1989                    qPos.add(friendlyURL);
1990                }
1991
1992                List<Layout> list = q.list();
1993
1994                result = list;
1995
1996                Layout layout = null;
1997
1998                if (list.isEmpty()) {
1999                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_F,
2000                        finderArgs, list);
2001                }
2002                else {
2003                    layout = list.get(0);
2004
2005                    cacheResult(layout);
2006
2007                    if ((layout.getGroupId() != groupId) ||
2008                            (layout.getPrivateLayout() != privateLayout) ||
2009                            (layout.getFriendlyURL() == null) ||
2010                            !layout.getFriendlyURL().equals(friendlyURL)) {
2011                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_F,
2012                            finderArgs, layout);
2013                    }
2014                }
2015
2016                return layout;
2017            }
2018            catch (Exception e) {
2019                throw processException(e);
2020            }
2021            finally {
2022                if (result == null) {
2023                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_G_P_F,
2024                        finderArgs, new ArrayList<Layout>());
2025                }
2026
2027                closeSession(session);
2028            }
2029        }
2030        else {
2031            if (result instanceof List<?>) {
2032                return null;
2033            }
2034            else {
2035                return (Layout)result;
2036            }
2037        }
2038    }
2039
2040    public List<Layout> findByG_P_T(long groupId, boolean privateLayout,
2041        String type) throws SystemException {
2042        Object[] finderArgs = new Object[] {
2043                new Long(groupId), Boolean.valueOf(privateLayout),
2044                
2045                type
2046            };
2047
2048        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_G_P_T,
2049                finderArgs, this);
2050
2051        if (list == null) {
2052            Session session = null;
2053
2054            try {
2055                session = openSession();
2056
2057                StringBundler query = new StringBundler(5);
2058
2059                query.append(_SQL_SELECT_LAYOUT_WHERE);
2060
2061                query.append(_FINDER_COLUMN_G_P_T_GROUPID_2);
2062
2063                query.append(_FINDER_COLUMN_G_P_T_PRIVATELAYOUT_2);
2064
2065                if (type == null) {
2066                    query.append(_FINDER_COLUMN_G_P_T_TYPE_1);
2067                }
2068                else {
2069                    if (type.equals(StringPool.BLANK)) {
2070                        query.append(_FINDER_COLUMN_G_P_T_TYPE_3);
2071                    }
2072                    else {
2073                        query.append(_FINDER_COLUMN_G_P_T_TYPE_2);
2074                    }
2075                }
2076
2077                query.append(LayoutModelImpl.ORDER_BY_JPQL);
2078
2079                String sql = query.toString();
2080
2081                Query q = session.createQuery(sql);
2082
2083                QueryPos qPos = QueryPos.getInstance(q);
2084
2085                qPos.add(groupId);
2086
2087                qPos.add(privateLayout);
2088
2089                if (type != null) {
2090                    qPos.add(type);
2091                }
2092
2093                list = q.list();
2094            }
2095            catch (Exception e) {
2096                throw processException(e);
2097            }
2098            finally {
2099                if (list == null) {
2100                    list = new ArrayList<Layout>();
2101                }
2102
2103                cacheResult(list);
2104
2105                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_G_P_T,
2106                    finderArgs, list);
2107
2108                closeSession(session);
2109            }
2110        }
2111
2112        return list;
2113    }
2114
2115    public List<Layout> findByG_P_T(long groupId, boolean privateLayout,
2116        String type, int start, int end) throws SystemException {
2117        return findByG_P_T(groupId, privateLayout, type, start, end, null);
2118    }
2119
2120    public List<Layout> findByG_P_T(long groupId, boolean privateLayout,
2121        String type, int start, int end, OrderByComparator obc)
2122        throws SystemException {
2123        Object[] finderArgs = new Object[] {
2124                new Long(groupId), Boolean.valueOf(privateLayout),
2125                
2126                type,
2127                
2128                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2129            };
2130
2131        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_G_P_T,
2132                finderArgs, this);
2133
2134        if (list == null) {
2135            Session session = null;
2136
2137            try {
2138                session = openSession();
2139
2140                StringBundler query = null;
2141
2142                if (obc != null) {
2143                    query = new StringBundler(5 +
2144                            (obc.getOrderByFields().length * 3));
2145                }
2146                else {
2147                    query = new StringBundler(5);
2148                }
2149
2150                query.append(_SQL_SELECT_LAYOUT_WHERE);
2151
2152                query.append(_FINDER_COLUMN_G_P_T_GROUPID_2);
2153
2154                query.append(_FINDER_COLUMN_G_P_T_PRIVATELAYOUT_2);
2155
2156                if (type == null) {
2157                    query.append(_FINDER_COLUMN_G_P_T_TYPE_1);
2158                }
2159                else {
2160                    if (type.equals(StringPool.BLANK)) {
2161                        query.append(_FINDER_COLUMN_G_P_T_TYPE_3);
2162                    }
2163                    else {
2164                        query.append(_FINDER_COLUMN_G_P_T_TYPE_2);
2165                    }
2166                }
2167
2168                if (obc != null) {
2169                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
2170                }
2171
2172                else {
2173                    query.append(LayoutModelImpl.ORDER_BY_JPQL);
2174                }
2175
2176                String sql = query.toString();
2177
2178                Query q = session.createQuery(sql);
2179
2180                QueryPos qPos = QueryPos.getInstance(q);
2181
2182                qPos.add(groupId);
2183
2184                qPos.add(privateLayout);
2185
2186                if (type != null) {
2187                    qPos.add(type);
2188                }
2189
2190                list = (List<Layout>)QueryUtil.list(q, getDialect(), start, end);
2191            }
2192            catch (Exception e) {
2193                throw processException(e);
2194            }
2195            finally {
2196                if (list == null) {
2197                    list = new ArrayList<Layout>();
2198                }
2199
2200                cacheResult(list);
2201
2202                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_G_P_T,
2203                    finderArgs, list);
2204
2205                closeSession(session);
2206            }
2207        }
2208
2209        return list;
2210    }
2211
2212    public Layout findByG_P_T_First(long groupId, boolean privateLayout,
2213        String type, OrderByComparator obc)
2214        throws NoSuchLayoutException, SystemException {
2215        List<Layout> list = findByG_P_T(groupId, privateLayout, type, 0, 1, obc);
2216
2217        if (list.isEmpty()) {
2218            StringBundler msg = new StringBundler(8);
2219
2220            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2221
2222            msg.append("groupId=");
2223            msg.append(groupId);
2224
2225            msg.append(", privateLayout=");
2226            msg.append(privateLayout);
2227
2228            msg.append(", type=");
2229            msg.append(type);
2230
2231            msg.append(StringPool.CLOSE_CURLY_BRACE);
2232
2233            throw new NoSuchLayoutException(msg.toString());
2234        }
2235        else {
2236            return list.get(0);
2237        }
2238    }
2239
2240    public Layout findByG_P_T_Last(long groupId, boolean privateLayout,
2241        String type, OrderByComparator obc)
2242        throws NoSuchLayoutException, SystemException {
2243        int count = countByG_P_T(groupId, privateLayout, type);
2244
2245        List<Layout> list = findByG_P_T(groupId, privateLayout, type,
2246                count - 1, count, obc);
2247
2248        if (list.isEmpty()) {
2249            StringBundler msg = new StringBundler(8);
2250
2251            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
2252
2253            msg.append("groupId=");
2254            msg.append(groupId);
2255
2256            msg.append(", privateLayout=");
2257            msg.append(privateLayout);
2258
2259            msg.append(", type=");
2260            msg.append(type);
2261
2262            msg.append(StringPool.CLOSE_CURLY_BRACE);
2263
2264            throw new NoSuchLayoutException(msg.toString());
2265        }
2266        else {
2267            return list.get(0);
2268        }
2269    }
2270
2271    public Layout[] findByG_P_T_PrevAndNext(long plid, long groupId,
2272        boolean privateLayout, String type, OrderByComparator obc)
2273        throws NoSuchLayoutException, SystemException {
2274        Layout layout = findByPrimaryKey(plid);
2275
2276        int count = countByG_P_T(groupId, privateLayout, type);
2277
2278        Session session = null;
2279
2280        try {
2281            session = openSession();
2282
2283            StringBundler query = null;
2284
2285            if (obc != null) {
2286                query = new StringBundler(5 +
2287                        (obc.getOrderByFields().length * 3));
2288            }
2289            else {
2290                query = new StringBundler(5);
2291            }
2292
2293            query.append(_SQL_SELECT_LAYOUT_WHERE);
2294
2295            query.append(_FINDER_COLUMN_G_P_T_GROUPID_2);
2296
2297            query.append(_FINDER_COLUMN_G_P_T_PRIVATELAYOUT_2);
2298
2299            if (type == null) {
2300                query.append(_FINDER_COLUMN_G_P_T_TYPE_1);
2301            }
2302            else {
2303                if (type.equals(StringPool.BLANK)) {
2304                    query.append(_FINDER_COLUMN_G_P_T_TYPE_3);
2305                }
2306                else {
2307                    query.append(_FINDER_COLUMN_G_P_T_TYPE_2);
2308                }
2309            }
2310
2311            if (obc != null) {
2312                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
2313            }
2314
2315            else {
2316                query.append(LayoutModelImpl.ORDER_BY_JPQL);
2317            }
2318
2319            String sql = query.toString();
2320
2321            Query q = session.createQuery(sql);
2322
2323            QueryPos qPos = QueryPos.getInstance(q);
2324
2325            qPos.add(groupId);
2326
2327            qPos.add(privateLayout);
2328
2329            if (type != null) {
2330                qPos.add(type);
2331            }
2332
2333            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc, layout);
2334
2335            Layout[] array = new LayoutImpl[3];
2336
2337            array[0] = (Layout)objArray[0];
2338            array[1] = (Layout)objArray[1];
2339            array[2] = (Layout)objArray[2];
2340
2341            return array;
2342        }
2343        catch (Exception e) {
2344            throw processException(e);
2345        }
2346        finally {
2347            closeSession(session);
2348        }
2349    }
2350
2351    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
2352        throws SystemException {
2353        Session session = null;
2354
2355        try {
2356            session = openSession();
2357
2358            dynamicQuery.compile(session);
2359
2360            return dynamicQuery.list();
2361        }
2362        catch (Exception e) {
2363            throw processException(e);
2364        }
2365        finally {
2366            closeSession(session);
2367        }
2368    }
2369
2370    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
2371        int start, int end) throws SystemException {
2372        Session session = null;
2373
2374        try {
2375            session = openSession();
2376
2377            dynamicQuery.setLimit(start, end);
2378
2379            dynamicQuery.compile(session);
2380
2381            return dynamicQuery.list();
2382        }
2383        catch (Exception e) {
2384            throw processException(e);
2385        }
2386        finally {
2387            closeSession(session);
2388        }
2389    }
2390
2391    public List<Layout> findAll() throws SystemException {
2392        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
2393    }
2394
2395    public List<Layout> findAll(int start, int end) throws SystemException {
2396        return findAll(start, end, null);
2397    }
2398
2399    public List<Layout> findAll(int start, int end, OrderByComparator obc)
2400        throws SystemException {
2401        Object[] finderArgs = new Object[] {
2402                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
2403            };
2404
2405        List<Layout> list = (List<Layout>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
2406                finderArgs, this);
2407
2408        if (list == null) {
2409            Session session = null;
2410
2411            try {
2412                session = openSession();
2413
2414                StringBundler query = null;
2415                String sql = null;
2416
2417                if (obc != null) {
2418                    query = new StringBundler(2 +
2419                            (obc.getOrderByFields().length * 3));
2420
2421                    query.append(_SQL_SELECT_LAYOUT);
2422
2423                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
2424
2425                    sql = query.toString();
2426                }
2427
2428                else {
2429                    sql = _SQL_SELECT_LAYOUT.concat(LayoutModelImpl.ORDER_BY_JPQL);
2430                }
2431
2432                Query q = session.createQuery(sql);
2433
2434                if (obc == null) {
2435                    list = (List<Layout>)QueryUtil.list(q, getDialect(), start,
2436                            end, false);
2437
2438                    Collections.sort(list);
2439                }
2440                else {
2441                    list = (List<Layout>)QueryUtil.list(q, getDialect(), start,
2442                            end);
2443                }
2444            }
2445            catch (Exception e) {
2446                throw processException(e);
2447            }
2448            finally {
2449                if (list == null) {
2450                    list = new ArrayList<Layout>();
2451                }
2452
2453                cacheResult(list);
2454
2455                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
2456
2457                closeSession(session);
2458            }
2459        }
2460
2461        return list;
2462    }
2463
2464    public void removeByGroupId(long groupId) throws SystemException {
2465        for (Layout layout : findByGroupId(groupId)) {
2466            remove(layout);
2467        }
2468    }
2469
2470    public void removeByCompanyId(long companyId) throws SystemException {
2471        for (Layout layout : findByCompanyId(companyId)) {
2472            remove(layout);
2473        }
2474    }
2475
2476    public void removeByDLFolderId(long dlFolderId)
2477        throws NoSuchLayoutException, SystemException {
2478        Layout layout = findByDLFolderId(dlFolderId);
2479
2480        remove(layout);
2481    }
2482
2483    public void removeByIconImageId(long iconImageId)
2484        throws NoSuchLayoutException, SystemException {
2485        Layout layout = findByIconImageId(iconImageId);
2486
2487        remove(layout);
2488    }
2489
2490    public void removeByG_P(long groupId, boolean privateLayout)
2491        throws SystemException {
2492        for (Layout layout : findByG_P(groupId, privateLayout)) {
2493            remove(layout);
2494        }
2495    }
2496
2497    public void removeByG_P_L(long groupId, boolean privateLayout, long layoutId)
2498        throws NoSuchLayoutException, SystemException {
2499        Layout layout = findByG_P_L(groupId, privateLayout, layoutId);
2500
2501        remove(layout);
2502    }
2503
2504    public void removeByG_P_P(long groupId, boolean privateLayout,
2505        long parentLayoutId) throws SystemException {
2506        for (Layout layout : findByG_P_P(groupId, privateLayout, parentLayoutId)) {
2507            remove(layout);
2508        }
2509    }
2510
2511    public void removeByG_P_F(long groupId, boolean privateLayout,
2512        String friendlyURL) throws NoSuchLayoutException, SystemException {
2513        Layout layout = findByG_P_F(groupId, privateLayout, friendlyURL);
2514
2515        remove(layout);
2516    }
2517
2518    public void removeByG_P_T(long groupId, boolean privateLayout, String type)
2519        throws SystemException {
2520        for (Layout layout : findByG_P_T(groupId, privateLayout, type)) {
2521            remove(layout);
2522        }
2523    }
2524
2525    public void removeAll() throws SystemException {
2526        for (Layout layout : findAll()) {
2527            remove(layout);
2528        }
2529    }
2530
2531    public int countByGroupId(long groupId) throws SystemException {
2532        Object[] finderArgs = new Object[] { new Long(groupId) };
2533
2534        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_GROUPID,
2535                finderArgs, this);
2536
2537        if (count == null) {
2538            Session session = null;
2539
2540            try {
2541                session = openSession();
2542
2543                StringBundler query = new StringBundler(2);
2544
2545                query.append(_SQL_COUNT_LAYOUT_WHERE);
2546
2547                query.append(_FINDER_COLUMN_GROUPID_GROUPID_2);
2548
2549                String sql = query.toString();
2550
2551                Query q = session.createQuery(sql);
2552
2553                QueryPos qPos = QueryPos.getInstance(q);
2554
2555                qPos.add(groupId);
2556
2557                count = (Long)q.uniqueResult();
2558            }
2559            catch (Exception e) {
2560                throw processException(e);
2561            }
2562            finally {
2563                if (count == null) {
2564                    count = Long.valueOf(0);
2565                }
2566
2567                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_GROUPID,
2568                    finderArgs, count);
2569
2570                closeSession(session);
2571            }
2572        }
2573
2574        return count.intValue();
2575    }
2576
2577    public int countByCompanyId(long companyId) throws SystemException {
2578        Object[] finderArgs = new Object[] { new Long(companyId) };
2579
2580        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
2581                finderArgs, this);
2582
2583        if (count == null) {
2584            Session session = null;
2585
2586            try {
2587                session = openSession();
2588
2589                StringBundler query = new StringBundler(2);
2590
2591                query.append(_SQL_COUNT_LAYOUT_WHERE);
2592
2593                query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
2594
2595                String sql = query.toString();
2596
2597                Query q = session.createQuery(sql);
2598
2599                QueryPos qPos = QueryPos.getInstance(q);
2600
2601                qPos.add(companyId);
2602
2603                count = (Long)q.uniqueResult();
2604            }
2605            catch (Exception e) {
2606                throw processException(e);
2607            }
2608            finally {
2609                if (count == null) {
2610                    count = Long.valueOf(0);
2611                }
2612
2613                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
2614                    finderArgs, count);
2615
2616                closeSession(session);
2617            }
2618        }
2619
2620        return count.intValue();
2621    }
2622
2623    public int countByDLFolderId(long dlFolderId) throws SystemException {
2624        Object[] finderArgs = new Object[] { new Long(dlFolderId) };
2625
2626        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_DLFOLDERID,
2627                finderArgs, this);
2628
2629        if (count == null) {
2630            Session session = null;
2631
2632            try {
2633                session = openSession();
2634
2635                StringBundler query = new StringBundler(2);
2636
2637                query.append(_SQL_COUNT_LAYOUT_WHERE);
2638
2639                query.append(_FINDER_COLUMN_DLFOLDERID_DLFOLDERID_2);
2640
2641                String sql = query.toString();
2642
2643                Query q = session.createQuery(sql);
2644
2645                QueryPos qPos = QueryPos.getInstance(q);
2646
2647                qPos.add(dlFolderId);
2648
2649                count = (Long)q.uniqueResult();
2650            }
2651            catch (Exception e) {
2652                throw processException(e);
2653            }
2654            finally {
2655                if (count == null) {
2656                    count = Long.valueOf(0);
2657                }
2658
2659                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_DLFOLDERID,
2660                    finderArgs, count);
2661
2662                closeSession(session);
2663            }
2664        }
2665
2666        return count.intValue();
2667    }
2668
2669    public int countByIconImageId(long iconImageId) throws SystemException {
2670        Object[] finderArgs = new Object[] { new Long(iconImageId) };
2671
2672        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_ICONIMAGEID,
2673                finderArgs, this);
2674
2675        if (count == null) {
2676            Session session = null;
2677
2678            try {
2679                session = openSession();
2680
2681                StringBundler query = new StringBundler(2);
2682
2683                query.append(_SQL_COUNT_LAYOUT_WHERE);
2684
2685                query.append(_FINDER_COLUMN_ICONIMAGEID_ICONIMAGEID_2);
2686
2687                String sql = query.toString();
2688
2689                Query q = session.createQuery(sql);
2690
2691                QueryPos qPos = QueryPos.getInstance(q);
2692
2693                qPos.add(iconImageId);
2694
2695                count = (Long)q.uniqueResult();
2696            }
2697            catch (Exception e) {
2698                throw processException(e);
2699            }
2700            finally {
2701                if (count == null) {
2702                    count = Long.valueOf(0);
2703                }
2704
2705                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_ICONIMAGEID,
2706                    finderArgs, count);
2707
2708                closeSession(session);
2709            }
2710        }
2711
2712        return count.intValue();
2713    }
2714
2715    public int countByG_P(long groupId, boolean privateLayout)
2716        throws SystemException {
2717        Object[] finderArgs = new Object[] {
2718                new Long(groupId), Boolean.valueOf(privateLayout)
2719            };
2720
2721        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_P,
2722                finderArgs, this);
2723
2724        if (count == null) {
2725            Session session = null;
2726
2727            try {
2728                session = openSession();
2729
2730                StringBundler query = new StringBundler(3);
2731
2732                query.append(_SQL_COUNT_LAYOUT_WHERE);
2733
2734                query.append(_FINDER_COLUMN_G_P_GROUPID_2);
2735
2736                query.append(_FINDER_COLUMN_G_P_PRIVATELAYOUT_2);
2737
2738                String sql = query.toString();
2739
2740                Query q = session.createQuery(sql);
2741
2742                QueryPos qPos = QueryPos.getInstance(q);
2743
2744                qPos.add(groupId);
2745
2746                qPos.add(privateLayout);
2747
2748                count = (Long)q.uniqueResult();
2749            }
2750            catch (Exception e) {
2751                throw processException(e);
2752            }
2753            finally {
2754                if (count == null) {
2755                    count = Long.valueOf(0);
2756                }
2757
2758                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_P, finderArgs,
2759                    count);
2760
2761                closeSession(session);
2762            }
2763        }
2764
2765        return count.intValue();
2766    }
2767
2768    public int countByG_P_L(long groupId, boolean privateLayout, long layoutId)
2769        throws SystemException {
2770        Object[] finderArgs = new Object[] {
2771                new Long(groupId), Boolean.valueOf(privateLayout),
2772                new Long(layoutId)
2773            };
2774
2775        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_P_L,
2776                finderArgs, this);
2777
2778        if (count == null) {
2779            Session session = null;
2780
2781            try {
2782                session = openSession();
2783
2784                StringBundler query = new StringBundler(4);
2785
2786                query.append(_SQL_COUNT_LAYOUT_WHERE);
2787
2788                query.append(_FINDER_COLUMN_G_P_L_GROUPID_2);
2789
2790                query.append(_FINDER_COLUMN_G_P_L_PRIVATELAYOUT_2);
2791
2792                query.append(_FINDER_COLUMN_G_P_L_LAYOUTID_2);
2793
2794                String sql = query.toString();
2795
2796                Query q = session.createQuery(sql);
2797
2798                QueryPos qPos = QueryPos.getInstance(q);
2799
2800                qPos.add(groupId);
2801
2802                qPos.add(privateLayout);
2803
2804                qPos.add(layoutId);
2805
2806                count = (Long)q.uniqueResult();
2807            }
2808            catch (Exception e) {
2809                throw processException(e);
2810            }
2811            finally {
2812                if (count == null) {
2813                    count = Long.valueOf(0);
2814                }
2815
2816                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_P_L,
2817                    finderArgs, count);
2818
2819                closeSession(session);
2820            }
2821        }
2822
2823        return count.intValue();
2824    }
2825
2826    public int countByG_P_P(long groupId, boolean privateLayout,
2827        long parentLayoutId) throws SystemException {
2828        Object[] finderArgs = new Object[] {
2829                new Long(groupId), Boolean.valueOf(privateLayout),
2830                new Long(parentLayoutId)
2831            };
2832
2833        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_P_P,
2834                finderArgs, this);
2835
2836        if (count == null) {
2837            Session session = null;
2838
2839            try {
2840                session = openSession();
2841
2842                StringBundler query = new StringBundler(4);
2843
2844                query.append(_SQL_COUNT_LAYOUT_WHERE);
2845
2846                query.append(_FINDER_COLUMN_G_P_P_GROUPID_2);
2847
2848                query.append(_FINDER_COLUMN_G_P_P_PRIVATELAYOUT_2);
2849
2850                query.append(_FINDER_COLUMN_G_P_P_PARENTLAYOUTID_2);
2851
2852                String sql = query.toString();
2853
2854                Query q = session.createQuery(sql);
2855
2856                QueryPos qPos = QueryPos.getInstance(q);
2857
2858                qPos.add(groupId);
2859
2860                qPos.add(privateLayout);
2861
2862                qPos.add(parentLayoutId);
2863
2864                count = (Long)q.uniqueResult();
2865            }
2866            catch (Exception e) {
2867                throw processException(e);
2868            }
2869            finally {
2870                if (count == null) {
2871                    count = Long.valueOf(0);
2872                }
2873
2874                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_P_P,
2875                    finderArgs, count);
2876
2877                closeSession(session);
2878            }
2879        }
2880
2881        return count.intValue();
2882    }
2883
2884    public int countByG_P_F(long groupId, boolean privateLayout,
2885        String friendlyURL) throws SystemException {
2886        Object[] finderArgs = new Object[] {
2887                new Long(groupId), Boolean.valueOf(privateLayout),
2888                
2889                friendlyURL
2890            };
2891
2892        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_P_F,
2893                finderArgs, this);
2894
2895        if (count == null) {
2896            Session session = null;
2897
2898            try {
2899                session = openSession();
2900
2901                StringBundler query = new StringBundler(4);
2902
2903                query.append(_SQL_COUNT_LAYOUT_WHERE);
2904
2905                query.append(_FINDER_COLUMN_G_P_F_GROUPID_2);
2906
2907                query.append(_FINDER_COLUMN_G_P_F_PRIVATELAYOUT_2);
2908
2909                if (friendlyURL == null) {
2910                    query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_1);
2911                }
2912                else {
2913                    if (friendlyURL.equals(StringPool.BLANK)) {
2914                        query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_3);
2915                    }
2916                    else {
2917                        query.append(_FINDER_COLUMN_G_P_F_FRIENDLYURL_2);
2918                    }
2919                }
2920
2921                String sql = query.toString();
2922
2923                Query q = session.createQuery(sql);
2924
2925                QueryPos qPos = QueryPos.getInstance(q);
2926
2927                qPos.add(groupId);
2928
2929                qPos.add(privateLayout);
2930
2931                if (friendlyURL != null) {
2932                    qPos.add(friendlyURL);
2933                }
2934
2935                count = (Long)q.uniqueResult();
2936            }
2937            catch (Exception e) {
2938                throw processException(e);
2939            }
2940            finally {
2941                if (count == null) {
2942                    count = Long.valueOf(0);
2943                }
2944
2945                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_P_F,
2946                    finderArgs, count);
2947
2948                closeSession(session);
2949            }
2950        }
2951
2952        return count.intValue();
2953    }
2954
2955    public int countByG_P_T(long groupId, boolean privateLayout, String type)
2956        throws SystemException {
2957        Object[] finderArgs = new Object[] {
2958                new Long(groupId), Boolean.valueOf(privateLayout),
2959                
2960                type
2961            };
2962
2963        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_G_P_T,
2964                finderArgs, this);
2965
2966        if (count == null) {
2967            Session session = null;
2968
2969            try {
2970                session = openSession();
2971
2972                StringBundler query = new StringBundler(4);
2973
2974                query.append(_SQL_COUNT_LAYOUT_WHERE);
2975
2976                query.append(_FINDER_COLUMN_G_P_T_GROUPID_2);
2977
2978                query.append(_FINDER_COLUMN_G_P_T_PRIVATELAYOUT_2);
2979
2980                if (type == null) {
2981                    query.append(_FINDER_COLUMN_G_P_T_TYPE_1);
2982                }
2983                else {
2984                    if (type.equals(StringPool.BLANK)) {
2985                        query.append(_FINDER_COLUMN_G_P_T_TYPE_3);
2986                    }
2987                    else {
2988                        query.append(_FINDER_COLUMN_G_P_T_TYPE_2);
2989                    }
2990                }
2991
2992                String sql = query.toString();
2993
2994                Query q = session.createQuery(sql);
2995
2996                QueryPos qPos = QueryPos.getInstance(q);
2997
2998                qPos.add(groupId);
2999
3000                qPos.add(privateLayout);
3001
3002                if (type != null) {
3003                    qPos.add(type);
3004                }
3005
3006                count = (Long)q.uniqueResult();
3007            }
3008            catch (Exception e) {
3009                throw processException(e);
3010            }
3011            finally {
3012                if (count == null) {
3013                    count = Long.valueOf(0);
3014                }
3015
3016                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_G_P_T,
3017                    finderArgs, count);
3018
3019                closeSession(session);
3020            }
3021        }
3022
3023        return count.intValue();
3024    }
3025
3026    public int countAll() throws SystemException {
3027        Object[] finderArgs = new Object[0];
3028
3029        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
3030                finderArgs, this);
3031
3032        if (count == null) {
3033            Session session = null;
3034
3035            try {
3036                session = openSession();
3037
3038                Query q = session.createQuery(_SQL_COUNT_LAYOUT);
3039
3040                count = (Long)q.uniqueResult();
3041            }
3042            catch (Exception e) {
3043                throw processException(e);
3044            }
3045            finally {
3046                if (count == null) {
3047                    count = Long.valueOf(0);
3048                }
3049
3050                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
3051                    count);
3052
3053                closeSession(session);
3054            }
3055        }
3056
3057        return count.intValue();
3058    }
3059
3060    public void afterPropertiesSet() {
3061        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
3062                    com.liferay.portal.util.PropsUtil.get(
3063                        "value.object.listener.com.liferay.portal.model.Layout")));
3064
3065        if (listenerClassNames.length > 0) {
3066            try {
3067                List<ModelListener<Layout>> listenersList = new ArrayList<ModelListener<Layout>>();
3068
3069                for (String listenerClassName : listenerClassNames) {
3070                    listenersList.add((ModelListener<Layout>)Class.forName(
3071                            listenerClassName).newInstance());
3072                }
3073
3074                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
3075            }
3076            catch (Exception e) {
3077                _log.error(e);
3078            }
3079        }
3080    }
3081
3082    @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence")
3083    protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
3084    @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence")
3085    protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
3086    @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence")
3087    protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
3088    @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence")
3089    protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
3090    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence")
3091    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
3092    @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence")
3093    protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
3094    @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence")
3095    protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
3096    @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence")
3097    protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
3098    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence")
3099    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
3100    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence")
3101    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
3102    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence")
3103    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
3104    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence")
3105    protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
3106    @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence")
3107    protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
3108    @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence")
3109    protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
3110    @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence")
3111    protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
3112    @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence")
3113    protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
3114    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence")
3115    protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
3116    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence")
3117    protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
3118    @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence")
3119    protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
3120    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence")
3121    protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
3122    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence")
3123    protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
3124    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence")
3125    protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
3126    @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence")
3127    protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
3128    @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence")
3129    protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
3130    @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence")
3131    protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
3132    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence")
3133    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
3134    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence")
3135    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
3136    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence")
3137    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
3138    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence")
3139    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
3140    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence")
3141    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
3142    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
3143    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
3144    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence")
3145    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
3146    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence")
3147    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
3148    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence")
3149    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
3150    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence")
3151    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
3152    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence")
3153    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
3154    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence")
3155    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
3156    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence")
3157    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
3158    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
3159    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
3160    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence")
3161    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
3162    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence")
3163    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
3164    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence")
3165    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
3166    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence")
3167    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
3168    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence")
3169    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
3170    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence")
3171    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
3172    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence")
3173    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
3174    @BeanReference(name = "com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistence")
3175    protected com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistence dlFolderPersistence;
3176    @BeanReference(name = "com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence")
3177    protected com.liferay.portlet.journal.service.persistence.JournalContentSearchPersistence journalContentSearchPersistence;
3178    @BeanReference(name = "com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence")
3179    protected com.liferay.portlet.messageboards.service.persistence.MBMessagePersistence mbMessagePersistence;
3180    @BeanReference(name = "com.liferay.portlet.ratings.service.persistence.RatingsStatsPersistence")
3181    protected com.liferay.portlet.ratings.service.persistence.RatingsStatsPersistence ratingsStatsPersistence;
3182    @BeanReference(name = "com.liferay.portlet.tasks.service.persistence.TasksProposalPersistence")
3183    protected com.liferay.portlet.tasks.service.persistence.TasksProposalPersistence tasksProposalPersistence;
3184    private static final String _SQL_SELECT_LAYOUT = "SELECT layout FROM Layout layout";
3185    private static final String _SQL_SELECT_LAYOUT_WHERE = "SELECT layout FROM Layout layout WHERE ";
3186    private static final String _SQL_COUNT_LAYOUT = "SELECT COUNT(layout) FROM Layout layout";
3187    private static final String _SQL_COUNT_LAYOUT_WHERE = "SELECT COUNT(layout) FROM Layout layout WHERE ";
3188    private static final String _FINDER_COLUMN_GROUPID_GROUPID_2 = "layout.groupId = ?";
3189    private static final String _FINDER_COLUMN_COMPANYID_COMPANYID_2 = "layout.companyId = ?";
3190    private static final String _FINDER_COLUMN_DLFOLDERID_DLFOLDERID_2 = "layout.dlFolderId = ?";
3191    private static final String _FINDER_COLUMN_ICONIMAGEID_ICONIMAGEID_2 = "layout.iconImageId = ?";
3192    private static final String _FINDER_COLUMN_G_P_GROUPID_2 = "layout.groupId = ? AND ";
3193    private static final String _FINDER_COLUMN_G_P_PRIVATELAYOUT_2 = "layout.privateLayout = ?";
3194    private static final String _FINDER_COLUMN_G_P_L_GROUPID_2 = "layout.groupId = ? AND ";
3195    private static final String _FINDER_COLUMN_G_P_L_PRIVATELAYOUT_2 = "layout.privateLayout = ? AND ";
3196    private static final String _FINDER_COLUMN_G_P_L_LAYOUTID_2 = "layout.layoutId = ?";
3197    private static final String _FINDER_COLUMN_G_P_P_GROUPID_2 = "layout.groupId = ? AND ";
3198    private static final String _FINDER_COLUMN_G_P_P_PRIVATELAYOUT_2 = "layout.privateLayout = ? AND ";
3199    private static final String _FINDER_COLUMN_G_P_P_PARENTLAYOUTID_2 = "layout.parentLayoutId = ?";
3200    private static final String _FINDER_COLUMN_G_P_F_GROUPID_2 = "layout.groupId = ? AND ";
3201    private static final String _FINDER_COLUMN_G_P_F_PRIVATELAYOUT_2 = "layout.privateLayout = ? AND ";
3202    private static final String _FINDER_COLUMN_G_P_F_FRIENDLYURL_1 = "layout.friendlyURL IS NULL";
3203    private static final String _FINDER_COLUMN_G_P_F_FRIENDLYURL_2 = "layout.friendlyURL = ?";
3204    private static final String _FINDER_COLUMN_G_P_F_FRIENDLYURL_3 = "(layout.friendlyURL IS NULL OR layout.friendlyURL = ?)";
3205    private static final String _FINDER_COLUMN_G_P_T_GROUPID_2 = "layout.groupId = ? AND ";
3206    private static final String _FINDER_COLUMN_G_P_T_PRIVATELAYOUT_2 = "layout.privateLayout = ? AND ";
3207    private static final String _FINDER_COLUMN_G_P_T_TYPE_1 = "layout.type IS NULL";
3208    private static final String _FINDER_COLUMN_G_P_T_TYPE_2 = "layout.type = ?";
3209    private static final String _FINDER_COLUMN_G_P_T_TYPE_3 = "(layout.type IS NULL OR layout.type = ?)";
3210    private static final String _ORDER_BY_ENTITY_ALIAS = "layout.";
3211    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No Layout exists with the primary key ";
3212    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No Layout exists with the key {";
3213    private static Log _log = LogFactoryUtil.getLog(LayoutPersistenceImpl.class);
3214}