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