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