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