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