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