1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    *
5    *
6    *
7    * The contents of this file are subject to the terms of the Liferay Enterprise
8    * Subscription License ("License"). You may not use this file except in
9    * compliance with the License. You can obtain a copy of the License by
10   * contacting Liferay, Inc. See the License for the specific language governing
11   * permissions and limitations under the License, including but not limited to
12   * distribution rights of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.service.persistence;
24  
25  import com.liferay.portal.NoSuchPortletPreferencesException;
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.ModelListener;
45  import com.liferay.portal.model.PortletPreferences;
46  import com.liferay.portal.model.impl.PortletPreferencesImpl;
47  import com.liferay.portal.model.impl.PortletPreferencesModelImpl;
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="PortletPreferencesPersistenceImpl.java.html"><b><i>View Source</i></b></a>
56   *
57   * <p>
58   * ServiceBuilder generated this class. Modifications in this class will be
59   * overwritten the next time is generated.
60   * </p>
61   *
62   * @author    Brian Wing Shun Chan
63   * @see       PortletPreferencesPersistence
64   * @see       PortletPreferencesUtil
65   * @generated
66   */
67  public class PortletPreferencesPersistenceImpl extends BasePersistenceImpl
68      implements PortletPreferencesPersistence {
69      public static final String FINDER_CLASS_NAME_ENTITY = PortletPreferencesImpl.class.getName();
70      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
71          ".List";
72      public static final FinderPath FINDER_PATH_FIND_BY_PLID = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
73              PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
74              FINDER_CLASS_NAME_LIST, "findByPlid",
75              new String[] { Long.class.getName() });
76      public static final FinderPath FINDER_PATH_FIND_BY_OBC_PLID = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
77              PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
78              FINDER_CLASS_NAME_LIST, "findByPlid",
79              new String[] {
80                  Long.class.getName(),
81                  
82              "java.lang.Integer", "java.lang.Integer",
83                  "com.liferay.portal.kernel.util.OrderByComparator"
84              });
85      public static final FinderPath FINDER_PATH_COUNT_BY_PLID = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
86              PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
87              FINDER_CLASS_NAME_LIST, "countByPlid",
88              new String[] { Long.class.getName() });
89      public static final FinderPath FINDER_PATH_FIND_BY_P_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
90              PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
91              FINDER_CLASS_NAME_LIST, "findByP_P",
92              new String[] { Long.class.getName(), String.class.getName() });
93      public static final FinderPath FINDER_PATH_FIND_BY_OBC_P_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
94              PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
95              FINDER_CLASS_NAME_LIST, "findByP_P",
96              new String[] {
97                  Long.class.getName(), String.class.getName(),
98                  
99              "java.lang.Integer", "java.lang.Integer",
100                 "com.liferay.portal.kernel.util.OrderByComparator"
101             });
102     public static final FinderPath FINDER_PATH_COUNT_BY_P_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
103             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
104             FINDER_CLASS_NAME_LIST, "countByP_P",
105             new String[] { Long.class.getName(), String.class.getName() });
106     public static final FinderPath FINDER_PATH_FIND_BY_O_O_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
107             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
108             FINDER_CLASS_NAME_LIST, "findByO_O_P",
109             new String[] {
110                 Long.class.getName(), Integer.class.getName(),
111                 Long.class.getName()
112             });
113     public static final FinderPath FINDER_PATH_FIND_BY_OBC_O_O_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
114             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
115             FINDER_CLASS_NAME_LIST, "findByO_O_P",
116             new String[] {
117                 Long.class.getName(), Integer.class.getName(),
118                 Long.class.getName(),
119                 
120             "java.lang.Integer", "java.lang.Integer",
121                 "com.liferay.portal.kernel.util.OrderByComparator"
122             });
123     public static final FinderPath FINDER_PATH_COUNT_BY_O_O_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
124             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
125             FINDER_CLASS_NAME_LIST, "countByO_O_P",
126             new String[] {
127                 Long.class.getName(), Integer.class.getName(),
128                 Long.class.getName()
129             });
130     public static final FinderPath FINDER_PATH_FETCH_BY_O_O_P_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
131             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
132             FINDER_CLASS_NAME_ENTITY, "fetchByO_O_P_P",
133             new String[] {
134                 Long.class.getName(), Integer.class.getName(),
135                 Long.class.getName(), String.class.getName()
136             });
137     public static final FinderPath FINDER_PATH_COUNT_BY_O_O_P_P = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
138             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
139             FINDER_CLASS_NAME_LIST, "countByO_O_P_P",
140             new String[] {
141                 Long.class.getName(), Integer.class.getName(),
142                 Long.class.getName(), String.class.getName()
143             });
144     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
145             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
146             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
147     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
148             PortletPreferencesModelImpl.FINDER_CACHE_ENABLED,
149             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
150 
151     public void cacheResult(PortletPreferences portletPreferences) {
152         EntityCacheUtil.putResult(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
153             PortletPreferencesImpl.class, portletPreferences.getPrimaryKey(),
154             portletPreferences);
155 
156         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_O_O_P_P,
157             new Object[] {
158                 new Long(portletPreferences.getOwnerId()),
159                 new Integer(portletPreferences.getOwnerType()),
160                 new Long(portletPreferences.getPlid()),
161                 
162             portletPreferences.getPortletId()
163             }, portletPreferences);
164     }
165 
166     public void cacheResult(List<PortletPreferences> portletPreferenceses) {
167         for (PortletPreferences portletPreferences : portletPreferenceses) {
168             if (EntityCacheUtil.getResult(
169                         PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
170                         PortletPreferencesImpl.class,
171                         portletPreferences.getPrimaryKey(), this) == null) {
172                 cacheResult(portletPreferences);
173             }
174         }
175     }
176 
177     public void clearCache() {
178         CacheRegistry.clear(PortletPreferencesImpl.class.getName());
179         EntityCacheUtil.clearCache(PortletPreferencesImpl.class.getName());
180         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
181         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
182     }
183 
184     public PortletPreferences create(long portletPreferencesId) {
185         PortletPreferences portletPreferences = new PortletPreferencesImpl();
186 
187         portletPreferences.setNew(true);
188         portletPreferences.setPrimaryKey(portletPreferencesId);
189 
190         return portletPreferences;
191     }
192 
193     public PortletPreferences remove(long portletPreferencesId)
194         throws NoSuchPortletPreferencesException, SystemException {
195         Session session = null;
196 
197         try {
198             session = openSession();
199 
200             PortletPreferences portletPreferences = (PortletPreferences)session.get(PortletPreferencesImpl.class,
201                     new Long(portletPreferencesId));
202 
203             if (portletPreferences == null) {
204                 if (_log.isWarnEnabled()) {
205                     _log.warn(
206                         "No PortletPreferences exists with the primary key " +
207                         portletPreferencesId);
208                 }
209 
210                 throw new NoSuchPortletPreferencesException(
211                     "No PortletPreferences exists with the primary key " +
212                     portletPreferencesId);
213             }
214 
215             return remove(portletPreferences);
216         }
217         catch (NoSuchPortletPreferencesException nsee) {
218             throw nsee;
219         }
220         catch (Exception e) {
221             throw processException(e);
222         }
223         finally {
224             closeSession(session);
225         }
226     }
227 
228     public PortletPreferences remove(PortletPreferences portletPreferences)
229         throws SystemException {
230         for (ModelListener<PortletPreferences> listener : listeners) {
231             listener.onBeforeRemove(portletPreferences);
232         }
233 
234         portletPreferences = removeImpl(portletPreferences);
235 
236         for (ModelListener<PortletPreferences> listener : listeners) {
237             listener.onAfterRemove(portletPreferences);
238         }
239 
240         return portletPreferences;
241     }
242 
243     protected PortletPreferences removeImpl(
244         PortletPreferences portletPreferences) throws SystemException {
245         Session session = null;
246 
247         try {
248             session = openSession();
249 
250             if (portletPreferences.isCachedModel() ||
251                     BatchSessionUtil.isEnabled()) {
252                 Object staleObject = session.get(PortletPreferencesImpl.class,
253                         portletPreferences.getPrimaryKeyObj());
254 
255                 if (staleObject != null) {
256                     session.evict(staleObject);
257                 }
258             }
259 
260             session.delete(portletPreferences);
261 
262             session.flush();
263         }
264         catch (Exception e) {
265             throw processException(e);
266         }
267         finally {
268             closeSession(session);
269         }
270 
271         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
272 
273         PortletPreferencesModelImpl portletPreferencesModelImpl = (PortletPreferencesModelImpl)portletPreferences;
274 
275         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_O_O_P_P,
276             new Object[] {
277                 new Long(portletPreferencesModelImpl.getOriginalOwnerId()),
278                 new Integer(portletPreferencesModelImpl.getOriginalOwnerType()),
279                 new Long(portletPreferencesModelImpl.getOriginalPlid()),
280                 
281             portletPreferencesModelImpl.getOriginalPortletId()
282             });
283 
284         EntityCacheUtil.removeResult(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
285             PortletPreferencesImpl.class, portletPreferences.getPrimaryKey());
286 
287         return portletPreferences;
288     }
289 
290     /**
291      * @deprecated Use {@link #update(PortletPreferences, boolean merge)}.
292      */
293     public PortletPreferences update(PortletPreferences portletPreferences)
294         throws SystemException {
295         if (_log.isWarnEnabled()) {
296             _log.warn(
297                 "Using the deprecated update(PortletPreferences portletPreferences) method. Use update(PortletPreferences portletPreferences, boolean merge) instead.");
298         }
299 
300         return update(portletPreferences, false);
301     }
302 
303     /**
304      * Add, update, or merge, the entity. This method also calls the model
305      * listeners to trigger the proper events associated with adding, deleting,
306      * or updating an entity.
307      *
308      * @param  portletPreferences the entity to add, update, or merge
309      * @param  merge boolean value for whether to merge the entity. The default
310      *         value is false. Setting merge to true is more expensive and
311      *         should only be true when portletPreferences is transient. See
312      *         LEP-5473 for a detailed discussion of this method.
313      * @return the entity that was added, updated, or merged
314      */
315     public PortletPreferences update(PortletPreferences portletPreferences,
316         boolean merge) throws SystemException {
317         boolean isNew = portletPreferences.isNew();
318 
319         for (ModelListener<PortletPreferences> listener : listeners) {
320             if (isNew) {
321                 listener.onBeforeCreate(portletPreferences);
322             }
323             else {
324                 listener.onBeforeUpdate(portletPreferences);
325             }
326         }
327 
328         portletPreferences = updateImpl(portletPreferences, merge);
329 
330         for (ModelListener<PortletPreferences> listener : listeners) {
331             if (isNew) {
332                 listener.onAfterCreate(portletPreferences);
333             }
334             else {
335                 listener.onAfterUpdate(portletPreferences);
336             }
337         }
338 
339         return portletPreferences;
340     }
341 
342     public PortletPreferences updateImpl(
343         com.liferay.portal.model.PortletPreferences portletPreferences,
344         boolean merge) throws SystemException {
345         boolean isNew = portletPreferences.isNew();
346 
347         PortletPreferencesModelImpl portletPreferencesModelImpl = (PortletPreferencesModelImpl)portletPreferences;
348 
349         Session session = null;
350 
351         try {
352             session = openSession();
353 
354             BatchSessionUtil.update(session, portletPreferences, merge);
355 
356             portletPreferences.setNew(false);
357         }
358         catch (Exception e) {
359             throw processException(e);
360         }
361         finally {
362             closeSession(session);
363         }
364 
365         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
366 
367         EntityCacheUtil.putResult(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
368             PortletPreferencesImpl.class, portletPreferences.getPrimaryKey(),
369             portletPreferences);
370 
371         if (!isNew &&
372                 ((portletPreferences.getOwnerId() != portletPreferencesModelImpl.getOriginalOwnerId()) ||
373                 (portletPreferences.getOwnerType() != portletPreferencesModelImpl.getOriginalOwnerType()) ||
374                 (portletPreferences.getPlid() != portletPreferencesModelImpl.getOriginalPlid()) ||
375                 !Validator.equals(portletPreferences.getPortletId(),
376                     portletPreferencesModelImpl.getOriginalPortletId()))) {
377             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_O_O_P_P,
378                 new Object[] {
379                     new Long(portletPreferencesModelImpl.getOriginalOwnerId()),
380                     new Integer(portletPreferencesModelImpl.getOriginalOwnerType()),
381                     new Long(portletPreferencesModelImpl.getOriginalPlid()),
382                     
383                 portletPreferencesModelImpl.getOriginalPortletId()
384                 });
385         }
386 
387         if (isNew ||
388                 ((portletPreferences.getOwnerId() != portletPreferencesModelImpl.getOriginalOwnerId()) ||
389                 (portletPreferences.getOwnerType() != portletPreferencesModelImpl.getOriginalOwnerType()) ||
390                 (portletPreferences.getPlid() != portletPreferencesModelImpl.getOriginalPlid()) ||
391                 !Validator.equals(portletPreferences.getPortletId(),
392                     portletPreferencesModelImpl.getOriginalPortletId()))) {
393             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_O_O_P_P,
394                 new Object[] {
395                     new Long(portletPreferences.getOwnerId()),
396                     new Integer(portletPreferences.getOwnerType()),
397                     new Long(portletPreferences.getPlid()),
398                     
399                 portletPreferences.getPortletId()
400                 }, portletPreferences);
401         }
402 
403         return portletPreferences;
404     }
405 
406     public PortletPreferences findByPrimaryKey(long portletPreferencesId)
407         throws NoSuchPortletPreferencesException, SystemException {
408         PortletPreferences portletPreferences = fetchByPrimaryKey(portletPreferencesId);
409 
410         if (portletPreferences == null) {
411             if (_log.isWarnEnabled()) {
412                 _log.warn("No PortletPreferences exists with the primary key " +
413                     portletPreferencesId);
414             }
415 
416             throw new NoSuchPortletPreferencesException(
417                 "No PortletPreferences exists with the primary key " +
418                 portletPreferencesId);
419         }
420 
421         return portletPreferences;
422     }
423 
424     public PortletPreferences fetchByPrimaryKey(long portletPreferencesId)
425         throws SystemException {
426         PortletPreferences portletPreferences = (PortletPreferences)EntityCacheUtil.getResult(PortletPreferencesModelImpl.ENTITY_CACHE_ENABLED,
427                 PortletPreferencesImpl.class, portletPreferencesId, this);
428 
429         if (portletPreferences == null) {
430             Session session = null;
431 
432             try {
433                 session = openSession();
434 
435                 portletPreferences = (PortletPreferences)session.get(PortletPreferencesImpl.class,
436                         new Long(portletPreferencesId));
437             }
438             catch (Exception e) {
439                 throw processException(e);
440             }
441             finally {
442                 if (portletPreferences != null) {
443                     cacheResult(portletPreferences);
444                 }
445 
446                 closeSession(session);
447             }
448         }
449 
450         return portletPreferences;
451     }
452 
453     public List<PortletPreferences> findByPlid(long plid)
454         throws SystemException {
455         Object[] finderArgs = new Object[] { new Long(plid) };
456 
457         List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_PLID,
458                 finderArgs, this);
459 
460         if (list == null) {
461             Session session = null;
462 
463             try {
464                 session = openSession();
465 
466                 StringBuilder query = new StringBuilder();
467 
468                 query.append(
469                     "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
470 
471                 query.append("portletPreferences.plid = ?");
472 
473                 query.append(" ");
474 
475                 Query q = session.createQuery(query.toString());
476 
477                 QueryPos qPos = QueryPos.getInstance(q);
478 
479                 qPos.add(plid);
480 
481                 list = q.list();
482             }
483             catch (Exception e) {
484                 throw processException(e);
485             }
486             finally {
487                 if (list == null) {
488                     list = new ArrayList<PortletPreferences>();
489                 }
490 
491                 cacheResult(list);
492 
493                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_PLID, finderArgs,
494                     list);
495 
496                 closeSession(session);
497             }
498         }
499 
500         return list;
501     }
502 
503     public List<PortletPreferences> findByPlid(long plid, int start, int end)
504         throws SystemException {
505         return findByPlid(plid, start, end, null);
506     }
507 
508     public List<PortletPreferences> findByPlid(long plid, int start, int end,
509         OrderByComparator obc) throws SystemException {
510         Object[] finderArgs = new Object[] {
511                 new Long(plid),
512                 
513                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
514             };
515 
516         List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_PLID,
517                 finderArgs, this);
518 
519         if (list == null) {
520             Session session = null;
521 
522             try {
523                 session = openSession();
524 
525                 StringBuilder query = new StringBuilder();
526 
527                 query.append(
528                     "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
529 
530                 query.append("portletPreferences.plid = ?");
531 
532                 query.append(" ");
533 
534                 if (obc != null) {
535                     query.append("ORDER BY ");
536 
537                     String[] orderByFields = obc.getOrderByFields();
538 
539                     for (int i = 0; i < orderByFields.length; i++) {
540                         query.append("portletPreferences.");
541                         query.append(orderByFields[i]);
542 
543                         if (obc.isAscending()) {
544                             query.append(" ASC");
545                         }
546                         else {
547                             query.append(" DESC");
548                         }
549 
550                         if ((i + 1) < orderByFields.length) {
551                             query.append(", ");
552                         }
553                     }
554                 }
555 
556                 Query q = session.createQuery(query.toString());
557 
558                 QueryPos qPos = QueryPos.getInstance(q);
559 
560                 qPos.add(plid);
561 
562                 list = (List<PortletPreferences>)QueryUtil.list(q,
563                         getDialect(), start, end);
564             }
565             catch (Exception e) {
566                 throw processException(e);
567             }
568             finally {
569                 if (list == null) {
570                     list = new ArrayList<PortletPreferences>();
571                 }
572 
573                 cacheResult(list);
574 
575                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_PLID,
576                     finderArgs, list);
577 
578                 closeSession(session);
579             }
580         }
581 
582         return list;
583     }
584 
585     public PortletPreferences findByPlid_First(long plid, OrderByComparator obc)
586         throws NoSuchPortletPreferencesException, SystemException {
587         List<PortletPreferences> list = findByPlid(plid, 0, 1, obc);
588 
589         if (list.isEmpty()) {
590             StringBuilder msg = new StringBuilder();
591 
592             msg.append("No PortletPreferences exists with the key {");
593 
594             msg.append("plid=" + plid);
595 
596             msg.append(StringPool.CLOSE_CURLY_BRACE);
597 
598             throw new NoSuchPortletPreferencesException(msg.toString());
599         }
600         else {
601             return list.get(0);
602         }
603     }
604 
605     public PortletPreferences findByPlid_Last(long plid, OrderByComparator obc)
606         throws NoSuchPortletPreferencesException, SystemException {
607         int count = countByPlid(plid);
608 
609         List<PortletPreferences> list = findByPlid(plid, count - 1, count, obc);
610 
611         if (list.isEmpty()) {
612             StringBuilder msg = new StringBuilder();
613 
614             msg.append("No PortletPreferences exists with the key {");
615 
616             msg.append("plid=" + plid);
617 
618             msg.append(StringPool.CLOSE_CURLY_BRACE);
619 
620             throw new NoSuchPortletPreferencesException(msg.toString());
621         }
622         else {
623             return list.get(0);
624         }
625     }
626 
627     public PortletPreferences[] findByPlid_PrevAndNext(
628         long portletPreferencesId, long plid, OrderByComparator obc)
629         throws NoSuchPortletPreferencesException, SystemException {
630         PortletPreferences portletPreferences = findByPrimaryKey(portletPreferencesId);
631 
632         int count = countByPlid(plid);
633 
634         Session session = null;
635 
636         try {
637             session = openSession();
638 
639             StringBuilder query = new StringBuilder();
640 
641             query.append(
642                 "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
643 
644             query.append("portletPreferences.plid = ?");
645 
646             query.append(" ");
647 
648             if (obc != null) {
649                 query.append("ORDER BY ");
650 
651                 String[] orderByFields = obc.getOrderByFields();
652 
653                 for (int i = 0; i < orderByFields.length; i++) {
654                     query.append("portletPreferences.");
655                     query.append(orderByFields[i]);
656 
657                     if (obc.isAscending()) {
658                         query.append(" ASC");
659                     }
660                     else {
661                         query.append(" DESC");
662                     }
663 
664                     if ((i + 1) < orderByFields.length) {
665                         query.append(", ");
666                     }
667                 }
668             }
669 
670             Query q = session.createQuery(query.toString());
671 
672             QueryPos qPos = QueryPos.getInstance(q);
673 
674             qPos.add(plid);
675 
676             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
677                     portletPreferences);
678 
679             PortletPreferences[] array = new PortletPreferencesImpl[3];
680 
681             array[0] = (PortletPreferences)objArray[0];
682             array[1] = (PortletPreferences)objArray[1];
683             array[2] = (PortletPreferences)objArray[2];
684 
685             return array;
686         }
687         catch (Exception e) {
688             throw processException(e);
689         }
690         finally {
691             closeSession(session);
692         }
693     }
694 
695     public List<PortletPreferences> findByP_P(long plid, String portletId)
696         throws SystemException {
697         Object[] finderArgs = new Object[] { new Long(plid), portletId };
698 
699         List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_P_P,
700                 finderArgs, this);
701 
702         if (list == null) {
703             Session session = null;
704 
705             try {
706                 session = openSession();
707 
708                 StringBuilder query = new StringBuilder();
709 
710                 query.append(
711                     "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
712 
713                 query.append("portletPreferences.plid = ?");
714 
715                 query.append(" AND ");
716 
717                 if (portletId == null) {
718                     query.append("portletPreferences.portletId IS NULL");
719                 }
720                 else {
721                     query.append("portletPreferences.portletId = ?");
722                 }
723 
724                 query.append(" ");
725 
726                 Query q = session.createQuery(query.toString());
727 
728                 QueryPos qPos = QueryPos.getInstance(q);
729 
730                 qPos.add(plid);
731 
732                 if (portletId != null) {
733                     qPos.add(portletId);
734                 }
735 
736                 list = q.list();
737             }
738             catch (Exception e) {
739                 throw processException(e);
740             }
741             finally {
742                 if (list == null) {
743                     list = new ArrayList<PortletPreferences>();
744                 }
745 
746                 cacheResult(list);
747 
748                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_P_P, finderArgs,
749                     list);
750 
751                 closeSession(session);
752             }
753         }
754 
755         return list;
756     }
757 
758     public List<PortletPreferences> findByP_P(long plid, String portletId,
759         int start, int end) throws SystemException {
760         return findByP_P(plid, portletId, start, end, null);
761     }
762 
763     public List<PortletPreferences> findByP_P(long plid, String portletId,
764         int start, int end, OrderByComparator obc) throws SystemException {
765         Object[] finderArgs = new Object[] {
766                 new Long(plid),
767                 
768                 portletId,
769                 
770                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
771             };
772 
773         List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_P_P,
774                 finderArgs, this);
775 
776         if (list == null) {
777             Session session = null;
778 
779             try {
780                 session = openSession();
781 
782                 StringBuilder query = new StringBuilder();
783 
784                 query.append(
785                     "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
786 
787                 query.append("portletPreferences.plid = ?");
788 
789                 query.append(" AND ");
790 
791                 if (portletId == null) {
792                     query.append("portletPreferences.portletId IS NULL");
793                 }
794                 else {
795                     query.append("portletPreferences.portletId = ?");
796                 }
797 
798                 query.append(" ");
799 
800                 if (obc != null) {
801                     query.append("ORDER BY ");
802 
803                     String[] orderByFields = obc.getOrderByFields();
804 
805                     for (int i = 0; i < orderByFields.length; i++) {
806                         query.append("portletPreferences.");
807                         query.append(orderByFields[i]);
808 
809                         if (obc.isAscending()) {
810                             query.append(" ASC");
811                         }
812                         else {
813                             query.append(" DESC");
814                         }
815 
816                         if ((i + 1) < orderByFields.length) {
817                             query.append(", ");
818                         }
819                     }
820                 }
821 
822                 Query q = session.createQuery(query.toString());
823 
824                 QueryPos qPos = QueryPos.getInstance(q);
825 
826                 qPos.add(plid);
827 
828                 if (portletId != null) {
829                     qPos.add(portletId);
830                 }
831 
832                 list = (List<PortletPreferences>)QueryUtil.list(q,
833                         getDialect(), start, end);
834             }
835             catch (Exception e) {
836                 throw processException(e);
837             }
838             finally {
839                 if (list == null) {
840                     list = new ArrayList<PortletPreferences>();
841                 }
842 
843                 cacheResult(list);
844 
845                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_P_P,
846                     finderArgs, list);
847 
848                 closeSession(session);
849             }
850         }
851 
852         return list;
853     }
854 
855     public PortletPreferences findByP_P_First(long plid, String portletId,
856         OrderByComparator obc)
857         throws NoSuchPortletPreferencesException, SystemException {
858         List<PortletPreferences> list = findByP_P(plid, portletId, 0, 1, obc);
859 
860         if (list.isEmpty()) {
861             StringBuilder msg = new StringBuilder();
862 
863             msg.append("No PortletPreferences exists with the key {");
864 
865             msg.append("plid=" + plid);
866 
867             msg.append(", ");
868             msg.append("portletId=" + portletId);
869 
870             msg.append(StringPool.CLOSE_CURLY_BRACE);
871 
872             throw new NoSuchPortletPreferencesException(msg.toString());
873         }
874         else {
875             return list.get(0);
876         }
877     }
878 
879     public PortletPreferences findByP_P_Last(long plid, String portletId,
880         OrderByComparator obc)
881         throws NoSuchPortletPreferencesException, SystemException {
882         int count = countByP_P(plid, portletId);
883 
884         List<PortletPreferences> list = findByP_P(plid, portletId, count - 1,
885                 count, obc);
886 
887         if (list.isEmpty()) {
888             StringBuilder msg = new StringBuilder();
889 
890             msg.append("No PortletPreferences exists with the key {");
891 
892             msg.append("plid=" + plid);
893 
894             msg.append(", ");
895             msg.append("portletId=" + portletId);
896 
897             msg.append(StringPool.CLOSE_CURLY_BRACE);
898 
899             throw new NoSuchPortletPreferencesException(msg.toString());
900         }
901         else {
902             return list.get(0);
903         }
904     }
905 
906     public PortletPreferences[] findByP_P_PrevAndNext(
907         long portletPreferencesId, long plid, String portletId,
908         OrderByComparator obc)
909         throws NoSuchPortletPreferencesException, SystemException {
910         PortletPreferences portletPreferences = findByPrimaryKey(portletPreferencesId);
911 
912         int count = countByP_P(plid, portletId);
913 
914         Session session = null;
915 
916         try {
917             session = openSession();
918 
919             StringBuilder query = new StringBuilder();
920 
921             query.append(
922                 "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
923 
924             query.append("portletPreferences.plid = ?");
925 
926             query.append(" AND ");
927 
928             if (portletId == null) {
929                 query.append("portletPreferences.portletId IS NULL");
930             }
931             else {
932                 query.append("portletPreferences.portletId = ?");
933             }
934 
935             query.append(" ");
936 
937             if (obc != null) {
938                 query.append("ORDER BY ");
939 
940                 String[] orderByFields = obc.getOrderByFields();
941 
942                 for (int i = 0; i < orderByFields.length; i++) {
943                     query.append("portletPreferences.");
944                     query.append(orderByFields[i]);
945 
946                     if (obc.isAscending()) {
947                         query.append(" ASC");
948                     }
949                     else {
950                         query.append(" DESC");
951                     }
952 
953                     if ((i + 1) < orderByFields.length) {
954                         query.append(", ");
955                     }
956                 }
957             }
958 
959             Query q = session.createQuery(query.toString());
960 
961             QueryPos qPos = QueryPos.getInstance(q);
962 
963             qPos.add(plid);
964 
965             if (portletId != null) {
966                 qPos.add(portletId);
967             }
968 
969             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
970                     portletPreferences);
971 
972             PortletPreferences[] array = new PortletPreferencesImpl[3];
973 
974             array[0] = (PortletPreferences)objArray[0];
975             array[1] = (PortletPreferences)objArray[1];
976             array[2] = (PortletPreferences)objArray[2];
977 
978             return array;
979         }
980         catch (Exception e) {
981             throw processException(e);
982         }
983         finally {
984             closeSession(session);
985         }
986     }
987 
988     public List<PortletPreferences> findByO_O_P(long ownerId, int ownerType,
989         long plid) throws SystemException {
990         Object[] finderArgs = new Object[] {
991                 new Long(ownerId), new Integer(ownerType), new Long(plid)
992             };
993 
994         List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_O_O_P,
995                 finderArgs, this);
996 
997         if (list == null) {
998             Session session = null;
999 
1000            try {
1001                session = openSession();
1002
1003                StringBuilder query = new StringBuilder();
1004
1005                query.append(
1006                    "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
1007
1008                query.append("portletPreferences.ownerId = ?");
1009
1010                query.append(" AND ");
1011
1012                query.append("portletPreferences.ownerType = ?");
1013
1014                query.append(" AND ");
1015
1016                query.append("portletPreferences.plid = ?");
1017
1018                query.append(" ");
1019
1020                Query q = session.createQuery(query.toString());
1021
1022                QueryPos qPos = QueryPos.getInstance(q);
1023
1024                qPos.add(ownerId);
1025
1026                qPos.add(ownerType);
1027
1028                qPos.add(plid);
1029
1030                list = q.list();
1031            }
1032            catch (Exception e) {
1033                throw processException(e);
1034            }
1035            finally {
1036                if (list == null) {
1037                    list = new ArrayList<PortletPreferences>();
1038                }
1039
1040                cacheResult(list);
1041
1042                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_O_O_P,
1043                    finderArgs, list);
1044
1045                closeSession(session);
1046            }
1047        }
1048
1049        return list;
1050    }
1051
1052    public List<PortletPreferences> findByO_O_P(long ownerId, int ownerType,
1053        long plid, int start, int end) throws SystemException {
1054        return findByO_O_P(ownerId, ownerType, plid, start, end, null);
1055    }
1056
1057    public List<PortletPreferences> findByO_O_P(long ownerId, int ownerType,
1058        long plid, int start, int end, OrderByComparator obc)
1059        throws SystemException {
1060        Object[] finderArgs = new Object[] {
1061                new Long(ownerId), new Integer(ownerType), new Long(plid),
1062                
1063                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1064            };
1065
1066        List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_O_O_P,
1067                finderArgs, this);
1068
1069        if (list == null) {
1070            Session session = null;
1071
1072            try {
1073                session = openSession();
1074
1075                StringBuilder query = new StringBuilder();
1076
1077                query.append(
1078                    "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
1079
1080                query.append("portletPreferences.ownerId = ?");
1081
1082                query.append(" AND ");
1083
1084                query.append("portletPreferences.ownerType = ?");
1085
1086                query.append(" AND ");
1087
1088                query.append("portletPreferences.plid = ?");
1089
1090                query.append(" ");
1091
1092                if (obc != null) {
1093                    query.append("ORDER BY ");
1094
1095                    String[] orderByFields = obc.getOrderByFields();
1096
1097                    for (int i = 0; i < orderByFields.length; i++) {
1098                        query.append("portletPreferences.");
1099                        query.append(orderByFields[i]);
1100
1101                        if (obc.isAscending()) {
1102                            query.append(" ASC");
1103                        }
1104                        else {
1105                            query.append(" DESC");
1106                        }
1107
1108                        if ((i + 1) < orderByFields.length) {
1109                            query.append(", ");
1110                        }
1111                    }
1112                }
1113
1114                Query q = session.createQuery(query.toString());
1115
1116                QueryPos qPos = QueryPos.getInstance(q);
1117
1118                qPos.add(ownerId);
1119
1120                qPos.add(ownerType);
1121
1122                qPos.add(plid);
1123
1124                list = (List<PortletPreferences>)QueryUtil.list(q,
1125                        getDialect(), start, end);
1126            }
1127            catch (Exception e) {
1128                throw processException(e);
1129            }
1130            finally {
1131                if (list == null) {
1132                    list = new ArrayList<PortletPreferences>();
1133                }
1134
1135                cacheResult(list);
1136
1137                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_O_O_P,
1138                    finderArgs, list);
1139
1140                closeSession(session);
1141            }
1142        }
1143
1144        return list;
1145    }
1146
1147    public PortletPreferences findByO_O_P_First(long ownerId, int ownerType,
1148        long plid, OrderByComparator obc)
1149        throws NoSuchPortletPreferencesException, SystemException {
1150        List<PortletPreferences> list = findByO_O_P(ownerId, ownerType, plid,
1151                0, 1, obc);
1152
1153        if (list.isEmpty()) {
1154            StringBuilder msg = new StringBuilder();
1155
1156            msg.append("No PortletPreferences exists with the key {");
1157
1158            msg.append("ownerId=" + ownerId);
1159
1160            msg.append(", ");
1161            msg.append("ownerType=" + ownerType);
1162
1163            msg.append(", ");
1164            msg.append("plid=" + plid);
1165
1166            msg.append(StringPool.CLOSE_CURLY_BRACE);
1167
1168            throw new NoSuchPortletPreferencesException(msg.toString());
1169        }
1170        else {
1171            return list.get(0);
1172        }
1173    }
1174
1175    public PortletPreferences findByO_O_P_Last(long ownerId, int ownerType,
1176        long plid, OrderByComparator obc)
1177        throws NoSuchPortletPreferencesException, SystemException {
1178        int count = countByO_O_P(ownerId, ownerType, plid);
1179
1180        List<PortletPreferences> list = findByO_O_P(ownerId, ownerType, plid,
1181                count - 1, count, obc);
1182
1183        if (list.isEmpty()) {
1184            StringBuilder msg = new StringBuilder();
1185
1186            msg.append("No PortletPreferences exists with the key {");
1187
1188            msg.append("ownerId=" + ownerId);
1189
1190            msg.append(", ");
1191            msg.append("ownerType=" + ownerType);
1192
1193            msg.append(", ");
1194            msg.append("plid=" + plid);
1195
1196            msg.append(StringPool.CLOSE_CURLY_BRACE);
1197
1198            throw new NoSuchPortletPreferencesException(msg.toString());
1199        }
1200        else {
1201            return list.get(0);
1202        }
1203    }
1204
1205    public PortletPreferences[] findByO_O_P_PrevAndNext(
1206        long portletPreferencesId, long ownerId, int ownerType, long plid,
1207        OrderByComparator obc)
1208        throws NoSuchPortletPreferencesException, SystemException {
1209        PortletPreferences portletPreferences = findByPrimaryKey(portletPreferencesId);
1210
1211        int count = countByO_O_P(ownerId, ownerType, plid);
1212
1213        Session session = null;
1214
1215        try {
1216            session = openSession();
1217
1218            StringBuilder query = new StringBuilder();
1219
1220            query.append(
1221                "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
1222
1223            query.append("portletPreferences.ownerId = ?");
1224
1225            query.append(" AND ");
1226
1227            query.append("portletPreferences.ownerType = ?");
1228
1229            query.append(" AND ");
1230
1231            query.append("portletPreferences.plid = ?");
1232
1233            query.append(" ");
1234
1235            if (obc != null) {
1236                query.append("ORDER BY ");
1237
1238                String[] orderByFields = obc.getOrderByFields();
1239
1240                for (int i = 0; i < orderByFields.length; i++) {
1241                    query.append("portletPreferences.");
1242                    query.append(orderByFields[i]);
1243
1244                    if (obc.isAscending()) {
1245                        query.append(" ASC");
1246                    }
1247                    else {
1248                        query.append(" DESC");
1249                    }
1250
1251                    if ((i + 1) < orderByFields.length) {
1252                        query.append(", ");
1253                    }
1254                }
1255            }
1256
1257            Query q = session.createQuery(query.toString());
1258
1259            QueryPos qPos = QueryPos.getInstance(q);
1260
1261            qPos.add(ownerId);
1262
1263            qPos.add(ownerType);
1264
1265            qPos.add(plid);
1266
1267            Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
1268                    portletPreferences);
1269
1270            PortletPreferences[] array = new PortletPreferencesImpl[3];
1271
1272            array[0] = (PortletPreferences)objArray[0];
1273            array[1] = (PortletPreferences)objArray[1];
1274            array[2] = (PortletPreferences)objArray[2];
1275
1276            return array;
1277        }
1278        catch (Exception e) {
1279            throw processException(e);
1280        }
1281        finally {
1282            closeSession(session);
1283        }
1284    }
1285
1286    public PortletPreferences findByO_O_P_P(long ownerId, int ownerType,
1287        long plid, String portletId)
1288        throws NoSuchPortletPreferencesException, SystemException {
1289        PortletPreferences portletPreferences = fetchByO_O_P_P(ownerId,
1290                ownerType, plid, portletId);
1291
1292        if (portletPreferences == null) {
1293            StringBuilder msg = new StringBuilder();
1294
1295            msg.append("No PortletPreferences exists with the key {");
1296
1297            msg.append("ownerId=" + ownerId);
1298
1299            msg.append(", ");
1300            msg.append("ownerType=" + ownerType);
1301
1302            msg.append(", ");
1303            msg.append("plid=" + plid);
1304
1305            msg.append(", ");
1306            msg.append("portletId=" + portletId);
1307
1308            msg.append(StringPool.CLOSE_CURLY_BRACE);
1309
1310            if (_log.isWarnEnabled()) {
1311                _log.warn(msg.toString());
1312            }
1313
1314            throw new NoSuchPortletPreferencesException(msg.toString());
1315        }
1316
1317        return portletPreferences;
1318    }
1319
1320    public PortletPreferences fetchByO_O_P_P(long ownerId, int ownerType,
1321        long plid, String portletId) throws SystemException {
1322        return fetchByO_O_P_P(ownerId, ownerType, plid, portletId, true);
1323    }
1324
1325    public PortletPreferences fetchByO_O_P_P(long ownerId, int ownerType,
1326        long plid, String portletId, boolean retrieveFromCache)
1327        throws SystemException {
1328        Object[] finderArgs = new Object[] {
1329                new Long(ownerId), new Integer(ownerType), new Long(plid),
1330                
1331                portletId
1332            };
1333
1334        Object result = null;
1335
1336        if (retrieveFromCache) {
1337            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_O_O_P_P,
1338                    finderArgs, this);
1339        }
1340
1341        if (result == null) {
1342            Session session = null;
1343
1344            try {
1345                session = openSession();
1346
1347                StringBuilder query = new StringBuilder();
1348
1349                query.append(
1350                    "SELECT portletPreferences FROM PortletPreferences portletPreferences WHERE ");
1351
1352                query.append("portletPreferences.ownerId = ?");
1353
1354                query.append(" AND ");
1355
1356                query.append("portletPreferences.ownerType = ?");
1357
1358                query.append(" AND ");
1359
1360                query.append("portletPreferences.plid = ?");
1361
1362                query.append(" AND ");
1363
1364                if (portletId == null) {
1365                    query.append("portletPreferences.portletId IS NULL");
1366                }
1367                else {
1368                    query.append("portletPreferences.portletId = ?");
1369                }
1370
1371                query.append(" ");
1372
1373                Query q = session.createQuery(query.toString());
1374
1375                QueryPos qPos = QueryPos.getInstance(q);
1376
1377                qPos.add(ownerId);
1378
1379                qPos.add(ownerType);
1380
1381                qPos.add(plid);
1382
1383                if (portletId != null) {
1384                    qPos.add(portletId);
1385                }
1386
1387                List<PortletPreferences> list = q.list();
1388
1389                result = list;
1390
1391                PortletPreferences portletPreferences = null;
1392
1393                if (list.isEmpty()) {
1394                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_O_O_P_P,
1395                        finderArgs, list);
1396                }
1397                else {
1398                    portletPreferences = list.get(0);
1399
1400                    cacheResult(portletPreferences);
1401
1402                    if ((portletPreferences.getOwnerId() != ownerId) ||
1403                            (portletPreferences.getOwnerType() != ownerType) ||
1404                            (portletPreferences.getPlid() != plid) ||
1405                            (portletPreferences.getPortletId() == null) ||
1406                            !portletPreferences.getPortletId().equals(portletId)) {
1407                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_O_O_P_P,
1408                            finderArgs, portletPreferences);
1409                    }
1410                }
1411
1412                return portletPreferences;
1413            }
1414            catch (Exception e) {
1415                throw processException(e);
1416            }
1417            finally {
1418                if (result == null) {
1419                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_O_O_P_P,
1420                        finderArgs, new ArrayList<PortletPreferences>());
1421                }
1422
1423                closeSession(session);
1424            }
1425        }
1426        else {
1427            if (result instanceof List<?>) {
1428                return null;
1429            }
1430            else {
1431                return (PortletPreferences)result;
1432            }
1433        }
1434    }
1435
1436    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
1437        throws SystemException {
1438        Session session = null;
1439
1440        try {
1441            session = openSession();
1442
1443            dynamicQuery.compile(session);
1444
1445            return dynamicQuery.list();
1446        }
1447        catch (Exception e) {
1448            throw processException(e);
1449        }
1450        finally {
1451            closeSession(session);
1452        }
1453    }
1454
1455    public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
1456        int start, int end) throws SystemException {
1457        Session session = null;
1458
1459        try {
1460            session = openSession();
1461
1462            dynamicQuery.setLimit(start, end);
1463
1464            dynamicQuery.compile(session);
1465
1466            return dynamicQuery.list();
1467        }
1468        catch (Exception e) {
1469            throw processException(e);
1470        }
1471        finally {
1472            closeSession(session);
1473        }
1474    }
1475
1476    public List<PortletPreferences> findAll() throws SystemException {
1477        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1478    }
1479
1480    public List<PortletPreferences> findAll(int start, int end)
1481        throws SystemException {
1482        return findAll(start, end, null);
1483    }
1484
1485    public List<PortletPreferences> findAll(int start, int end,
1486        OrderByComparator obc) throws SystemException {
1487        Object[] finderArgs = new Object[] {
1488                String.valueOf(start), String.valueOf(end), String.valueOf(obc)
1489            };
1490
1491        List<PortletPreferences> list = (List<PortletPreferences>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1492                finderArgs, this);
1493
1494        if (list == null) {
1495            Session session = null;
1496
1497            try {
1498                session = openSession();
1499
1500                StringBuilder query = new StringBuilder();
1501
1502                query.append(
1503                    "SELECT portletPreferences FROM PortletPreferences portletPreferences ");
1504
1505                if (obc != null) {
1506                    query.append("ORDER BY ");
1507
1508                    String[] orderByFields = obc.getOrderByFields();
1509
1510                    for (int i = 0; i < orderByFields.length; i++) {
1511                        query.append("portletPreferences.");
1512                        query.append(orderByFields[i]);
1513
1514                        if (obc.isAscending()) {
1515                            query.append(" ASC");
1516                        }
1517                        else {
1518                            query.append(" DESC");
1519                        }
1520
1521                        if ((i + 1) < orderByFields.length) {
1522                            query.append(", ");
1523                        }
1524                    }
1525                }
1526
1527                Query q = session.createQuery(query.toString());
1528
1529                if (obc == null) {
1530                    list = (List<PortletPreferences>)QueryUtil.list(q,
1531                            getDialect(), start, end, false);
1532
1533                    Collections.sort(list);
1534                }
1535                else {
1536                    list = (List<PortletPreferences>)QueryUtil.list(q,
1537                            getDialect(), start, end);
1538                }
1539            }
1540            catch (Exception e) {
1541                throw processException(e);
1542            }
1543            finally {
1544                if (list == null) {
1545                    list = new ArrayList<PortletPreferences>();
1546                }
1547
1548                cacheResult(list);
1549
1550                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1551
1552                closeSession(session);
1553            }
1554        }
1555
1556        return list;
1557    }
1558
1559    public void removeByPlid(long plid) throws SystemException {
1560        for (PortletPreferences portletPreferences : findByPlid(plid)) {
1561            remove(portletPreferences);
1562        }
1563    }
1564
1565    public void removeByP_P(long plid, String portletId)
1566        throws SystemException {
1567        for (PortletPreferences portletPreferences : findByP_P(plid, portletId)) {
1568            remove(portletPreferences);
1569        }
1570    }
1571
1572    public void removeByO_O_P(long ownerId, int ownerType, long plid)
1573        throws SystemException {
1574        for (PortletPreferences portletPreferences : findByO_O_P(ownerId,
1575                ownerType, plid)) {
1576            remove(portletPreferences);
1577        }
1578    }
1579
1580    public void removeByO_O_P_P(long ownerId, int ownerType, long plid,
1581        String portletId)
1582        throws NoSuchPortletPreferencesException, SystemException {
1583        PortletPreferences portletPreferences = findByO_O_P_P(ownerId,
1584                ownerType, plid, portletId);
1585
1586        remove(portletPreferences);
1587    }
1588
1589    public void removeAll() throws SystemException {
1590        for (PortletPreferences portletPreferences : findAll()) {
1591            remove(portletPreferences);
1592        }
1593    }
1594
1595    public int countByPlid(long plid) throws SystemException {
1596        Object[] finderArgs = new Object[] { new Long(plid) };
1597
1598        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_PLID,
1599                finderArgs, this);
1600
1601        if (count == null) {
1602            Session session = null;
1603
1604            try {
1605                session = openSession();
1606
1607                StringBuilder query = new StringBuilder();
1608
1609                query.append("SELECT COUNT(portletPreferences) ");
1610                query.append(
1611                    "FROM PortletPreferences portletPreferences WHERE ");
1612
1613                query.append("portletPreferences.plid = ?");
1614
1615                query.append(" ");
1616
1617                Query q = session.createQuery(query.toString());
1618
1619                QueryPos qPos = QueryPos.getInstance(q);
1620
1621                qPos.add(plid);
1622
1623                count = (Long)q.uniqueResult();
1624            }
1625            catch (Exception e) {
1626                throw processException(e);
1627            }
1628            finally {
1629                if (count == null) {
1630                    count = Long.valueOf(0);
1631                }
1632
1633                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_PLID,
1634                    finderArgs, count);
1635
1636                closeSession(session);
1637            }
1638        }
1639
1640        return count.intValue();
1641    }
1642
1643    public int countByP_P(long plid, String portletId)
1644        throws SystemException {
1645        Object[] finderArgs = new Object[] { new Long(plid), portletId };
1646
1647        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_P_P,
1648                finderArgs, this);
1649
1650        if (count == null) {
1651            Session session = null;
1652
1653            try {
1654                session = openSession();
1655
1656                StringBuilder query = new StringBuilder();
1657
1658                query.append("SELECT COUNT(portletPreferences) ");
1659                query.append(
1660                    "FROM PortletPreferences portletPreferences WHERE ");
1661
1662                query.append("portletPreferences.plid = ?");
1663
1664                query.append(" AND ");
1665
1666                if (portletId == null) {
1667                    query.append("portletPreferences.portletId IS NULL");
1668                }
1669                else {
1670                    query.append("portletPreferences.portletId = ?");
1671                }
1672
1673                query.append(" ");
1674
1675                Query q = session.createQuery(query.toString());
1676
1677                QueryPos qPos = QueryPos.getInstance(q);
1678
1679                qPos.add(plid);
1680
1681                if (portletId != null) {
1682                    qPos.add(portletId);
1683                }
1684
1685                count = (Long)q.uniqueResult();
1686            }
1687            catch (Exception e) {
1688                throw processException(e);
1689            }
1690            finally {
1691                if (count == null) {
1692                    count = Long.valueOf(0);
1693                }
1694
1695                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_P_P, finderArgs,
1696                    count);
1697
1698                closeSession(session);
1699            }
1700        }
1701
1702        return count.intValue();
1703    }
1704
1705    public int countByO_O_P(long ownerId, int ownerType, long plid)
1706        throws SystemException {
1707        Object[] finderArgs = new Object[] {
1708                new Long(ownerId), new Integer(ownerType), new Long(plid)
1709            };
1710
1711        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_O_O_P,
1712                finderArgs, this);
1713
1714        if (count == null) {
1715            Session session = null;
1716
1717            try {
1718                session = openSession();
1719
1720                StringBuilder query = new StringBuilder();
1721
1722                query.append("SELECT COUNT(portletPreferences) ");
1723                query.append(
1724                    "FROM PortletPreferences portletPreferences WHERE ");
1725
1726                query.append("portletPreferences.ownerId = ?");
1727
1728                query.append(" AND ");
1729
1730                query.append("portletPreferences.ownerType = ?");
1731
1732                query.append(" AND ");
1733
1734                query.append("portletPreferences.plid = ?");
1735
1736                query.append(" ");
1737
1738                Query q = session.createQuery(query.toString());
1739
1740                QueryPos qPos = QueryPos.getInstance(q);
1741
1742                qPos.add(ownerId);
1743
1744                qPos.add(ownerType);
1745
1746                qPos.add(plid);
1747
1748                count = (Long)q.uniqueResult();
1749            }
1750            catch (Exception e) {
1751                throw processException(e);
1752            }
1753            finally {
1754                if (count == null) {
1755                    count = Long.valueOf(0);
1756                }
1757
1758                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_O_O_P,
1759                    finderArgs, count);
1760
1761                closeSession(session);
1762            }
1763        }
1764
1765        return count.intValue();
1766    }
1767
1768    public int countByO_O_P_P(long ownerId, int ownerType, long plid,
1769        String portletId) throws SystemException {
1770        Object[] finderArgs = new Object[] {
1771                new Long(ownerId), new Integer(ownerType), new Long(plid),
1772                
1773                portletId
1774            };
1775
1776        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_O_O_P_P,
1777                finderArgs, this);
1778
1779        if (count == null) {
1780            Session session = null;
1781
1782            try {
1783                session = openSession();
1784
1785                StringBuilder query = new StringBuilder();
1786
1787                query.append("SELECT COUNT(portletPreferences) ");
1788                query.append(
1789                    "FROM PortletPreferences portletPreferences WHERE ");
1790
1791                query.append("portletPreferences.ownerId = ?");
1792
1793                query.append(" AND ");
1794
1795                query.append("portletPreferences.ownerType = ?");
1796
1797                query.append(" AND ");
1798
1799                query.append("portletPreferences.plid = ?");
1800
1801                query.append(" AND ");
1802
1803                if (portletId == null) {
1804                    query.append("portletPreferences.portletId IS NULL");
1805                }
1806                else {
1807                    query.append("portletPreferences.portletId = ?");
1808                }
1809
1810                query.append(" ");
1811
1812                Query q = session.createQuery(query.toString());
1813
1814                QueryPos qPos = QueryPos.getInstance(q);
1815
1816                qPos.add(ownerId);
1817
1818                qPos.add(ownerType);
1819
1820                qPos.add(plid);
1821
1822                if (portletId != null) {
1823                    qPos.add(portletId);
1824                }
1825
1826                count = (Long)q.uniqueResult();
1827            }
1828            catch (Exception e) {
1829                throw processException(e);
1830            }
1831            finally {
1832                if (count == null) {
1833                    count = Long.valueOf(0);
1834                }
1835
1836                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_O_O_P_P,
1837                    finderArgs, count);
1838
1839                closeSession(session);
1840            }
1841        }
1842
1843        return count.intValue();
1844    }
1845
1846    public int countAll() throws SystemException {
1847        Object[] finderArgs = new Object[0];
1848
1849        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1850                finderArgs, this);
1851
1852        if (count == null) {
1853            Session session = null;
1854
1855            try {
1856                session = openSession();
1857
1858                Query q = session.createQuery(
1859                        "SELECT COUNT(portletPreferences) FROM PortletPreferences portletPreferences");
1860
1861                count = (Long)q.uniqueResult();
1862            }
1863            catch (Exception e) {
1864                throw processException(e);
1865            }
1866            finally {
1867                if (count == null) {
1868                    count = Long.valueOf(0);
1869                }
1870
1871                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1872                    count);
1873
1874                closeSession(session);
1875            }
1876        }
1877
1878        return count.intValue();
1879    }
1880
1881    public void afterPropertiesSet() {
1882        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1883                    com.liferay.portal.util.PropsUtil.get(
1884                        "value.object.listener.com.liferay.portal.model.PortletPreferences")));
1885
1886        if (listenerClassNames.length > 0) {
1887            try {
1888                List<ModelListener<PortletPreferences>> listenersList = new ArrayList<ModelListener<PortletPreferences>>();
1889
1890                for (String listenerClassName : listenerClassNames) {
1891                    listenersList.add((ModelListener<PortletPreferences>)Class.forName(
1892                            listenerClassName).newInstance());
1893                }
1894
1895                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1896            }
1897            catch (Exception e) {
1898                _log.error(e);
1899            }
1900        }
1901    }
1902
1903    @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
1904    protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
1905    @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
1906    protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
1907    @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
1908    protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
1909    @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
1910    protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
1911    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
1912    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
1913    @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
1914    protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
1915    @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
1916    protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
1917    @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
1918    protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
1919    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
1920    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
1921    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
1922    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
1923    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
1924    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
1925    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
1926    protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
1927    @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
1928    protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
1929    @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence.impl")
1930    protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
1931    @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
1932    protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
1933    @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
1934    protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
1935    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
1936    protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
1937    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
1938    protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
1939    @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
1940    protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
1941    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
1942    protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
1943    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
1944    protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
1945    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
1946    protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
1947    @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
1948    protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
1949    @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
1950    protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
1951    @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
1952    protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
1953    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
1954    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
1955    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
1956    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
1957    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
1958    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
1959    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
1960    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
1961    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
1962    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
1963    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
1964    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1965    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
1966    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
1967    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
1968    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
1969    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
1970    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
1971    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
1972    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
1973    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
1974    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
1975    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
1976    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
1977    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
1978    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
1979    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
1980    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1981    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
1982    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
1983    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
1984    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
1985    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
1986    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
1987    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
1988    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
1989    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
1990    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
1991    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
1992    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
1993    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
1994    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
1995    private static Log _log = LogFactoryUtil.getLog(PortletPreferencesPersistenceImpl.class);
1996}