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