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