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