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