1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions 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.NoSuchServiceComponentException;
26  import com.liferay.portal.SystemException;
27  import com.liferay.portal.kernel.dao.DynamicQuery;
28  import com.liferay.portal.kernel.dao.DynamicQueryInitializer;
29  import com.liferay.portal.kernel.util.GetterUtil;
30  import com.liferay.portal.kernel.util.OrderByComparator;
31  import com.liferay.portal.kernel.util.StringMaker;
32  import com.liferay.portal.kernel.util.StringPool;
33  import com.liferay.portal.kernel.util.Validator;
34  import com.liferay.portal.model.ModelListener;
35  import com.liferay.portal.model.ServiceComponent;
36  import com.liferay.portal.model.impl.ServiceComponentImpl;
37  import com.liferay.portal.model.impl.ServiceComponentModelImpl;
38  import com.liferay.portal.spring.hibernate.FinderCache;
39  import com.liferay.portal.spring.hibernate.HibernateUtil;
40  import com.liferay.portal.util.PropsUtil;
41  
42  import com.liferay.util.dao.hibernate.QueryUtil;
43  
44  import org.apache.commons.logging.Log;
45  import org.apache.commons.logging.LogFactory;
46  
47  import org.hibernate.Query;
48  import org.hibernate.Session;
49  
50  import java.util.Collections;
51  import java.util.Iterator;
52  import java.util.List;
53  
54  /**
55   * <a href="ServiceComponentPersistenceImpl.java.html"><b><i>View Source</i></b></a>
56   *
57   * @author Brian Wing Shun Chan
58   *
59   */
60  public class ServiceComponentPersistenceImpl extends BasePersistence
61      implements ServiceComponentPersistence {
62      public ServiceComponent create(long serviceComponentId) {
63          ServiceComponent serviceComponent = new ServiceComponentImpl();
64  
65          serviceComponent.setNew(true);
66          serviceComponent.setPrimaryKey(serviceComponentId);
67  
68          return serviceComponent;
69      }
70  
71      public ServiceComponent remove(long serviceComponentId)
72          throws NoSuchServiceComponentException, SystemException {
73          Session session = null;
74  
75          try {
76              session = openSession();
77  
78              ServiceComponent serviceComponent = (ServiceComponent)session.get(ServiceComponentImpl.class,
79                      new Long(serviceComponentId));
80  
81              if (serviceComponent == null) {
82                  if (_log.isWarnEnabled()) {
83                      _log.warn(
84                          "No ServiceComponent exists with the primary key " +
85                          serviceComponentId);
86                  }
87  
88                  throw new NoSuchServiceComponentException(
89                      "No ServiceComponent exists with the primary key " +
90                      serviceComponentId);
91              }
92  
93              return remove(serviceComponent);
94          }
95          catch (NoSuchServiceComponentException nsee) {
96              throw nsee;
97          }
98          catch (Exception e) {
99              throw HibernateUtil.processException(e);
100         }
101         finally {
102             closeSession(session);
103         }
104     }
105 
106     public ServiceComponent remove(ServiceComponent serviceComponent)
107         throws SystemException {
108         ModelListener listener = _getListener();
109 
110         if (listener != null) {
111             listener.onBeforeRemove(serviceComponent);
112         }
113 
114         serviceComponent = removeImpl(serviceComponent);
115 
116         if (listener != null) {
117             listener.onAfterRemove(serviceComponent);
118         }
119 
120         return serviceComponent;
121     }
122 
123     protected ServiceComponent removeImpl(ServiceComponent serviceComponent)
124         throws SystemException {
125         Session session = null;
126 
127         try {
128             session = openSession();
129 
130             session.delete(serviceComponent);
131 
132             session.flush();
133 
134             return serviceComponent;
135         }
136         catch (Exception e) {
137             throw HibernateUtil.processException(e);
138         }
139         finally {
140             closeSession(session);
141 
142             FinderCache.clearCache(ServiceComponent.class.getName());
143         }
144     }
145 
146     public ServiceComponent update(ServiceComponent serviceComponent)
147         throws SystemException {
148         return update(serviceComponent, false);
149     }
150 
151     public ServiceComponent update(ServiceComponent serviceComponent,
152         boolean merge) throws SystemException {
153         ModelListener listener = _getListener();
154 
155         boolean isNew = serviceComponent.isNew();
156 
157         if (listener != null) {
158             if (isNew) {
159                 listener.onBeforeCreate(serviceComponent);
160             }
161             else {
162                 listener.onBeforeUpdate(serviceComponent);
163             }
164         }
165 
166         serviceComponent = updateImpl(serviceComponent, merge);
167 
168         if (listener != null) {
169             if (isNew) {
170                 listener.onAfterCreate(serviceComponent);
171             }
172             else {
173                 listener.onAfterUpdate(serviceComponent);
174             }
175         }
176 
177         return serviceComponent;
178     }
179 
180     public ServiceComponent updateImpl(
181         com.liferay.portal.model.ServiceComponent serviceComponent,
182         boolean merge) throws SystemException {
183         Session session = null;
184 
185         try {
186             session = openSession();
187 
188             if (merge) {
189                 session.merge(serviceComponent);
190             }
191             else {
192                 if (serviceComponent.isNew()) {
193                     session.save(serviceComponent);
194                 }
195             }
196 
197             session.flush();
198 
199             serviceComponent.setNew(false);
200 
201             return serviceComponent;
202         }
203         catch (Exception e) {
204             throw HibernateUtil.processException(e);
205         }
206         finally {
207             closeSession(session);
208 
209             FinderCache.clearCache(ServiceComponent.class.getName());
210         }
211     }
212 
213     public ServiceComponent findByPrimaryKey(long serviceComponentId)
214         throws NoSuchServiceComponentException, SystemException {
215         ServiceComponent serviceComponent = fetchByPrimaryKey(serviceComponentId);
216 
217         if (serviceComponent == null) {
218             if (_log.isWarnEnabled()) {
219                 _log.warn("No ServiceComponent exists with the primary key " +
220                     serviceComponentId);
221             }
222 
223             throw new NoSuchServiceComponentException(
224                 "No ServiceComponent exists with the primary key " +
225                 serviceComponentId);
226         }
227 
228         return serviceComponent;
229     }
230 
231     public ServiceComponent fetchByPrimaryKey(long serviceComponentId)
232         throws SystemException {
233         Session session = null;
234 
235         try {
236             session = openSession();
237 
238             return (ServiceComponent)session.get(ServiceComponentImpl.class,
239                 new Long(serviceComponentId));
240         }
241         catch (Exception e) {
242             throw HibernateUtil.processException(e);
243         }
244         finally {
245             closeSession(session);
246         }
247     }
248 
249     public List findByBuildNamespace(String buildNamespace)
250         throws SystemException {
251         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
252         String finderClassName = ServiceComponent.class.getName();
253         String finderMethodName = "findByBuildNamespace";
254         String[] finderParams = new String[] { String.class.getName() };
255         Object[] finderArgs = new Object[] { buildNamespace };
256 
257         Object result = null;
258 
259         if (finderClassNameCacheEnabled) {
260             result = FinderCache.getResult(finderClassName, finderMethodName,
261                     finderParams, finderArgs, getSessionFactory());
262         }
263 
264         if (result == null) {
265             Session session = null;
266 
267             try {
268                 session = openSession();
269 
270                 StringMaker query = new StringMaker();
271 
272                 query.append(
273                     "FROM com.liferay.portal.model.ServiceComponent WHERE ");
274 
275                 if (buildNamespace == null) {
276                     query.append("buildNamespace IS NULL");
277                 }
278                 else {
279                     query.append("buildNamespace = ?");
280                 }
281 
282                 query.append(" ");
283 
284                 query.append("ORDER BY ");
285 
286                 query.append("buildNamespace DESC, ");
287                 query.append("buildNumber DESC");
288 
289                 Query q = session.createQuery(query.toString());
290 
291                 int queryPos = 0;
292 
293                 if (buildNamespace != null) {
294                     q.setString(queryPos++, buildNamespace);
295                 }
296 
297                 List list = q.list();
298 
299                 FinderCache.putResult(finderClassNameCacheEnabled,
300                     finderClassName, finderMethodName, finderParams,
301                     finderArgs, list);
302 
303                 return list;
304             }
305             catch (Exception e) {
306                 throw HibernateUtil.processException(e);
307             }
308             finally {
309                 closeSession(session);
310             }
311         }
312         else {
313             return (List)result;
314         }
315     }
316 
317     public List findByBuildNamespace(String buildNamespace, int begin, int end)
318         throws SystemException {
319         return findByBuildNamespace(buildNamespace, begin, end, null);
320     }
321 
322     public List findByBuildNamespace(String buildNamespace, int begin, int end,
323         OrderByComparator obc) throws SystemException {
324         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
325         String finderClassName = ServiceComponent.class.getName();
326         String finderMethodName = "findByBuildNamespace";
327         String[] finderParams = new String[] {
328                 String.class.getName(),
329                 
330                 "java.lang.Integer", "java.lang.Integer",
331                 "com.liferay.portal.kernel.util.OrderByComparator"
332             };
333         Object[] finderArgs = new Object[] {
334                 buildNamespace,
335                 
336                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
337             };
338 
339         Object result = null;
340 
341         if (finderClassNameCacheEnabled) {
342             result = FinderCache.getResult(finderClassName, finderMethodName,
343                     finderParams, finderArgs, getSessionFactory());
344         }
345 
346         if (result == null) {
347             Session session = null;
348 
349             try {
350                 session = openSession();
351 
352                 StringMaker query = new StringMaker();
353 
354                 query.append(
355                     "FROM com.liferay.portal.model.ServiceComponent WHERE ");
356 
357                 if (buildNamespace == null) {
358                     query.append("buildNamespace IS NULL");
359                 }
360                 else {
361                     query.append("buildNamespace = ?");
362                 }
363 
364                 query.append(" ");
365 
366                 if (obc != null) {
367                     query.append("ORDER BY ");
368                     query.append(obc.getOrderBy());
369                 }
370 
371                 else {
372                     query.append("ORDER BY ");
373 
374                     query.append("buildNamespace DESC, ");
375                     query.append("buildNumber DESC");
376                 }
377 
378                 Query q = session.createQuery(query.toString());
379 
380                 int queryPos = 0;
381 
382                 if (buildNamespace != null) {
383                     q.setString(queryPos++, buildNamespace);
384                 }
385 
386                 List list = QueryUtil.list(q, getDialect(), begin, end);
387 
388                 FinderCache.putResult(finderClassNameCacheEnabled,
389                     finderClassName, finderMethodName, finderParams,
390                     finderArgs, list);
391 
392                 return list;
393             }
394             catch (Exception e) {
395                 throw HibernateUtil.processException(e);
396             }
397             finally {
398                 closeSession(session);
399             }
400         }
401         else {
402             return (List)result;
403         }
404     }
405 
406     public ServiceComponent findByBuildNamespace_First(String buildNamespace,
407         OrderByComparator obc)
408         throws NoSuchServiceComponentException, SystemException {
409         List list = findByBuildNamespace(buildNamespace, 0, 1, obc);
410 
411         if (list.size() == 0) {
412             StringMaker msg = new StringMaker();
413 
414             msg.append("No ServiceComponent exists with the key {");
415 
416             msg.append("buildNamespace=" + buildNamespace);
417 
418             msg.append(StringPool.CLOSE_CURLY_BRACE);
419 
420             throw new NoSuchServiceComponentException(msg.toString());
421         }
422         else {
423             return (ServiceComponent)list.get(0);
424         }
425     }
426 
427     public ServiceComponent findByBuildNamespace_Last(String buildNamespace,
428         OrderByComparator obc)
429         throws NoSuchServiceComponentException, SystemException {
430         int count = countByBuildNamespace(buildNamespace);
431 
432         List list = findByBuildNamespace(buildNamespace, count - 1, count, obc);
433 
434         if (list.size() == 0) {
435             StringMaker msg = new StringMaker();
436 
437             msg.append("No ServiceComponent exists with the key {");
438 
439             msg.append("buildNamespace=" + buildNamespace);
440 
441             msg.append(StringPool.CLOSE_CURLY_BRACE);
442 
443             throw new NoSuchServiceComponentException(msg.toString());
444         }
445         else {
446             return (ServiceComponent)list.get(0);
447         }
448     }
449 
450     public ServiceComponent[] findByBuildNamespace_PrevAndNext(
451         long serviceComponentId, String buildNamespace, OrderByComparator obc)
452         throws NoSuchServiceComponentException, SystemException {
453         ServiceComponent serviceComponent = findByPrimaryKey(serviceComponentId);
454 
455         int count = countByBuildNamespace(buildNamespace);
456 
457         Session session = null;
458 
459         try {
460             session = openSession();
461 
462             StringMaker query = new StringMaker();
463 
464             query.append(
465                 "FROM com.liferay.portal.model.ServiceComponent WHERE ");
466 
467             if (buildNamespace == null) {
468                 query.append("buildNamespace IS NULL");
469             }
470             else {
471                 query.append("buildNamespace = ?");
472             }
473 
474             query.append(" ");
475 
476             if (obc != null) {
477                 query.append("ORDER BY ");
478                 query.append(obc.getOrderBy());
479             }
480 
481             else {
482                 query.append("ORDER BY ");
483 
484                 query.append("buildNamespace DESC, ");
485                 query.append("buildNumber DESC");
486             }
487 
488             Query q = session.createQuery(query.toString());
489 
490             int queryPos = 0;
491 
492             if (buildNamespace != null) {
493                 q.setString(queryPos++, buildNamespace);
494             }
495 
496             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
497                     serviceComponent);
498 
499             ServiceComponent[] array = new ServiceComponentImpl[3];
500 
501             array[0] = (ServiceComponent)objArray[0];
502             array[1] = (ServiceComponent)objArray[1];
503             array[2] = (ServiceComponent)objArray[2];
504 
505             return array;
506         }
507         catch (Exception e) {
508             throw HibernateUtil.processException(e);
509         }
510         finally {
511             closeSession(session);
512         }
513     }
514 
515     public ServiceComponent findByBNS_BNU(String buildNamespace,
516         long buildNumber)
517         throws NoSuchServiceComponentException, SystemException {
518         ServiceComponent serviceComponent = fetchByBNS_BNU(buildNamespace,
519                 buildNumber);
520 
521         if (serviceComponent == null) {
522             StringMaker msg = new StringMaker();
523 
524             msg.append("No ServiceComponent exists with the key {");
525 
526             msg.append("buildNamespace=" + buildNamespace);
527 
528             msg.append(", ");
529             msg.append("buildNumber=" + buildNumber);
530 
531             msg.append(StringPool.CLOSE_CURLY_BRACE);
532 
533             if (_log.isWarnEnabled()) {
534                 _log.warn(msg.toString());
535             }
536 
537             throw new NoSuchServiceComponentException(msg.toString());
538         }
539 
540         return serviceComponent;
541     }
542 
543     public ServiceComponent fetchByBNS_BNU(String buildNamespace,
544         long buildNumber) throws SystemException {
545         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
546         String finderClassName = ServiceComponent.class.getName();
547         String finderMethodName = "fetchByBNS_BNU";
548         String[] finderParams = new String[] {
549                 String.class.getName(), Long.class.getName()
550             };
551         Object[] finderArgs = new Object[] { buildNamespace, new Long(buildNumber) };
552 
553         Object result = null;
554 
555         if (finderClassNameCacheEnabled) {
556             result = FinderCache.getResult(finderClassName, finderMethodName,
557                     finderParams, finderArgs, getSessionFactory());
558         }
559 
560         if (result == null) {
561             Session session = null;
562 
563             try {
564                 session = openSession();
565 
566                 StringMaker query = new StringMaker();
567 
568                 query.append(
569                     "FROM com.liferay.portal.model.ServiceComponent WHERE ");
570 
571                 if (buildNamespace == null) {
572                     query.append("buildNamespace IS NULL");
573                 }
574                 else {
575                     query.append("buildNamespace = ?");
576                 }
577 
578                 query.append(" AND ");
579 
580                 query.append("buildNumber = ?");
581 
582                 query.append(" ");
583 
584                 query.append("ORDER BY ");
585 
586                 query.append("buildNamespace DESC, ");
587                 query.append("buildNumber DESC");
588 
589                 Query q = session.createQuery(query.toString());
590 
591                 int queryPos = 0;
592 
593                 if (buildNamespace != null) {
594                     q.setString(queryPos++, buildNamespace);
595                 }
596 
597                 q.setLong(queryPos++, buildNumber);
598 
599                 List list = q.list();
600 
601                 FinderCache.putResult(finderClassNameCacheEnabled,
602                     finderClassName, finderMethodName, finderParams,
603                     finderArgs, list);
604 
605                 if (list.size() == 0) {
606                     return null;
607                 }
608                 else {
609                     return (ServiceComponent)list.get(0);
610                 }
611             }
612             catch (Exception e) {
613                 throw HibernateUtil.processException(e);
614             }
615             finally {
616                 closeSession(session);
617             }
618         }
619         else {
620             List list = (List)result;
621 
622             if (list.size() == 0) {
623                 return null;
624             }
625             else {
626                 return (ServiceComponent)list.get(0);
627             }
628         }
629     }
630 
631     public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer)
632         throws SystemException {
633         Session session = null;
634 
635         try {
636             session = openSession();
637 
638             DynamicQuery query = queryInitializer.initialize(session);
639 
640             return query.list();
641         }
642         catch (Exception e) {
643             throw HibernateUtil.processException(e);
644         }
645         finally {
646             closeSession(session);
647         }
648     }
649 
650     public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer,
651         int begin, int end) throws SystemException {
652         Session session = null;
653 
654         try {
655             session = openSession();
656 
657             DynamicQuery query = queryInitializer.initialize(session);
658 
659             query.setLimit(begin, end);
660 
661             return query.list();
662         }
663         catch (Exception e) {
664             throw HibernateUtil.processException(e);
665         }
666         finally {
667             closeSession(session);
668         }
669     }
670 
671     public List findAll() throws SystemException {
672         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
673     }
674 
675     public List findAll(int begin, int end) throws SystemException {
676         return findAll(begin, end, null);
677     }
678 
679     public List findAll(int begin, int end, OrderByComparator obc)
680         throws SystemException {
681         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
682         String finderClassName = ServiceComponent.class.getName();
683         String finderMethodName = "findAll";
684         String[] finderParams = new String[] {
685                 "java.lang.Integer", "java.lang.Integer",
686                 "com.liferay.portal.kernel.util.OrderByComparator"
687             };
688         Object[] finderArgs = new Object[] {
689                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
690             };
691 
692         Object result = null;
693 
694         if (finderClassNameCacheEnabled) {
695             result = FinderCache.getResult(finderClassName, finderMethodName,
696                     finderParams, finderArgs, getSessionFactory());
697         }
698 
699         if (result == null) {
700             Session session = null;
701 
702             try {
703                 session = openSession();
704 
705                 StringMaker query = new StringMaker();
706 
707                 query.append("FROM com.liferay.portal.model.ServiceComponent ");
708 
709                 if (obc != null) {
710                     query.append("ORDER BY ");
711                     query.append(obc.getOrderBy());
712                 }
713 
714                 else {
715                     query.append("ORDER BY ");
716 
717                     query.append("buildNamespace DESC, ");
718                     query.append("buildNumber DESC");
719                 }
720 
721                 Query q = session.createQuery(query.toString());
722 
723                 List list = QueryUtil.list(q, getDialect(), begin, end);
724 
725                 if (obc == null) {
726                     Collections.sort(list);
727                 }
728 
729                 FinderCache.putResult(finderClassNameCacheEnabled,
730                     finderClassName, finderMethodName, finderParams,
731                     finderArgs, list);
732 
733                 return list;
734             }
735             catch (Exception e) {
736                 throw HibernateUtil.processException(e);
737             }
738             finally {
739                 closeSession(session);
740             }
741         }
742         else {
743             return (List)result;
744         }
745     }
746 
747     public void removeByBuildNamespace(String buildNamespace)
748         throws SystemException {
749         Iterator itr = findByBuildNamespace(buildNamespace).iterator();
750 
751         while (itr.hasNext()) {
752             ServiceComponent serviceComponent = (ServiceComponent)itr.next();
753 
754             remove(serviceComponent);
755         }
756     }
757 
758     public void removeByBNS_BNU(String buildNamespace, long buildNumber)
759         throws NoSuchServiceComponentException, SystemException {
760         ServiceComponent serviceComponent = findByBNS_BNU(buildNamespace,
761                 buildNumber);
762 
763         remove(serviceComponent);
764     }
765 
766     public void removeAll() throws SystemException {
767         Iterator itr = findAll().iterator();
768 
769         while (itr.hasNext()) {
770             remove((ServiceComponent)itr.next());
771         }
772     }
773 
774     public int countByBuildNamespace(String buildNamespace)
775         throws SystemException {
776         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
777         String finderClassName = ServiceComponent.class.getName();
778         String finderMethodName = "countByBuildNamespace";
779         String[] finderParams = new String[] { String.class.getName() };
780         Object[] finderArgs = new Object[] { buildNamespace };
781 
782         Object result = null;
783 
784         if (finderClassNameCacheEnabled) {
785             result = FinderCache.getResult(finderClassName, finderMethodName,
786                     finderParams, finderArgs, getSessionFactory());
787         }
788 
789         if (result == null) {
790             Session session = null;
791 
792             try {
793                 session = openSession();
794 
795                 StringMaker query = new StringMaker();
796 
797                 query.append("SELECT COUNT(*) ");
798                 query.append(
799                     "FROM com.liferay.portal.model.ServiceComponent WHERE ");
800 
801                 if (buildNamespace == null) {
802                     query.append("buildNamespace IS NULL");
803                 }
804                 else {
805                     query.append("buildNamespace = ?");
806                 }
807 
808                 query.append(" ");
809 
810                 Query q = session.createQuery(query.toString());
811 
812                 int queryPos = 0;
813 
814                 if (buildNamespace != null) {
815                     q.setString(queryPos++, buildNamespace);
816                 }
817 
818                 Long count = null;
819 
820                 Iterator itr = q.list().iterator();
821 
822                 if (itr.hasNext()) {
823                     count = (Long)itr.next();
824                 }
825 
826                 if (count == null) {
827                     count = new Long(0);
828                 }
829 
830                 FinderCache.putResult(finderClassNameCacheEnabled,
831                     finderClassName, finderMethodName, finderParams,
832                     finderArgs, count);
833 
834                 return count.intValue();
835             }
836             catch (Exception e) {
837                 throw HibernateUtil.processException(e);
838             }
839             finally {
840                 closeSession(session);
841             }
842         }
843         else {
844             return ((Long)result).intValue();
845         }
846     }
847 
848     public int countByBNS_BNU(String buildNamespace, long buildNumber)
849         throws SystemException {
850         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
851         String finderClassName = ServiceComponent.class.getName();
852         String finderMethodName = "countByBNS_BNU";
853         String[] finderParams = new String[] {
854                 String.class.getName(), Long.class.getName()
855             };
856         Object[] finderArgs = new Object[] { buildNamespace, new Long(buildNumber) };
857 
858         Object result = null;
859 
860         if (finderClassNameCacheEnabled) {
861             result = FinderCache.getResult(finderClassName, finderMethodName,
862                     finderParams, finderArgs, getSessionFactory());
863         }
864 
865         if (result == null) {
866             Session session = null;
867 
868             try {
869                 session = openSession();
870 
871                 StringMaker query = new StringMaker();
872 
873                 query.append("SELECT COUNT(*) ");
874                 query.append(
875                     "FROM com.liferay.portal.model.ServiceComponent WHERE ");
876 
877                 if (buildNamespace == null) {
878                     query.append("buildNamespace IS NULL");
879                 }
880                 else {
881                     query.append("buildNamespace = ?");
882                 }
883 
884                 query.append(" AND ");
885 
886                 query.append("buildNumber = ?");
887 
888                 query.append(" ");
889 
890                 Query q = session.createQuery(query.toString());
891 
892                 int queryPos = 0;
893 
894                 if (buildNamespace != null) {
895                     q.setString(queryPos++, buildNamespace);
896                 }
897 
898                 q.setLong(queryPos++, buildNumber);
899 
900                 Long count = null;
901 
902                 Iterator itr = q.list().iterator();
903 
904                 if (itr.hasNext()) {
905                     count = (Long)itr.next();
906                 }
907 
908                 if (count == null) {
909                     count = new Long(0);
910                 }
911 
912                 FinderCache.putResult(finderClassNameCacheEnabled,
913                     finderClassName, finderMethodName, finderParams,
914                     finderArgs, count);
915 
916                 return count.intValue();
917             }
918             catch (Exception e) {
919                 throw HibernateUtil.processException(e);
920             }
921             finally {
922                 closeSession(session);
923             }
924         }
925         else {
926             return ((Long)result).intValue();
927         }
928     }
929 
930     public int countAll() throws SystemException {
931         boolean finderClassNameCacheEnabled = ServiceComponentModelImpl.CACHE_ENABLED;
932         String finderClassName = ServiceComponent.class.getName();
933         String finderMethodName = "countAll";
934         String[] finderParams = new String[] {  };
935         Object[] finderArgs = new Object[] {  };
936 
937         Object result = null;
938 
939         if (finderClassNameCacheEnabled) {
940             result = FinderCache.getResult(finderClassName, finderMethodName,
941                     finderParams, finderArgs, getSessionFactory());
942         }
943 
944         if (result == null) {
945             Session session = null;
946 
947             try {
948                 session = openSession();
949 
950                 Query q = session.createQuery(
951                         "SELECT COUNT(*) FROM com.liferay.portal.model.ServiceComponent");
952 
953                 Long count = null;
954 
955                 Iterator itr = q.list().iterator();
956 
957                 if (itr.hasNext()) {
958                     count = (Long)itr.next();
959                 }
960 
961                 if (count == null) {
962                     count = new Long(0);
963                 }
964 
965                 FinderCache.putResult(finderClassNameCacheEnabled,
966                     finderClassName, finderMethodName, finderParams,
967                     finderArgs, count);
968 
969                 return count.intValue();
970             }
971             catch (Exception e) {
972                 throw HibernateUtil.processException(e);
973             }
974             finally {
975                 closeSession(session);
976             }
977         }
978         else {
979             return ((Long)result).intValue();
980         }
981     }
982 
983     protected void initDao() {
984     }
985 
986     private static ModelListener _getListener() {
987         if (Validator.isNotNull(_LISTENER)) {
988             try {
989                 return (ModelListener)Class.forName(_LISTENER).newInstance();
990             }
991             catch (Exception e) {
992                 _log.error(e);
993             }
994         }
995 
996         return null;
997     }
998 
999     private static final String _LISTENER = GetterUtil.getString(PropsUtil.get(
1000                "value.object.listener.com.liferay.portal.model.ServiceComponent"));
1001    private static Log _log = LogFactory.getLog(ServiceComponentPersistenceImpl.class);
1002}