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.NoSuchPasswordPolicyException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.annotation.BeanReference;
28  import com.liferay.portal.kernel.cache.CacheRegistry;
29  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
30  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
31  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
32  import com.liferay.portal.kernel.dao.orm.FinderPath;
33  import com.liferay.portal.kernel.dao.orm.Query;
34  import com.liferay.portal.kernel.dao.orm.QueryPos;
35  import com.liferay.portal.kernel.dao.orm.QueryUtil;
36  import com.liferay.portal.kernel.dao.orm.Session;
37  import com.liferay.portal.kernel.log.Log;
38  import com.liferay.portal.kernel.log.LogFactoryUtil;
39  import com.liferay.portal.kernel.util.GetterUtil;
40  import com.liferay.portal.kernel.util.OrderByComparator;
41  import com.liferay.portal.kernel.util.StringPool;
42  import com.liferay.portal.kernel.util.StringUtil;
43  import com.liferay.portal.model.ModelListener;
44  import com.liferay.portal.model.PasswordPolicy;
45  import com.liferay.portal.model.impl.PasswordPolicyImpl;
46  import com.liferay.portal.model.impl.PasswordPolicyModelImpl;
47  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
48  
49  import java.util.ArrayList;
50  import java.util.Collections;
51  import java.util.List;
52  
53  /**
54   * <a href="PasswordPolicyPersistenceImpl.java.html"><b><i>View Source</i></b></a>
55   *
56   * @author Brian Wing Shun Chan
57   *
58   */
59  public class PasswordPolicyPersistenceImpl extends BasePersistenceImpl
60      implements PasswordPolicyPersistence {
61      public static final String FINDER_CLASS_NAME_ENTITY = PasswordPolicyImpl.class.getName();
62      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
63          ".List";
64      public static final FinderPath FINDER_PATH_FETCH_BY_C_DP = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
65              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
66              FINDER_CLASS_NAME_ENTITY, "fetchByC_DP",
67              new String[] { Long.class.getName(), Boolean.class.getName() });
68      public static final FinderPath FINDER_PATH_COUNT_BY_C_DP = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
69              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
70              FINDER_CLASS_NAME_LIST, "countByC_DP",
71              new String[] { Long.class.getName(), Boolean.class.getName() });
72      public static final FinderPath FINDER_PATH_FETCH_BY_C_N = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
73              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
74              FINDER_CLASS_NAME_ENTITY, "fetchByC_N",
75              new String[] { Long.class.getName(), String.class.getName() });
76      public static final FinderPath FINDER_PATH_COUNT_BY_C_N = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
77              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
78              FINDER_CLASS_NAME_LIST, "countByC_N",
79              new String[] { Long.class.getName(), String.class.getName() });
80      public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
81              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
82              FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
83      public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
84              PasswordPolicyModelImpl.FINDER_CACHE_ENABLED,
85              FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
86  
87      public void cacheResult(PasswordPolicy passwordPolicy) {
88          EntityCacheUtil.putResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
89              PasswordPolicyImpl.class, passwordPolicy.getPrimaryKey(),
90              passwordPolicy);
91  
92          FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
93              new Object[] {
94                  new Long(passwordPolicy.getCompanyId()),
95                  Boolean.valueOf(passwordPolicy.getDefaultPolicy())
96              }, passwordPolicy);
97  
98          FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
99              new Object[] {
100                 new Long(passwordPolicy.getCompanyId()),
101                 
102             passwordPolicy.getName()
103             }, passwordPolicy);
104     }
105 
106     public void cacheResult(List<PasswordPolicy> passwordPolicies) {
107         for (PasswordPolicy passwordPolicy : passwordPolicies) {
108             if (EntityCacheUtil.getResult(
109                         PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
110                         PasswordPolicyImpl.class,
111                         passwordPolicy.getPrimaryKey(), this) == null) {
112                 cacheResult(passwordPolicy);
113             }
114         }
115     }
116 
117     public void clearCache() {
118         CacheRegistry.clear(PasswordPolicyImpl.class.getName());
119         EntityCacheUtil.clearCache(PasswordPolicyImpl.class.getName());
120         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
121         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
122     }
123 
124     public PasswordPolicy create(long passwordPolicyId) {
125         PasswordPolicy passwordPolicy = new PasswordPolicyImpl();
126 
127         passwordPolicy.setNew(true);
128         passwordPolicy.setPrimaryKey(passwordPolicyId);
129 
130         return passwordPolicy;
131     }
132 
133     public PasswordPolicy remove(long passwordPolicyId)
134         throws NoSuchPasswordPolicyException, SystemException {
135         Session session = null;
136 
137         try {
138             session = openSession();
139 
140             PasswordPolicy passwordPolicy = (PasswordPolicy)session.get(PasswordPolicyImpl.class,
141                     new Long(passwordPolicyId));
142 
143             if (passwordPolicy == null) {
144                 if (_log.isWarnEnabled()) {
145                     _log.warn("No PasswordPolicy exists with the primary key " +
146                         passwordPolicyId);
147                 }
148 
149                 throw new NoSuchPasswordPolicyException(
150                     "No PasswordPolicy exists with the primary key " +
151                     passwordPolicyId);
152             }
153 
154             return remove(passwordPolicy);
155         }
156         catch (NoSuchPasswordPolicyException nsee) {
157             throw nsee;
158         }
159         catch (Exception e) {
160             throw processException(e);
161         }
162         finally {
163             closeSession(session);
164         }
165     }
166 
167     public PasswordPolicy remove(PasswordPolicy passwordPolicy)
168         throws SystemException {
169         for (ModelListener<PasswordPolicy> listener : listeners) {
170             listener.onBeforeRemove(passwordPolicy);
171         }
172 
173         passwordPolicy = removeImpl(passwordPolicy);
174 
175         for (ModelListener<PasswordPolicy> listener : listeners) {
176             listener.onAfterRemove(passwordPolicy);
177         }
178 
179         return passwordPolicy;
180     }
181 
182     protected PasswordPolicy removeImpl(PasswordPolicy passwordPolicy)
183         throws SystemException {
184         Session session = null;
185 
186         try {
187             session = openSession();
188 
189             if (passwordPolicy.isCachedModel() || BatchSessionUtil.isEnabled()) {
190                 Object staleObject = session.get(PasswordPolicyImpl.class,
191                         passwordPolicy.getPrimaryKeyObj());
192 
193                 if (staleObject != null) {
194                     session.evict(staleObject);
195                 }
196             }
197 
198             session.delete(passwordPolicy);
199 
200             session.flush();
201         }
202         catch (Exception e) {
203             throw processException(e);
204         }
205         finally {
206             closeSession(session);
207         }
208 
209         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
210 
211         PasswordPolicyModelImpl passwordPolicyModelImpl = (PasswordPolicyModelImpl)passwordPolicy;
212 
213         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_DP,
214             new Object[] {
215                 new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
216                 Boolean.valueOf(
217                     passwordPolicyModelImpl.getOriginalDefaultPolicy())
218             });
219 
220         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N,
221             new Object[] {
222                 new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
223                 
224             passwordPolicyModelImpl.getOriginalName()
225             });
226 
227         EntityCacheUtil.removeResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
228             PasswordPolicyImpl.class, passwordPolicy.getPrimaryKey());
229 
230         return passwordPolicy;
231     }
232 
233     /**
234      * @deprecated Use <code>update(PasswordPolicy passwordPolicy, boolean merge)</code>.
235      */
236     public PasswordPolicy update(PasswordPolicy passwordPolicy)
237         throws SystemException {
238         if (_log.isWarnEnabled()) {
239             _log.warn(
240                 "Using the deprecated update(PasswordPolicy passwordPolicy) method. Use update(PasswordPolicy passwordPolicy, boolean merge) instead.");
241         }
242 
243         return update(passwordPolicy, false);
244     }
245 
246     /**
247      * Add, update, or merge, the entity. This method also calls the model
248      * listeners to trigger the proper events associated with adding, deleting,
249      * or updating an entity.
250      *
251      * @param        passwordPolicy the entity to add, update, or merge
252      * @param        merge boolean value for whether to merge the entity. The
253      *                default value is false. Setting merge to true is more
254      *                expensive and should only be true when passwordPolicy is
255      *                transient. See LEP-5473 for a detailed discussion of this
256      *                method.
257      * @return        true if the portlet can be displayed via Ajax
258      */
259     public PasswordPolicy update(PasswordPolicy passwordPolicy, boolean merge)
260         throws SystemException {
261         boolean isNew = passwordPolicy.isNew();
262 
263         for (ModelListener<PasswordPolicy> listener : listeners) {
264             if (isNew) {
265                 listener.onBeforeCreate(passwordPolicy);
266             }
267             else {
268                 listener.onBeforeUpdate(passwordPolicy);
269             }
270         }
271 
272         passwordPolicy = updateImpl(passwordPolicy, merge);
273 
274         for (ModelListener<PasswordPolicy> listener : listeners) {
275             if (isNew) {
276                 listener.onAfterCreate(passwordPolicy);
277             }
278             else {
279                 listener.onAfterUpdate(passwordPolicy);
280             }
281         }
282 
283         return passwordPolicy;
284     }
285 
286     public PasswordPolicy updateImpl(
287         com.liferay.portal.model.PasswordPolicy passwordPolicy, boolean merge)
288         throws SystemException {
289         boolean isNew = passwordPolicy.isNew();
290 
291         PasswordPolicyModelImpl passwordPolicyModelImpl = (PasswordPolicyModelImpl)passwordPolicy;
292 
293         Session session = null;
294 
295         try {
296             session = openSession();
297 
298             BatchSessionUtil.update(session, passwordPolicy, merge);
299 
300             passwordPolicy.setNew(false);
301         }
302         catch (Exception e) {
303             throw processException(e);
304         }
305         finally {
306             closeSession(session);
307         }
308 
309         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
310 
311         EntityCacheUtil.putResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
312             PasswordPolicyImpl.class, passwordPolicy.getPrimaryKey(),
313             passwordPolicy);
314 
315         if (!isNew &&
316                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
317                 (passwordPolicy.getDefaultPolicy() != passwordPolicyModelImpl.getOriginalDefaultPolicy()))) {
318             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_DP,
319                 new Object[] {
320                     new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
321                     Boolean.valueOf(
322                         passwordPolicyModelImpl.getOriginalDefaultPolicy())
323                 });
324         }
325 
326         if (isNew ||
327                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
328                 (passwordPolicy.getDefaultPolicy() != passwordPolicyModelImpl.getOriginalDefaultPolicy()))) {
329             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
330                 new Object[] {
331                     new Long(passwordPolicy.getCompanyId()),
332                     Boolean.valueOf(passwordPolicy.getDefaultPolicy())
333                 }, passwordPolicy);
334         }
335 
336         if (!isNew &&
337                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
338                 !passwordPolicy.getName()
339                                    .equals(passwordPolicyModelImpl.getOriginalName()))) {
340             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N,
341                 new Object[] {
342                     new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
343                     
344                 passwordPolicyModelImpl.getOriginalName()
345                 });
346         }
347 
348         if (isNew ||
349                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
350                 !passwordPolicy.getName()
351                                    .equals(passwordPolicyModelImpl.getOriginalName()))) {
352             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
353                 new Object[] {
354                     new Long(passwordPolicy.getCompanyId()),
355                     
356                 passwordPolicy.getName()
357                 }, passwordPolicy);
358         }
359 
360         return passwordPolicy;
361     }
362 
363     public PasswordPolicy findByPrimaryKey(long passwordPolicyId)
364         throws NoSuchPasswordPolicyException, SystemException {
365         PasswordPolicy passwordPolicy = fetchByPrimaryKey(passwordPolicyId);
366 
367         if (passwordPolicy == null) {
368             if (_log.isWarnEnabled()) {
369                 _log.warn("No PasswordPolicy exists with the primary key " +
370                     passwordPolicyId);
371             }
372 
373             throw new NoSuchPasswordPolicyException(
374                 "No PasswordPolicy exists with the primary key " +
375                 passwordPolicyId);
376         }
377 
378         return passwordPolicy;
379     }
380 
381     public PasswordPolicy fetchByPrimaryKey(long passwordPolicyId)
382         throws SystemException {
383         PasswordPolicy passwordPolicy = (PasswordPolicy)EntityCacheUtil.getResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
384                 PasswordPolicyImpl.class, passwordPolicyId, this);
385 
386         if (passwordPolicy == null) {
387             Session session = null;
388 
389             try {
390                 session = openSession();
391 
392                 passwordPolicy = (PasswordPolicy)session.get(PasswordPolicyImpl.class,
393                         new Long(passwordPolicyId));
394             }
395             catch (Exception e) {
396                 throw processException(e);
397             }
398             finally {
399                 if (passwordPolicy != null) {
400                     cacheResult(passwordPolicy);
401                 }
402 
403                 closeSession(session);
404             }
405         }
406 
407         return passwordPolicy;
408     }
409 
410     public PasswordPolicy findByC_DP(long companyId, boolean defaultPolicy)
411         throws NoSuchPasswordPolicyException, SystemException {
412         PasswordPolicy passwordPolicy = fetchByC_DP(companyId, defaultPolicy);
413 
414         if (passwordPolicy == null) {
415             StringBuilder msg = new StringBuilder();
416 
417             msg.append("No PasswordPolicy exists with the key {");
418 
419             msg.append("companyId=" + companyId);
420 
421             msg.append(", ");
422             msg.append("defaultPolicy=" + defaultPolicy);
423 
424             msg.append(StringPool.CLOSE_CURLY_BRACE);
425 
426             if (_log.isWarnEnabled()) {
427                 _log.warn(msg.toString());
428             }
429 
430             throw new NoSuchPasswordPolicyException(msg.toString());
431         }
432 
433         return passwordPolicy;
434     }
435 
436     public PasswordPolicy fetchByC_DP(long companyId, boolean defaultPolicy)
437         throws SystemException {
438         return fetchByC_DP(companyId, defaultPolicy, true);
439     }
440 
441     public PasswordPolicy fetchByC_DP(long companyId, boolean defaultPolicy,
442         boolean retrieveFromCache) throws SystemException {
443         Object[] finderArgs = new Object[] {
444                 new Long(companyId), Boolean.valueOf(defaultPolicy)
445             };
446 
447         Object result = null;
448 
449         if (retrieveFromCache) {
450             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_DP,
451                     finderArgs, this);
452         }
453 
454         if (result == null) {
455             Session session = null;
456 
457             try {
458                 session = openSession();
459 
460                 StringBuilder query = new StringBuilder();
461 
462                 query.append(
463                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
464 
465                 query.append("companyId = ?");
466 
467                 query.append(" AND ");
468 
469                 query.append("defaultPolicy = ?");
470 
471                 query.append(" ");
472 
473                 Query q = session.createQuery(query.toString());
474 
475                 QueryPos qPos = QueryPos.getInstance(q);
476 
477                 qPos.add(companyId);
478 
479                 qPos.add(defaultPolicy);
480 
481                 List<PasswordPolicy> list = q.list();
482 
483                 result = list;
484 
485                 PasswordPolicy passwordPolicy = null;
486 
487                 if (list.isEmpty()) {
488                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
489                         finderArgs, list);
490                 }
491                 else {
492                     passwordPolicy = list.get(0);
493 
494                     cacheResult(passwordPolicy);
495 
496                     if ((passwordPolicy.getCompanyId() != companyId) ||
497                             (passwordPolicy.getDefaultPolicy() != defaultPolicy)) {
498                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
499                             finderArgs, list);
500                     }
501                 }
502 
503                 return passwordPolicy;
504             }
505             catch (Exception e) {
506                 throw processException(e);
507             }
508             finally {
509                 if (result == null) {
510                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
511                         finderArgs, new ArrayList<PasswordPolicy>());
512                 }
513 
514                 closeSession(session);
515             }
516         }
517         else {
518             if (result instanceof List) {
519                 return null;
520             }
521             else {
522                 return (PasswordPolicy)result;
523             }
524         }
525     }
526 
527     public PasswordPolicy findByC_N(long companyId, String name)
528         throws NoSuchPasswordPolicyException, SystemException {
529         PasswordPolicy passwordPolicy = fetchByC_N(companyId, name);
530 
531         if (passwordPolicy == null) {
532             StringBuilder msg = new StringBuilder();
533 
534             msg.append("No PasswordPolicy exists with the key {");
535 
536             msg.append("companyId=" + companyId);
537 
538             msg.append(", ");
539             msg.append("name=" + name);
540 
541             msg.append(StringPool.CLOSE_CURLY_BRACE);
542 
543             if (_log.isWarnEnabled()) {
544                 _log.warn(msg.toString());
545             }
546 
547             throw new NoSuchPasswordPolicyException(msg.toString());
548         }
549 
550         return passwordPolicy;
551     }
552 
553     public PasswordPolicy fetchByC_N(long companyId, String name)
554         throws SystemException {
555         return fetchByC_N(companyId, name, true);
556     }
557 
558     public PasswordPolicy fetchByC_N(long companyId, String name,
559         boolean retrieveFromCache) throws SystemException {
560         Object[] finderArgs = new Object[] { new Long(companyId), name };
561 
562         Object result = null;
563 
564         if (retrieveFromCache) {
565             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_N,
566                     finderArgs, this);
567         }
568 
569         if (result == null) {
570             Session session = null;
571 
572             try {
573                 session = openSession();
574 
575                 StringBuilder query = new StringBuilder();
576 
577                 query.append(
578                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
579 
580                 query.append("companyId = ?");
581 
582                 query.append(" AND ");
583 
584                 if (name == null) {
585                     query.append("name IS NULL");
586                 }
587                 else {
588                     query.append("name = ?");
589                 }
590 
591                 query.append(" ");
592 
593                 Query q = session.createQuery(query.toString());
594 
595                 QueryPos qPos = QueryPos.getInstance(q);
596 
597                 qPos.add(companyId);
598 
599                 if (name != null) {
600                     qPos.add(name);
601                 }
602 
603                 List<PasswordPolicy> list = q.list();
604 
605                 result = list;
606 
607                 PasswordPolicy passwordPolicy = null;
608 
609                 if (list.isEmpty()) {
610                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
611                         finderArgs, list);
612                 }
613                 else {
614                     passwordPolicy = list.get(0);
615 
616                     cacheResult(passwordPolicy);
617 
618                     if ((passwordPolicy.getCompanyId() != companyId) ||
619                             (passwordPolicy.getName() == null) ||
620                             !passwordPolicy.getName().equals(name)) {
621                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
622                             finderArgs, list);
623                     }
624                 }
625 
626                 return passwordPolicy;
627             }
628             catch (Exception e) {
629                 throw processException(e);
630             }
631             finally {
632                 if (result == null) {
633                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
634                         finderArgs, new ArrayList<PasswordPolicy>());
635                 }
636 
637                 closeSession(session);
638             }
639         }
640         else {
641             if (result instanceof List) {
642                 return null;
643             }
644             else {
645                 return (PasswordPolicy)result;
646             }
647         }
648     }
649 
650     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
651         throws SystemException {
652         Session session = null;
653 
654         try {
655             session = openSession();
656 
657             dynamicQuery.compile(session);
658 
659             return dynamicQuery.list();
660         }
661         catch (Exception e) {
662             throw processException(e);
663         }
664         finally {
665             closeSession(session);
666         }
667     }
668 
669     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
670         int start, int end) throws SystemException {
671         Session session = null;
672 
673         try {
674             session = openSession();
675 
676             dynamicQuery.setLimit(start, end);
677 
678             dynamicQuery.compile(session);
679 
680             return dynamicQuery.list();
681         }
682         catch (Exception e) {
683             throw processException(e);
684         }
685         finally {
686             closeSession(session);
687         }
688     }
689 
690     public List<PasswordPolicy> findAll() throws SystemException {
691         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
692     }
693 
694     public List<PasswordPolicy> findAll(int start, int end)
695         throws SystemException {
696         return findAll(start, end, null);
697     }
698 
699     public List<PasswordPolicy> findAll(int start, int end,
700         OrderByComparator obc) throws SystemException {
701         Object[] finderArgs = new Object[] {
702                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
703             };
704 
705         List<PasswordPolicy> list = (List<PasswordPolicy>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
706                 finderArgs, this);
707 
708         if (list == null) {
709             Session session = null;
710 
711             try {
712                 session = openSession();
713 
714                 StringBuilder query = new StringBuilder();
715 
716                 query.append("FROM com.liferay.portal.model.PasswordPolicy ");
717 
718                 if (obc != null) {
719                     query.append("ORDER BY ");
720                     query.append(obc.getOrderBy());
721                 }
722 
723                 Query q = session.createQuery(query.toString());
724 
725                 if (obc == null) {
726                     list = (List<PasswordPolicy>)QueryUtil.list(q,
727                             getDialect(), start, end, false);
728 
729                     Collections.sort(list);
730                 }
731                 else {
732                     list = (List<PasswordPolicy>)QueryUtil.list(q,
733                             getDialect(), start, end);
734                 }
735             }
736             catch (Exception e) {
737                 throw processException(e);
738             }
739             finally {
740                 if (list == null) {
741                     list = new ArrayList<PasswordPolicy>();
742                 }
743 
744                 cacheResult(list);
745 
746                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
747 
748                 closeSession(session);
749             }
750         }
751 
752         return list;
753     }
754 
755     public void removeByC_DP(long companyId, boolean defaultPolicy)
756         throws NoSuchPasswordPolicyException, SystemException {
757         PasswordPolicy passwordPolicy = findByC_DP(companyId, defaultPolicy);
758 
759         remove(passwordPolicy);
760     }
761 
762     public void removeByC_N(long companyId, String name)
763         throws NoSuchPasswordPolicyException, SystemException {
764         PasswordPolicy passwordPolicy = findByC_N(companyId, name);
765 
766         remove(passwordPolicy);
767     }
768 
769     public void removeAll() throws SystemException {
770         for (PasswordPolicy passwordPolicy : findAll()) {
771             remove(passwordPolicy);
772         }
773     }
774 
775     public int countByC_DP(long companyId, boolean defaultPolicy)
776         throws SystemException {
777         Object[] finderArgs = new Object[] {
778                 new Long(companyId), Boolean.valueOf(defaultPolicy)
779             };
780 
781         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_DP,
782                 finderArgs, this);
783 
784         if (count == null) {
785             Session session = null;
786 
787             try {
788                 session = openSession();
789 
790                 StringBuilder query = new StringBuilder();
791 
792                 query.append("SELECT COUNT(*) ");
793                 query.append(
794                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
795 
796                 query.append("companyId = ?");
797 
798                 query.append(" AND ");
799 
800                 query.append("defaultPolicy = ?");
801 
802                 query.append(" ");
803 
804                 Query q = session.createQuery(query.toString());
805 
806                 QueryPos qPos = QueryPos.getInstance(q);
807 
808                 qPos.add(companyId);
809 
810                 qPos.add(defaultPolicy);
811 
812                 count = (Long)q.uniqueResult();
813             }
814             catch (Exception e) {
815                 throw processException(e);
816             }
817             finally {
818                 if (count == null) {
819                     count = Long.valueOf(0);
820                 }
821 
822                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_DP,
823                     finderArgs, count);
824 
825                 closeSession(session);
826             }
827         }
828 
829         return count.intValue();
830     }
831 
832     public int countByC_N(long companyId, String name)
833         throws SystemException {
834         Object[] finderArgs = new Object[] { new Long(companyId), name };
835 
836         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N,
837                 finderArgs, this);
838 
839         if (count == null) {
840             Session session = null;
841 
842             try {
843                 session = openSession();
844 
845                 StringBuilder query = new StringBuilder();
846 
847                 query.append("SELECT COUNT(*) ");
848                 query.append(
849                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
850 
851                 query.append("companyId = ?");
852 
853                 query.append(" AND ");
854 
855                 if (name == null) {
856                     query.append("name IS NULL");
857                 }
858                 else {
859                     query.append("name = ?");
860                 }
861 
862                 query.append(" ");
863 
864                 Query q = session.createQuery(query.toString());
865 
866                 QueryPos qPos = QueryPos.getInstance(q);
867 
868                 qPos.add(companyId);
869 
870                 if (name != null) {
871                     qPos.add(name);
872                 }
873 
874                 count = (Long)q.uniqueResult();
875             }
876             catch (Exception e) {
877                 throw processException(e);
878             }
879             finally {
880                 if (count == null) {
881                     count = Long.valueOf(0);
882                 }
883 
884                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N, finderArgs,
885                     count);
886 
887                 closeSession(session);
888             }
889         }
890 
891         return count.intValue();
892     }
893 
894     public int countAll() throws SystemException {
895         Object[] finderArgs = new Object[0];
896 
897         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
898                 finderArgs, this);
899 
900         if (count == null) {
901             Session session = null;
902 
903             try {
904                 session = openSession();
905 
906                 Query q = session.createQuery(
907                         "SELECT COUNT(*) FROM com.liferay.portal.model.PasswordPolicy");
908 
909                 count = (Long)q.uniqueResult();
910             }
911             catch (Exception e) {
912                 throw processException(e);
913             }
914             finally {
915                 if (count == null) {
916                     count = Long.valueOf(0);
917                 }
918 
919                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
920                     count);
921 
922                 closeSession(session);
923             }
924         }
925 
926         return count.intValue();
927     }
928 
929     public void afterPropertiesSet() {
930         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
931                     com.liferay.portal.util.PropsUtil.get(
932                         "value.object.listener.com.liferay.portal.model.PasswordPolicy")));
933 
934         if (listenerClassNames.length > 0) {
935             try {
936                 List<ModelListener<PasswordPolicy>> listenersList = new ArrayList<ModelListener<PasswordPolicy>>();
937 
938                 for (String listenerClassName : listenerClassNames) {
939                     listenersList.add((ModelListener<PasswordPolicy>)Class.forName(
940                             listenerClassName).newInstance());
941                 }
942 
943                 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
944             }
945             catch (Exception e) {
946                 _log.error(e);
947             }
948         }
949     }
950 
951     @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
952     protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
953     @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
954     protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
955     @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
956     protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
957     @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
958     protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
959     @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
960     protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
961     @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
962     protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
963     @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
964     protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
965     @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
966     protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
967     @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
968     protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
969     @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
970     protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
971     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
972     protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
973     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
974     protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
975     @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
976     protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
977     @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
978     protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
979     @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
980     protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
981     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
982     protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
983     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
984     protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
985     @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
986     protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
987     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
988     protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
989     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
990     protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
991     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
992     protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
993     @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
994     protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
995     @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
996     protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
997     @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
998     protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
999     @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
1000    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
1001    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
1002    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
1003    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
1004    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
1005    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
1006    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
1007    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
1008    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
1009    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
1010    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1011    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
1012    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
1013    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
1014    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
1015    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
1016    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
1017    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
1018    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
1019    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
1020    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
1021    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
1022    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
1023    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
1024    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
1025    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
1026    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1027    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
1028    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
1029    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
1030    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
1031    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
1032    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
1033    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
1034    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
1035    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
1036    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
1037    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
1038    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
1039    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
1040    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
1041    private static Log _log = LogFactoryUtil.getLog(PasswordPolicyPersistenceImpl.class);
1042}