1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.service.persistence;
21  
22  import com.liferay.portal.NoSuchPasswordPolicyException;
23  import com.liferay.portal.SystemException;
24  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
25  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
26  import com.liferay.portal.kernel.dao.orm.Query;
27  import com.liferay.portal.kernel.dao.orm.QueryPos;
28  import com.liferay.portal.kernel.dao.orm.QueryUtil;
29  import com.liferay.portal.kernel.dao.orm.Session;
30  import com.liferay.portal.kernel.log.Log;
31  import com.liferay.portal.kernel.log.LogFactoryUtil;
32  import com.liferay.portal.kernel.util.GetterUtil;
33  import com.liferay.portal.kernel.util.OrderByComparator;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.model.ModelListener;
37  import com.liferay.portal.model.PasswordPolicy;
38  import com.liferay.portal.model.impl.PasswordPolicyImpl;
39  import com.liferay.portal.model.impl.PasswordPolicyModelImpl;
40  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
41  
42  import java.util.ArrayList;
43  import java.util.Collections;
44  import java.util.Iterator;
45  import java.util.List;
46  
47  /**
48   * <a href="PasswordPolicyPersistenceImpl.java.html"><b><i>View Source</i></b></a>
49   *
50   * @author Brian Wing Shun Chan
51   *
52   */
53  public class PasswordPolicyPersistenceImpl extends BasePersistenceImpl
54      implements PasswordPolicyPersistence {
55      public PasswordPolicy create(long passwordPolicyId) {
56          PasswordPolicy passwordPolicy = new PasswordPolicyImpl();
57  
58          passwordPolicy.setNew(true);
59          passwordPolicy.setPrimaryKey(passwordPolicyId);
60  
61          return passwordPolicy;
62      }
63  
64      public PasswordPolicy remove(long passwordPolicyId)
65          throws NoSuchPasswordPolicyException, SystemException {
66          Session session = null;
67  
68          try {
69              session = openSession();
70  
71              PasswordPolicy passwordPolicy = (PasswordPolicy)session.get(PasswordPolicyImpl.class,
72                      new Long(passwordPolicyId));
73  
74              if (passwordPolicy == null) {
75                  if (_log.isWarnEnabled()) {
76                      _log.warn("No PasswordPolicy exists with the primary key " +
77                          passwordPolicyId);
78                  }
79  
80                  throw new NoSuchPasswordPolicyException(
81                      "No PasswordPolicy exists with the primary key " +
82                      passwordPolicyId);
83              }
84  
85              return remove(passwordPolicy);
86          }
87          catch (NoSuchPasswordPolicyException nsee) {
88              throw nsee;
89          }
90          catch (Exception e) {
91              throw processException(e);
92          }
93          finally {
94              closeSession(session);
95          }
96      }
97  
98      public PasswordPolicy remove(PasswordPolicy passwordPolicy)
99          throws SystemException {
100         for (ModelListener listener : listeners) {
101             listener.onBeforeRemove(passwordPolicy);
102         }
103 
104         passwordPolicy = removeImpl(passwordPolicy);
105 
106         for (ModelListener listener : listeners) {
107             listener.onAfterRemove(passwordPolicy);
108         }
109 
110         return passwordPolicy;
111     }
112 
113     protected PasswordPolicy removeImpl(PasswordPolicy passwordPolicy)
114         throws SystemException {
115         Session session = null;
116 
117         try {
118             session = openSession();
119 
120             if (BatchSessionUtil.isEnabled()) {
121                 Object staleObject = session.get(PasswordPolicyImpl.class,
122                         passwordPolicy.getPrimaryKeyObj());
123 
124                 if (staleObject != null) {
125                     session.evict(staleObject);
126                 }
127             }
128 
129             session.delete(passwordPolicy);
130 
131             session.flush();
132 
133             return passwordPolicy;
134         }
135         catch (Exception e) {
136             throw processException(e);
137         }
138         finally {
139             closeSession(session);
140 
141             FinderCacheUtil.clearCache(PasswordPolicy.class.getName());
142         }
143     }
144 
145     /**
146      * @deprecated Use <code>update(PasswordPolicy passwordPolicy, boolean merge)</code>.
147      */
148     public PasswordPolicy update(PasswordPolicy passwordPolicy)
149         throws SystemException {
150         if (_log.isWarnEnabled()) {
151             _log.warn(
152                 "Using the deprecated update(PasswordPolicy passwordPolicy) method. Use update(PasswordPolicy passwordPolicy, boolean merge) instead.");
153         }
154 
155         return update(passwordPolicy, false);
156     }
157 
158     /**
159      * Add, update, or merge, the entity. This method also calls the model
160      * listeners to trigger the proper events associated with adding, deleting,
161      * or updating an entity.
162      *
163      * @param        passwordPolicy the entity to add, update, or merge
164      * @param        merge boolean value for whether to merge the entity. The
165      *                default value is false. Setting merge to true is more
166      *                expensive and should only be true when passwordPolicy is
167      *                transient. See LEP-5473 for a detailed discussion of this
168      *                method.
169      * @return        true if the portlet can be displayed via Ajax
170      */
171     public PasswordPolicy update(PasswordPolicy passwordPolicy, boolean merge)
172         throws SystemException {
173         boolean isNew = passwordPolicy.isNew();
174 
175         for (ModelListener listener : listeners) {
176             if (isNew) {
177                 listener.onBeforeCreate(passwordPolicy);
178             }
179             else {
180                 listener.onBeforeUpdate(passwordPolicy);
181             }
182         }
183 
184         passwordPolicy = updateImpl(passwordPolicy, merge);
185 
186         for (ModelListener listener : listeners) {
187             if (isNew) {
188                 listener.onAfterCreate(passwordPolicy);
189             }
190             else {
191                 listener.onAfterUpdate(passwordPolicy);
192             }
193         }
194 
195         return passwordPolicy;
196     }
197 
198     public PasswordPolicy updateImpl(
199         com.liferay.portal.model.PasswordPolicy passwordPolicy, boolean merge)
200         throws SystemException {
201         Session session = null;
202 
203         try {
204             session = openSession();
205 
206             BatchSessionUtil.update(session, passwordPolicy, merge);
207 
208             passwordPolicy.setNew(false);
209 
210             return passwordPolicy;
211         }
212         catch (Exception e) {
213             throw processException(e);
214         }
215         finally {
216             closeSession(session);
217 
218             FinderCacheUtil.clearCache(PasswordPolicy.class.getName());
219         }
220     }
221 
222     public PasswordPolicy findByPrimaryKey(long passwordPolicyId)
223         throws NoSuchPasswordPolicyException, SystemException {
224         PasswordPolicy passwordPolicy = fetchByPrimaryKey(passwordPolicyId);
225 
226         if (passwordPolicy == null) {
227             if (_log.isWarnEnabled()) {
228                 _log.warn("No PasswordPolicy exists with the primary key " +
229                     passwordPolicyId);
230             }
231 
232             throw new NoSuchPasswordPolicyException(
233                 "No PasswordPolicy exists with the primary key " +
234                 passwordPolicyId);
235         }
236 
237         return passwordPolicy;
238     }
239 
240     public PasswordPolicy fetchByPrimaryKey(long passwordPolicyId)
241         throws SystemException {
242         Session session = null;
243 
244         try {
245             session = openSession();
246 
247             return (PasswordPolicy)session.get(PasswordPolicyImpl.class,
248                 new Long(passwordPolicyId));
249         }
250         catch (Exception e) {
251             throw processException(e);
252         }
253         finally {
254             closeSession(session);
255         }
256     }
257 
258     public PasswordPolicy findByC_DP(long companyId, boolean defaultPolicy)
259         throws NoSuchPasswordPolicyException, SystemException {
260         PasswordPolicy passwordPolicy = fetchByC_DP(companyId, defaultPolicy);
261 
262         if (passwordPolicy == null) {
263             StringBuilder msg = new StringBuilder();
264 
265             msg.append("No PasswordPolicy exists with the key {");
266 
267             msg.append("companyId=" + companyId);
268 
269             msg.append(", ");
270             msg.append("defaultPolicy=" + defaultPolicy);
271 
272             msg.append(StringPool.CLOSE_CURLY_BRACE);
273 
274             if (_log.isWarnEnabled()) {
275                 _log.warn(msg.toString());
276             }
277 
278             throw new NoSuchPasswordPolicyException(msg.toString());
279         }
280 
281         return passwordPolicy;
282     }
283 
284     public PasswordPolicy fetchByC_DP(long companyId, boolean defaultPolicy)
285         throws SystemException {
286         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
287         String finderClassName = PasswordPolicy.class.getName();
288         String finderMethodName = "fetchByC_DP";
289         String[] finderParams = new String[] {
290                 Long.class.getName(), Boolean.class.getName()
291             };
292         Object[] finderArgs = new Object[] {
293                 new Long(companyId), Boolean.valueOf(defaultPolicy)
294             };
295 
296         Object result = null;
297 
298         if (finderClassNameCacheEnabled) {
299             result = FinderCacheUtil.getResult(finderClassName,
300                     finderMethodName, finderParams, finderArgs, this);
301         }
302 
303         if (result == null) {
304             Session session = null;
305 
306             try {
307                 session = openSession();
308 
309                 StringBuilder query = new StringBuilder();
310 
311                 query.append(
312                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
313 
314                 query.append("companyId = ?");
315 
316                 query.append(" AND ");
317 
318                 query.append("defaultPolicy = ?");
319 
320                 query.append(" ");
321 
322                 Query q = session.createQuery(query.toString());
323 
324                 QueryPos qPos = QueryPos.getInstance(q);
325 
326                 qPos.add(companyId);
327 
328                 qPos.add(defaultPolicy);
329 
330                 List<PasswordPolicy> list = q.list();
331 
332                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
333                     finderClassName, finderMethodName, finderParams,
334                     finderArgs, list);
335 
336                 if (list.size() == 0) {
337                     return null;
338                 }
339                 else {
340                     return list.get(0);
341                 }
342             }
343             catch (Exception e) {
344                 throw processException(e);
345             }
346             finally {
347                 closeSession(session);
348             }
349         }
350         else {
351             List<PasswordPolicy> list = (List<PasswordPolicy>)result;
352 
353             if (list.size() == 0) {
354                 return null;
355             }
356             else {
357                 return list.get(0);
358             }
359         }
360     }
361 
362     public PasswordPolicy findByC_N(long companyId, String name)
363         throws NoSuchPasswordPolicyException, SystemException {
364         PasswordPolicy passwordPolicy = fetchByC_N(companyId, name);
365 
366         if (passwordPolicy == null) {
367             StringBuilder msg = new StringBuilder();
368 
369             msg.append("No PasswordPolicy exists with the key {");
370 
371             msg.append("companyId=" + companyId);
372 
373             msg.append(", ");
374             msg.append("name=" + name);
375 
376             msg.append(StringPool.CLOSE_CURLY_BRACE);
377 
378             if (_log.isWarnEnabled()) {
379                 _log.warn(msg.toString());
380             }
381 
382             throw new NoSuchPasswordPolicyException(msg.toString());
383         }
384 
385         return passwordPolicy;
386     }
387 
388     public PasswordPolicy fetchByC_N(long companyId, String name)
389         throws SystemException {
390         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
391         String finderClassName = PasswordPolicy.class.getName();
392         String finderMethodName = "fetchByC_N";
393         String[] finderParams = new String[] {
394                 Long.class.getName(), String.class.getName()
395             };
396         Object[] finderArgs = new Object[] { new Long(companyId), name };
397 
398         Object result = null;
399 
400         if (finderClassNameCacheEnabled) {
401             result = FinderCacheUtil.getResult(finderClassName,
402                     finderMethodName, finderParams, finderArgs, this);
403         }
404 
405         if (result == null) {
406             Session session = null;
407 
408             try {
409                 session = openSession();
410 
411                 StringBuilder query = new StringBuilder();
412 
413                 query.append(
414                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
415 
416                 query.append("companyId = ?");
417 
418                 query.append(" AND ");
419 
420                 if (name == null) {
421                     query.append("name IS NULL");
422                 }
423                 else {
424                     query.append("name = ?");
425                 }
426 
427                 query.append(" ");
428 
429                 Query q = session.createQuery(query.toString());
430 
431                 QueryPos qPos = QueryPos.getInstance(q);
432 
433                 qPos.add(companyId);
434 
435                 if (name != null) {
436                     qPos.add(name);
437                 }
438 
439                 List<PasswordPolicy> list = q.list();
440 
441                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
442                     finderClassName, finderMethodName, finderParams,
443                     finderArgs, list);
444 
445                 if (list.size() == 0) {
446                     return null;
447                 }
448                 else {
449                     return list.get(0);
450                 }
451             }
452             catch (Exception e) {
453                 throw processException(e);
454             }
455             finally {
456                 closeSession(session);
457             }
458         }
459         else {
460             List<PasswordPolicy> list = (List<PasswordPolicy>)result;
461 
462             if (list.size() == 0) {
463                 return null;
464             }
465             else {
466                 return list.get(0);
467             }
468         }
469     }
470 
471     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
472         throws SystemException {
473         Session session = null;
474 
475         try {
476             session = openSession();
477 
478             dynamicQuery.compile(session);
479 
480             return dynamicQuery.list();
481         }
482         catch (Exception e) {
483             throw processException(e);
484         }
485         finally {
486             closeSession(session);
487         }
488     }
489 
490     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
491         int start, int end) throws SystemException {
492         Session session = null;
493 
494         try {
495             session = openSession();
496 
497             dynamicQuery.setLimit(start, end);
498 
499             dynamicQuery.compile(session);
500 
501             return dynamicQuery.list();
502         }
503         catch (Exception e) {
504             throw processException(e);
505         }
506         finally {
507             closeSession(session);
508         }
509     }
510 
511     public List<PasswordPolicy> findAll() throws SystemException {
512         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
513     }
514 
515     public List<PasswordPolicy> findAll(int start, int end)
516         throws SystemException {
517         return findAll(start, end, null);
518     }
519 
520     public List<PasswordPolicy> findAll(int start, int end,
521         OrderByComparator obc) throws SystemException {
522         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
523         String finderClassName = PasswordPolicy.class.getName();
524         String finderMethodName = "findAll";
525         String[] finderParams = new String[] {
526                 "java.lang.Integer", "java.lang.Integer",
527                 "com.liferay.portal.kernel.util.OrderByComparator"
528             };
529         Object[] finderArgs = new Object[] {
530                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
531             };
532 
533         Object result = null;
534 
535         if (finderClassNameCacheEnabled) {
536             result = FinderCacheUtil.getResult(finderClassName,
537                     finderMethodName, finderParams, finderArgs, this);
538         }
539 
540         if (result == null) {
541             Session session = null;
542 
543             try {
544                 session = openSession();
545 
546                 StringBuilder query = new StringBuilder();
547 
548                 query.append("FROM com.liferay.portal.model.PasswordPolicy ");
549 
550                 if (obc != null) {
551                     query.append("ORDER BY ");
552                     query.append(obc.getOrderBy());
553                 }
554 
555                 Query q = session.createQuery(query.toString());
556 
557                 List<PasswordPolicy> list = null;
558 
559                 if (obc == null) {
560                     list = (List<PasswordPolicy>)QueryUtil.list(q,
561                             getDialect(), start, end, false);
562 
563                     Collections.sort(list);
564                 }
565                 else {
566                     list = (List<PasswordPolicy>)QueryUtil.list(q,
567                             getDialect(), start, end);
568                 }
569 
570                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
571                     finderClassName, finderMethodName, finderParams,
572                     finderArgs, list);
573 
574                 return list;
575             }
576             catch (Exception e) {
577                 throw processException(e);
578             }
579             finally {
580                 closeSession(session);
581             }
582         }
583         else {
584             return (List<PasswordPolicy>)result;
585         }
586     }
587 
588     public void removeByC_DP(long companyId, boolean defaultPolicy)
589         throws NoSuchPasswordPolicyException, SystemException {
590         PasswordPolicy passwordPolicy = findByC_DP(companyId, defaultPolicy);
591 
592         remove(passwordPolicy);
593     }
594 
595     public void removeByC_N(long companyId, String name)
596         throws NoSuchPasswordPolicyException, SystemException {
597         PasswordPolicy passwordPolicy = findByC_N(companyId, name);
598 
599         remove(passwordPolicy);
600     }
601 
602     public void removeAll() throws SystemException {
603         for (PasswordPolicy passwordPolicy : findAll()) {
604             remove(passwordPolicy);
605         }
606     }
607 
608     public int countByC_DP(long companyId, boolean defaultPolicy)
609         throws SystemException {
610         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
611         String finderClassName = PasswordPolicy.class.getName();
612         String finderMethodName = "countByC_DP";
613         String[] finderParams = new String[] {
614                 Long.class.getName(), Boolean.class.getName()
615             };
616         Object[] finderArgs = new Object[] {
617                 new Long(companyId), Boolean.valueOf(defaultPolicy)
618             };
619 
620         Object result = null;
621 
622         if (finderClassNameCacheEnabled) {
623             result = FinderCacheUtil.getResult(finderClassName,
624                     finderMethodName, finderParams, finderArgs, this);
625         }
626 
627         if (result == null) {
628             Session session = null;
629 
630             try {
631                 session = openSession();
632 
633                 StringBuilder query = new StringBuilder();
634 
635                 query.append("SELECT COUNT(*) ");
636                 query.append(
637                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
638 
639                 query.append("companyId = ?");
640 
641                 query.append(" AND ");
642 
643                 query.append("defaultPolicy = ?");
644 
645                 query.append(" ");
646 
647                 Query q = session.createQuery(query.toString());
648 
649                 QueryPos qPos = QueryPos.getInstance(q);
650 
651                 qPos.add(companyId);
652 
653                 qPos.add(defaultPolicy);
654 
655                 Long count = null;
656 
657                 Iterator<Long> itr = q.list().iterator();
658 
659                 if (itr.hasNext()) {
660                     count = itr.next();
661                 }
662 
663                 if (count == null) {
664                     count = new Long(0);
665                 }
666 
667                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
668                     finderClassName, finderMethodName, finderParams,
669                     finderArgs, count);
670 
671                 return count.intValue();
672             }
673             catch (Exception e) {
674                 throw processException(e);
675             }
676             finally {
677                 closeSession(session);
678             }
679         }
680         else {
681             return ((Long)result).intValue();
682         }
683     }
684 
685     public int countByC_N(long companyId, String name)
686         throws SystemException {
687         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
688         String finderClassName = PasswordPolicy.class.getName();
689         String finderMethodName = "countByC_N";
690         String[] finderParams = new String[] {
691                 Long.class.getName(), String.class.getName()
692             };
693         Object[] finderArgs = new Object[] { new Long(companyId), name };
694 
695         Object result = null;
696 
697         if (finderClassNameCacheEnabled) {
698             result = FinderCacheUtil.getResult(finderClassName,
699                     finderMethodName, finderParams, finderArgs, this);
700         }
701 
702         if (result == null) {
703             Session session = null;
704 
705             try {
706                 session = openSession();
707 
708                 StringBuilder query = new StringBuilder();
709 
710                 query.append("SELECT COUNT(*) ");
711                 query.append(
712                     "FROM com.liferay.portal.model.PasswordPolicy WHERE ");
713 
714                 query.append("companyId = ?");
715 
716                 query.append(" AND ");
717 
718                 if (name == null) {
719                     query.append("name IS NULL");
720                 }
721                 else {
722                     query.append("name = ?");
723                 }
724 
725                 query.append(" ");
726 
727                 Query q = session.createQuery(query.toString());
728 
729                 QueryPos qPos = QueryPos.getInstance(q);
730 
731                 qPos.add(companyId);
732 
733                 if (name != null) {
734                     qPos.add(name);
735                 }
736 
737                 Long count = null;
738 
739                 Iterator<Long> itr = q.list().iterator();
740 
741                 if (itr.hasNext()) {
742                     count = itr.next();
743                 }
744 
745                 if (count == null) {
746                     count = new Long(0);
747                 }
748 
749                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
750                     finderClassName, finderMethodName, finderParams,
751                     finderArgs, count);
752 
753                 return count.intValue();
754             }
755             catch (Exception e) {
756                 throw processException(e);
757             }
758             finally {
759                 closeSession(session);
760             }
761         }
762         else {
763             return ((Long)result).intValue();
764         }
765     }
766 
767     public int countAll() throws SystemException {
768         boolean finderClassNameCacheEnabled = PasswordPolicyModelImpl.CACHE_ENABLED;
769         String finderClassName = PasswordPolicy.class.getName();
770         String finderMethodName = "countAll";
771         String[] finderParams = new String[] {  };
772         Object[] finderArgs = new Object[] {  };
773 
774         Object result = null;
775 
776         if (finderClassNameCacheEnabled) {
777             result = FinderCacheUtil.getResult(finderClassName,
778                     finderMethodName, finderParams, finderArgs, this);
779         }
780 
781         if (result == null) {
782             Session session = null;
783 
784             try {
785                 session = openSession();
786 
787                 Query q = session.createQuery(
788                         "SELECT COUNT(*) FROM com.liferay.portal.model.PasswordPolicy");
789 
790                 Long count = null;
791 
792                 Iterator<Long> itr = q.list().iterator();
793 
794                 if (itr.hasNext()) {
795                     count = itr.next();
796                 }
797 
798                 if (count == null) {
799                     count = new Long(0);
800                 }
801 
802                 FinderCacheUtil.putResult(finderClassNameCacheEnabled,
803                     finderClassName, finderMethodName, finderParams,
804                     finderArgs, count);
805 
806                 return count.intValue();
807             }
808             catch (Exception e) {
809                 throw processException(e);
810             }
811             finally {
812                 closeSession(session);
813             }
814         }
815         else {
816             return ((Long)result).intValue();
817         }
818     }
819 
820     public void afterPropertiesSet() {
821         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
822                     com.liferay.portal.util.PropsUtil.get(
823                         "value.object.listener.com.liferay.portal.model.PasswordPolicy")));
824 
825         if (listenerClassNames.length > 0) {
826             try {
827                 List<ModelListener> listenersList = new ArrayList<ModelListener>();
828 
829                 for (String listenerClassName : listenerClassNames) {
830                     listenersList.add((ModelListener)Class.forName(
831                             listenerClassName).newInstance());
832                 }
833 
834                 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
835             }
836             catch (Exception e) {
837                 _log.error(e);
838             }
839         }
840     }
841 
842     private static Log _log = LogFactoryUtil.getLog(PasswordPolicyPersistenceImpl.class);
843 }