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         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     /**
244      * @deprecated Use {@link #update(PasswordPolicy, boolean merge)}.
245      */
246     public PasswordPolicy update(PasswordPolicy passwordPolicy)
247         throws SystemException {
248         if (_log.isWarnEnabled()) {
249             _log.warn(
250                 "Using the deprecated update(PasswordPolicy passwordPolicy) method. Use update(PasswordPolicy passwordPolicy, boolean merge) instead.");
251         }
252 
253         return update(passwordPolicy, false);
254     }
255 
256     /**
257      * Add, update, or merge, the entity. This method also calls the model
258      * listeners to trigger the proper events associated with adding, deleting,
259      * or updating an entity.
260      *
261      * @param  passwordPolicy the entity to add, update, or merge
262      * @param  merge boolean value for whether to merge the entity. The default
263      *         value is false. Setting merge to true is more expensive and
264      *         should only be true when passwordPolicy is transient. See
265      *         LEP-5473 for a detailed discussion of this method.
266      * @return the entity that was added, updated, or merged
267      */
268     public PasswordPolicy update(PasswordPolicy passwordPolicy, boolean merge)
269         throws SystemException {
270         boolean isNew = passwordPolicy.isNew();
271 
272         for (ModelListener<PasswordPolicy> listener : listeners) {
273             if (isNew) {
274                 listener.onBeforeCreate(passwordPolicy);
275             }
276             else {
277                 listener.onBeforeUpdate(passwordPolicy);
278             }
279         }
280 
281         passwordPolicy = updateImpl(passwordPolicy, merge);
282 
283         for (ModelListener<PasswordPolicy> listener : listeners) {
284             if (isNew) {
285                 listener.onAfterCreate(passwordPolicy);
286             }
287             else {
288                 listener.onAfterUpdate(passwordPolicy);
289             }
290         }
291 
292         return passwordPolicy;
293     }
294 
295     public PasswordPolicy updateImpl(
296         com.liferay.portal.model.PasswordPolicy passwordPolicy, boolean merge)
297         throws SystemException {
298         passwordPolicy = toUnwrappedModel(passwordPolicy);
299 
300         boolean isNew = passwordPolicy.isNew();
301 
302         PasswordPolicyModelImpl passwordPolicyModelImpl = (PasswordPolicyModelImpl)passwordPolicy;
303 
304         Session session = null;
305 
306         try {
307             session = openSession();
308 
309             BatchSessionUtil.update(session, passwordPolicy, merge);
310 
311             passwordPolicy.setNew(false);
312         }
313         catch (Exception e) {
314             throw processException(e);
315         }
316         finally {
317             closeSession(session);
318         }
319 
320         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
321 
322         EntityCacheUtil.putResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
323             PasswordPolicyImpl.class, passwordPolicy.getPrimaryKey(),
324             passwordPolicy);
325 
326         if (!isNew &&
327                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
328                 (passwordPolicy.getDefaultPolicy() != passwordPolicyModelImpl.getOriginalDefaultPolicy()))) {
329             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_DP,
330                 new Object[] {
331                     new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
332                     Boolean.valueOf(
333                         passwordPolicyModelImpl.getOriginalDefaultPolicy())
334                 });
335         }
336 
337         if (isNew ||
338                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
339                 (passwordPolicy.getDefaultPolicy() != passwordPolicyModelImpl.getOriginalDefaultPolicy()))) {
340             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
341                 new Object[] {
342                     new Long(passwordPolicy.getCompanyId()),
343                     Boolean.valueOf(passwordPolicy.getDefaultPolicy())
344                 }, passwordPolicy);
345         }
346 
347         if (!isNew &&
348                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
349                 !Validator.equals(passwordPolicy.getName(),
350                     passwordPolicyModelImpl.getOriginalName()))) {
351             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_N,
352                 new Object[] {
353                     new Long(passwordPolicyModelImpl.getOriginalCompanyId()),
354                     
355                 passwordPolicyModelImpl.getOriginalName()
356                 });
357         }
358 
359         if (isNew ||
360                 ((passwordPolicy.getCompanyId() != passwordPolicyModelImpl.getOriginalCompanyId()) ||
361                 !Validator.equals(passwordPolicy.getName(),
362                     passwordPolicyModelImpl.getOriginalName()))) {
363             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
364                 new Object[] {
365                     new Long(passwordPolicy.getCompanyId()),
366                     
367                 passwordPolicy.getName()
368                 }, passwordPolicy);
369         }
370 
371         return passwordPolicy;
372     }
373 
374     protected PasswordPolicy toUnwrappedModel(PasswordPolicy passwordPolicy) {
375         if (passwordPolicy instanceof PasswordPolicyImpl) {
376             return passwordPolicy;
377         }
378 
379         PasswordPolicyImpl passwordPolicyImpl = new PasswordPolicyImpl();
380 
381         passwordPolicyImpl.setNew(passwordPolicy.isNew());
382         passwordPolicyImpl.setPrimaryKey(passwordPolicy.getPrimaryKey());
383 
384         passwordPolicyImpl.setPasswordPolicyId(passwordPolicy.getPasswordPolicyId());
385         passwordPolicyImpl.setCompanyId(passwordPolicy.getCompanyId());
386         passwordPolicyImpl.setUserId(passwordPolicy.getUserId());
387         passwordPolicyImpl.setUserName(passwordPolicy.getUserName());
388         passwordPolicyImpl.setCreateDate(passwordPolicy.getCreateDate());
389         passwordPolicyImpl.setModifiedDate(passwordPolicy.getModifiedDate());
390         passwordPolicyImpl.setDefaultPolicy(passwordPolicy.isDefaultPolicy());
391         passwordPolicyImpl.setName(passwordPolicy.getName());
392         passwordPolicyImpl.setDescription(passwordPolicy.getDescription());
393         passwordPolicyImpl.setChangeable(passwordPolicy.isChangeable());
394         passwordPolicyImpl.setChangeRequired(passwordPolicy.isChangeRequired());
395         passwordPolicyImpl.setMinAge(passwordPolicy.getMinAge());
396         passwordPolicyImpl.setCheckSyntax(passwordPolicy.isCheckSyntax());
397         passwordPolicyImpl.setAllowDictionaryWords(passwordPolicy.isAllowDictionaryWords());
398         passwordPolicyImpl.setMinLength(passwordPolicy.getMinLength());
399         passwordPolicyImpl.setHistory(passwordPolicy.isHistory());
400         passwordPolicyImpl.setHistoryCount(passwordPolicy.getHistoryCount());
401         passwordPolicyImpl.setExpireable(passwordPolicy.isExpireable());
402         passwordPolicyImpl.setMaxAge(passwordPolicy.getMaxAge());
403         passwordPolicyImpl.setWarningTime(passwordPolicy.getWarningTime());
404         passwordPolicyImpl.setGraceLimit(passwordPolicy.getGraceLimit());
405         passwordPolicyImpl.setLockout(passwordPolicy.isLockout());
406         passwordPolicyImpl.setMaxFailure(passwordPolicy.getMaxFailure());
407         passwordPolicyImpl.setLockoutDuration(passwordPolicy.getLockoutDuration());
408         passwordPolicyImpl.setRequireUnlock(passwordPolicy.isRequireUnlock());
409         passwordPolicyImpl.setResetFailureCount(passwordPolicy.getResetFailureCount());
410 
411         return passwordPolicyImpl;
412     }
413 
414     public PasswordPolicy findByPrimaryKey(long passwordPolicyId)
415         throws NoSuchPasswordPolicyException, SystemException {
416         PasswordPolicy passwordPolicy = fetchByPrimaryKey(passwordPolicyId);
417 
418         if (passwordPolicy == null) {
419             if (_log.isWarnEnabled()) {
420                 _log.warn("No PasswordPolicy exists with the primary key " +
421                     passwordPolicyId);
422             }
423 
424             throw new NoSuchPasswordPolicyException(
425                 "No PasswordPolicy exists with the primary key " +
426                 passwordPolicyId);
427         }
428 
429         return passwordPolicy;
430     }
431 
432     public PasswordPolicy fetchByPrimaryKey(long passwordPolicyId)
433         throws SystemException {
434         PasswordPolicy passwordPolicy = (PasswordPolicy)EntityCacheUtil.getResult(PasswordPolicyModelImpl.ENTITY_CACHE_ENABLED,
435                 PasswordPolicyImpl.class, passwordPolicyId, this);
436 
437         if (passwordPolicy == null) {
438             Session session = null;
439 
440             try {
441                 session = openSession();
442 
443                 passwordPolicy = (PasswordPolicy)session.get(PasswordPolicyImpl.class,
444                         new Long(passwordPolicyId));
445             }
446             catch (Exception e) {
447                 throw processException(e);
448             }
449             finally {
450                 if (passwordPolicy != null) {
451                     cacheResult(passwordPolicy);
452                 }
453 
454                 closeSession(session);
455             }
456         }
457 
458         return passwordPolicy;
459     }
460 
461     public PasswordPolicy findByC_DP(long companyId, boolean defaultPolicy)
462         throws NoSuchPasswordPolicyException, SystemException {
463         PasswordPolicy passwordPolicy = fetchByC_DP(companyId, defaultPolicy);
464 
465         if (passwordPolicy == null) {
466             StringBuilder msg = new StringBuilder();
467 
468             msg.append("No PasswordPolicy exists with the key {");
469 
470             msg.append("companyId=" + companyId);
471 
472             msg.append(", ");
473             msg.append("defaultPolicy=" + defaultPolicy);
474 
475             msg.append(StringPool.CLOSE_CURLY_BRACE);
476 
477             if (_log.isWarnEnabled()) {
478                 _log.warn(msg.toString());
479             }
480 
481             throw new NoSuchPasswordPolicyException(msg.toString());
482         }
483 
484         return passwordPolicy;
485     }
486 
487     public PasswordPolicy fetchByC_DP(long companyId, boolean defaultPolicy)
488         throws SystemException {
489         return fetchByC_DP(companyId, defaultPolicy, true);
490     }
491 
492     public PasswordPolicy fetchByC_DP(long companyId, boolean defaultPolicy,
493         boolean retrieveFromCache) throws SystemException {
494         Object[] finderArgs = new Object[] {
495                 new Long(companyId), Boolean.valueOf(defaultPolicy)
496             };
497 
498         Object result = null;
499 
500         if (retrieveFromCache) {
501             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_DP,
502                     finderArgs, this);
503         }
504 
505         if (result == null) {
506             Session session = null;
507 
508             try {
509                 session = openSession();
510 
511                 StringBuilder query = new StringBuilder();
512 
513                 query.append(
514                     "SELECT passwordPolicy FROM PasswordPolicy passwordPolicy WHERE ");
515 
516                 query.append("passwordPolicy.companyId = ?");
517 
518                 query.append(" AND ");
519 
520                 query.append("passwordPolicy.defaultPolicy = ?");
521 
522                 query.append(" ");
523 
524                 Query q = session.createQuery(query.toString());
525 
526                 QueryPos qPos = QueryPos.getInstance(q);
527 
528                 qPos.add(companyId);
529 
530                 qPos.add(defaultPolicy);
531 
532                 List<PasswordPolicy> list = q.list();
533 
534                 result = list;
535 
536                 PasswordPolicy passwordPolicy = null;
537 
538                 if (list.isEmpty()) {
539                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
540                         finderArgs, list);
541                 }
542                 else {
543                     passwordPolicy = list.get(0);
544 
545                     cacheResult(passwordPolicy);
546 
547                     if ((passwordPolicy.getCompanyId() != companyId) ||
548                             (passwordPolicy.getDefaultPolicy() != defaultPolicy)) {
549                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
550                             finderArgs, passwordPolicy);
551                     }
552                 }
553 
554                 return passwordPolicy;
555             }
556             catch (Exception e) {
557                 throw processException(e);
558             }
559             finally {
560                 if (result == null) {
561                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_DP,
562                         finderArgs, new ArrayList<PasswordPolicy>());
563                 }
564 
565                 closeSession(session);
566             }
567         }
568         else {
569             if (result instanceof List<?>) {
570                 return null;
571             }
572             else {
573                 return (PasswordPolicy)result;
574             }
575         }
576     }
577 
578     public PasswordPolicy findByC_N(long companyId, String name)
579         throws NoSuchPasswordPolicyException, SystemException {
580         PasswordPolicy passwordPolicy = fetchByC_N(companyId, name);
581 
582         if (passwordPolicy == null) {
583             StringBuilder msg = new StringBuilder();
584 
585             msg.append("No PasswordPolicy exists with the key {");
586 
587             msg.append("companyId=" + companyId);
588 
589             msg.append(", ");
590             msg.append("name=" + name);
591 
592             msg.append(StringPool.CLOSE_CURLY_BRACE);
593 
594             if (_log.isWarnEnabled()) {
595                 _log.warn(msg.toString());
596             }
597 
598             throw new NoSuchPasswordPolicyException(msg.toString());
599         }
600 
601         return passwordPolicy;
602     }
603 
604     public PasswordPolicy fetchByC_N(long companyId, String name)
605         throws SystemException {
606         return fetchByC_N(companyId, name, true);
607     }
608 
609     public PasswordPolicy fetchByC_N(long companyId, String name,
610         boolean retrieveFromCache) throws SystemException {
611         Object[] finderArgs = new Object[] { new Long(companyId), name };
612 
613         Object result = null;
614 
615         if (retrieveFromCache) {
616             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_N,
617                     finderArgs, this);
618         }
619 
620         if (result == null) {
621             Session session = null;
622 
623             try {
624                 session = openSession();
625 
626                 StringBuilder query = new StringBuilder();
627 
628                 query.append(
629                     "SELECT passwordPolicy FROM PasswordPolicy passwordPolicy WHERE ");
630 
631                 query.append("passwordPolicy.companyId = ?");
632 
633                 query.append(" AND ");
634 
635                 if (name == null) {
636                     query.append("passwordPolicy.name IS NULL");
637                 }
638                 else {
639                     query.append("passwordPolicy.name = ?");
640                 }
641 
642                 query.append(" ");
643 
644                 Query q = session.createQuery(query.toString());
645 
646                 QueryPos qPos = QueryPos.getInstance(q);
647 
648                 qPos.add(companyId);
649 
650                 if (name != null) {
651                     qPos.add(name);
652                 }
653 
654                 List<PasswordPolicy> list = q.list();
655 
656                 result = list;
657 
658                 PasswordPolicy passwordPolicy = null;
659 
660                 if (list.isEmpty()) {
661                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
662                         finderArgs, list);
663                 }
664                 else {
665                     passwordPolicy = list.get(0);
666 
667                     cacheResult(passwordPolicy);
668 
669                     if ((passwordPolicy.getCompanyId() != companyId) ||
670                             (passwordPolicy.getName() == null) ||
671                             !passwordPolicy.getName().equals(name)) {
672                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
673                             finderArgs, passwordPolicy);
674                     }
675                 }
676 
677                 return passwordPolicy;
678             }
679             catch (Exception e) {
680                 throw processException(e);
681             }
682             finally {
683                 if (result == null) {
684                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_N,
685                         finderArgs, new ArrayList<PasswordPolicy>());
686                 }
687 
688                 closeSession(session);
689             }
690         }
691         else {
692             if (result instanceof List<?>) {
693                 return null;
694             }
695             else {
696                 return (PasswordPolicy)result;
697             }
698         }
699     }
700 
701     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
702         throws SystemException {
703         Session session = null;
704 
705         try {
706             session = openSession();
707 
708             dynamicQuery.compile(session);
709 
710             return dynamicQuery.list();
711         }
712         catch (Exception e) {
713             throw processException(e);
714         }
715         finally {
716             closeSession(session);
717         }
718     }
719 
720     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
721         int start, int end) throws SystemException {
722         Session session = null;
723 
724         try {
725             session = openSession();
726 
727             dynamicQuery.setLimit(start, end);
728 
729             dynamicQuery.compile(session);
730 
731             return dynamicQuery.list();
732         }
733         catch (Exception e) {
734             throw processException(e);
735         }
736         finally {
737             closeSession(session);
738         }
739     }
740 
741     public List<PasswordPolicy> findAll() throws SystemException {
742         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
743     }
744 
745     public List<PasswordPolicy> findAll(int start, int end)
746         throws SystemException {
747         return findAll(start, end, null);
748     }
749 
750     public List<PasswordPolicy> findAll(int start, int end,
751         OrderByComparator obc) throws SystemException {
752         Object[] finderArgs = new Object[] {
753                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
754             };
755 
756         List<PasswordPolicy> list = (List<PasswordPolicy>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
757                 finderArgs, this);
758 
759         if (list == null) {
760             Session session = null;
761 
762             try {
763                 session = openSession();
764 
765                 StringBuilder query = new StringBuilder();
766 
767                 query.append(
768                     "SELECT passwordPolicy FROM PasswordPolicy passwordPolicy ");
769 
770                 if (obc != null) {
771                     query.append("ORDER BY ");
772 
773                     String[] orderByFields = obc.getOrderByFields();
774 
775                     for (int i = 0; i < orderByFields.length; i++) {
776                         query.append("passwordPolicy.");
777                         query.append(orderByFields[i]);
778 
779                         if (obc.isAscending()) {
780                             query.append(" ASC");
781                         }
782                         else {
783                             query.append(" DESC");
784                         }
785 
786                         if ((i + 1) < orderByFields.length) {
787                             query.append(", ");
788                         }
789                     }
790                 }
791 
792                 Query q = session.createQuery(query.toString());
793 
794                 if (obc == null) {
795                     list = (List<PasswordPolicy>)QueryUtil.list(q,
796                             getDialect(), start, end, false);
797 
798                     Collections.sort(list);
799                 }
800                 else {
801                     list = (List<PasswordPolicy>)QueryUtil.list(q,
802                             getDialect(), start, end);
803                 }
804             }
805             catch (Exception e) {
806                 throw processException(e);
807             }
808             finally {
809                 if (list == null) {
810                     list = new ArrayList<PasswordPolicy>();
811                 }
812 
813                 cacheResult(list);
814 
815                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
816 
817                 closeSession(session);
818             }
819         }
820 
821         return list;
822     }
823 
824     public void removeByC_DP(long companyId, boolean defaultPolicy)
825         throws NoSuchPasswordPolicyException, SystemException {
826         PasswordPolicy passwordPolicy = findByC_DP(companyId, defaultPolicy);
827 
828         remove(passwordPolicy);
829     }
830 
831     public void removeByC_N(long companyId, String name)
832         throws NoSuchPasswordPolicyException, SystemException {
833         PasswordPolicy passwordPolicy = findByC_N(companyId, name);
834 
835         remove(passwordPolicy);
836     }
837 
838     public void removeAll() throws SystemException {
839         for (PasswordPolicy passwordPolicy : findAll()) {
840             remove(passwordPolicy);
841         }
842     }
843 
844     public int countByC_DP(long companyId, boolean defaultPolicy)
845         throws SystemException {
846         Object[] finderArgs = new Object[] {
847                 new Long(companyId), Boolean.valueOf(defaultPolicy)
848             };
849 
850         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_DP,
851                 finderArgs, this);
852 
853         if (count == null) {
854             Session session = null;
855 
856             try {
857                 session = openSession();
858 
859                 StringBuilder query = new StringBuilder();
860 
861                 query.append("SELECT COUNT(passwordPolicy) ");
862                 query.append("FROM PasswordPolicy passwordPolicy WHERE ");
863 
864                 query.append("passwordPolicy.companyId = ?");
865 
866                 query.append(" AND ");
867 
868                 query.append("passwordPolicy.defaultPolicy = ?");
869 
870                 query.append(" ");
871 
872                 Query q = session.createQuery(query.toString());
873 
874                 QueryPos qPos = QueryPos.getInstance(q);
875 
876                 qPos.add(companyId);
877 
878                 qPos.add(defaultPolicy);
879 
880                 count = (Long)q.uniqueResult();
881             }
882             catch (Exception e) {
883                 throw processException(e);
884             }
885             finally {
886                 if (count == null) {
887                     count = Long.valueOf(0);
888                 }
889 
890                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_DP,
891                     finderArgs, count);
892 
893                 closeSession(session);
894             }
895         }
896 
897         return count.intValue();
898     }
899 
900     public int countByC_N(long companyId, String name)
901         throws SystemException {
902         Object[] finderArgs = new Object[] { new Long(companyId), name };
903 
904         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_N,
905                 finderArgs, this);
906 
907         if (count == null) {
908             Session session = null;
909 
910             try {
911                 session = openSession();
912 
913                 StringBuilder query = new StringBuilder();
914 
915                 query.append("SELECT COUNT(passwordPolicy) ");
916                 query.append("FROM PasswordPolicy passwordPolicy WHERE ");
917 
918                 query.append("passwordPolicy.companyId = ?");
919 
920                 query.append(" AND ");
921 
922                 if (name == null) {
923                     query.append("passwordPolicy.name IS NULL");
924                 }
925                 else {
926                     query.append("passwordPolicy.name = ?");
927                 }
928 
929                 query.append(" ");
930 
931                 Query q = session.createQuery(query.toString());
932 
933                 QueryPos qPos = QueryPos.getInstance(q);
934 
935                 qPos.add(companyId);
936 
937                 if (name != null) {
938                     qPos.add(name);
939                 }
940 
941                 count = (Long)q.uniqueResult();
942             }
943             catch (Exception e) {
944                 throw processException(e);
945             }
946             finally {
947                 if (count == null) {
948                     count = Long.valueOf(0);
949                 }
950 
951                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_N, finderArgs,
952                     count);
953 
954                 closeSession(session);
955             }
956         }
957 
958         return count.intValue();
959     }
960 
961     public int countAll() throws SystemException {
962         Object[] finderArgs = new Object[0];
963 
964         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
965                 finderArgs, this);
966 
967         if (count == null) {
968             Session session = null;
969 
970             try {
971                 session = openSession();
972 
973                 Query q = session.createQuery(
974                         "SELECT COUNT(passwordPolicy) FROM PasswordPolicy passwordPolicy");
975 
976                 count = (Long)q.uniqueResult();
977             }
978             catch (Exception e) {
979                 throw processException(e);
980             }
981             finally {
982                 if (count == null) {
983                     count = Long.valueOf(0);
984                 }
985 
986                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
987                     count);
988 
989                 closeSession(session);
990             }
991         }
992 
993         return count.intValue();
994     }
995 
996     public void afterPropertiesSet() {
997         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
998                     com.liferay.portal.util.PropsUtil.get(
999                         "value.object.listener.com.liferay.portal.model.PasswordPolicy")));
1000
1001        if (listenerClassNames.length > 0) {
1002            try {
1003                List<ModelListener<PasswordPolicy>> listenersList = new ArrayList<ModelListener<PasswordPolicy>>();
1004
1005                for (String listenerClassName : listenerClassNames) {
1006                    listenersList.add((ModelListener<PasswordPolicy>)Class.forName(
1007                            listenerClassName).newInstance());
1008                }
1009
1010                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1011            }
1012            catch (Exception e) {
1013                _log.error(e);
1014            }
1015        }
1016    }
1017
1018    @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence.impl")
1019    protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
1020    @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence.impl")
1021    protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
1022    @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence.impl")
1023    protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
1024    @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence.impl")
1025    protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
1026    @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence.impl")
1027    protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
1028    @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence.impl")
1029    protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
1030    @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence.impl")
1031    protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
1032    @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence.impl")
1033    protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
1034    @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence.impl")
1035    protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
1036    @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence.impl")
1037    protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
1038    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence.impl")
1039    protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
1040    @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence.impl")
1041    protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
1042    @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence.impl")
1043    protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
1044    @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence.impl")
1045    protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
1046    @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence.impl")
1047    protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
1048    @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence.impl")
1049    protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
1050    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence.impl")
1051    protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
1052    @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence.impl")
1053    protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
1054    @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence.impl")
1055    protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
1056    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence.impl")
1057    protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
1058    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence.impl")
1059    protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
1060    @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence.impl")
1061    protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
1062    @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence.impl")
1063    protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
1064    @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence.impl")
1065    protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
1066    @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence.impl")
1067    protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
1068    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence.impl")
1069    protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
1070    @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence.impl")
1071    protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
1072    @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence.impl")
1073    protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
1074    @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence.impl")
1075    protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
1076    @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence.impl")
1077    protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
1078    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence.impl")
1079    protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
1080    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence.impl")
1081    protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
1082    @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence.impl")
1083    protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
1084    @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence.impl")
1085    protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
1086    @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence.impl")
1087    protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
1088    @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence.impl")
1089    protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
1090    @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence.impl")
1091    protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
1092    @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence.impl")
1093    protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
1094    @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence.impl")
1095    protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
1096    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence.impl")
1097    protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
1098    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupGroupRolePersistence.impl")
1099    protected com.liferay.portal.service.persistence.UserGroupGroupRolePersistence userGroupGroupRolePersistence;
1100    @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence.impl")
1101    protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
1102    @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence.impl")
1103    protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
1104    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence.impl")
1105    protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
1106    @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence.impl")
1107    protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
1108    @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence.impl")
1109    protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
1110    @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence.impl")
1111    protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
1112    private static Log _log = LogFactoryUtil.getLog(PasswordPolicyPersistenceImpl.class);
1113}