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