1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
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.kernel.annotation.BeanReference;
20  import com.liferay.portal.kernel.cache.CacheRegistry;
21  import com.liferay.portal.kernel.dao.orm.DynamicQuery;
22  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
23  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
24  import com.liferay.portal.kernel.dao.orm.FinderPath;
25  import com.liferay.portal.kernel.dao.orm.Query;
26  import com.liferay.portal.kernel.dao.orm.QueryPos;
27  import com.liferay.portal.kernel.dao.orm.QueryUtil;
28  import com.liferay.portal.kernel.dao.orm.Session;
29  import com.liferay.portal.kernel.exception.SystemException;
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     public Shard updateImpl(com.liferay.portal.model.Shard shard, boolean merge)
225         throws SystemException {
226         shard = toUnwrappedModel(shard);
227 
228         boolean isNew = shard.isNew();
229 
230         ShardModelImpl shardModelImpl = (ShardModelImpl)shard;
231 
232         Session session = null;
233 
234         try {
235             session = openSession();
236 
237             BatchSessionUtil.update(session, shard, merge);
238 
239             shard.setNew(false);
240         }
241         catch (Exception e) {
242             throw processException(e);
243         }
244         finally {
245             closeSession(session);
246         }
247 
248         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
249 
250         EntityCacheUtil.putResult(ShardModelImpl.ENTITY_CACHE_ENABLED,
251             ShardImpl.class, shard.getPrimaryKey(), shard);
252 
253         if (!isNew &&
254                 (!Validator.equals(shard.getName(),
255                     shardModelImpl.getOriginalName()))) {
256             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_NAME,
257                 new Object[] { shardModelImpl.getOriginalName() });
258         }
259 
260         if (isNew ||
261                 (!Validator.equals(shard.getName(),
262                     shardModelImpl.getOriginalName()))) {
263             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NAME,
264                 new Object[] { shard.getName() }, shard);
265         }
266 
267         if (!isNew &&
268                 ((shard.getClassNameId() != shardModelImpl.getOriginalClassNameId()) ||
269                 (shard.getClassPK() != shardModelImpl.getOriginalClassPK()))) {
270             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_C_C,
271                 new Object[] {
272                     new Long(shardModelImpl.getOriginalClassNameId()),
273                     new Long(shardModelImpl.getOriginalClassPK())
274                 });
275         }
276 
277         if (isNew ||
278                 ((shard.getClassNameId() != shardModelImpl.getOriginalClassNameId()) ||
279                 (shard.getClassPK() != shardModelImpl.getOriginalClassPK()))) {
280             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_C,
281                 new Object[] {
282                     new Long(shard.getClassNameId()),
283                     new Long(shard.getClassPK())
284                 }, shard);
285         }
286 
287         return shard;
288     }
289 
290     protected Shard toUnwrappedModel(Shard shard) {
291         if (shard instanceof ShardImpl) {
292             return shard;
293         }
294 
295         ShardImpl shardImpl = new ShardImpl();
296 
297         shardImpl.setNew(shard.isNew());
298         shardImpl.setPrimaryKey(shard.getPrimaryKey());
299 
300         shardImpl.setShardId(shard.getShardId());
301         shardImpl.setClassNameId(shard.getClassNameId());
302         shardImpl.setClassPK(shard.getClassPK());
303         shardImpl.setName(shard.getName());
304 
305         return shardImpl;
306     }
307 
308     public Shard findByPrimaryKey(Serializable primaryKey)
309         throws NoSuchModelException, SystemException {
310         return findByPrimaryKey(((Long)primaryKey).longValue());
311     }
312 
313     public Shard findByPrimaryKey(long shardId)
314         throws NoSuchShardException, SystemException {
315         Shard shard = fetchByPrimaryKey(shardId);
316 
317         if (shard == null) {
318             if (_log.isWarnEnabled()) {
319                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + shardId);
320             }
321 
322             throw new NoSuchShardException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
323                 shardId);
324         }
325 
326         return shard;
327     }
328 
329     public Shard fetchByPrimaryKey(Serializable primaryKey)
330         throws SystemException {
331         return fetchByPrimaryKey(((Long)primaryKey).longValue());
332     }
333 
334     public Shard fetchByPrimaryKey(long shardId) throws SystemException {
335         Shard shard = (Shard)EntityCacheUtil.getResult(ShardModelImpl.ENTITY_CACHE_ENABLED,
336                 ShardImpl.class, shardId, this);
337 
338         if (shard == null) {
339             Session session = null;
340 
341             try {
342                 session = openSession();
343 
344                 shard = (Shard)session.get(ShardImpl.class, new Long(shardId));
345             }
346             catch (Exception e) {
347                 throw processException(e);
348             }
349             finally {
350                 if (shard != null) {
351                     cacheResult(shard);
352                 }
353 
354                 closeSession(session);
355             }
356         }
357 
358         return shard;
359     }
360 
361     public Shard findByName(String name)
362         throws NoSuchShardException, SystemException {
363         Shard shard = fetchByName(name);
364 
365         if (shard == null) {
366             StringBundler msg = new StringBundler(4);
367 
368             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
369 
370             msg.append("name=");
371             msg.append(name);
372 
373             msg.append(StringPool.CLOSE_CURLY_BRACE);
374 
375             if (_log.isWarnEnabled()) {
376                 _log.warn(msg.toString());
377             }
378 
379             throw new NoSuchShardException(msg.toString());
380         }
381 
382         return shard;
383     }
384 
385     public Shard fetchByName(String name) throws SystemException {
386         return fetchByName(name, true);
387     }
388 
389     public Shard fetchByName(String name, boolean retrieveFromCache)
390         throws SystemException {
391         Object[] finderArgs = new Object[] { name };
392 
393         Object result = null;
394 
395         if (retrieveFromCache) {
396             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_NAME,
397                     finderArgs, this);
398         }
399 
400         if (result == null) {
401             Session session = null;
402 
403             try {
404                 session = openSession();
405 
406                 StringBundler query = new StringBundler(2);
407 
408                 query.append(_SQL_SELECT_SHARD_WHERE);
409 
410                 if (name == null) {
411                     query.append(_FINDER_COLUMN_NAME_NAME_1);
412                 }
413                 else {
414                     if (name.equals(StringPool.BLANK)) {
415                         query.append(_FINDER_COLUMN_NAME_NAME_3);
416                     }
417                     else {
418                         query.append(_FINDER_COLUMN_NAME_NAME_2);
419                     }
420                 }
421 
422                 String sql = query.toString();
423 
424                 Query q = session.createQuery(sql);
425 
426                 QueryPos qPos = QueryPos.getInstance(q);
427 
428                 if (name != null) {
429                     qPos.add(name);
430                 }
431 
432                 List<Shard> list = q.list();
433 
434                 result = list;
435 
436                 Shard shard = null;
437 
438                 if (list.isEmpty()) {
439                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NAME,
440                         finderArgs, list);
441                 }
442                 else {
443                     shard = list.get(0);
444 
445                     cacheResult(shard);
446 
447                     if ((shard.getName() == null) ||
448                             !shard.getName().equals(name)) {
449                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NAME,
450                             finderArgs, shard);
451                     }
452                 }
453 
454                 return shard;
455             }
456             catch (Exception e) {
457                 throw processException(e);
458             }
459             finally {
460                 if (result == null) {
461                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_NAME,
462                         finderArgs, new ArrayList<Shard>());
463                 }
464 
465                 closeSession(session);
466             }
467         }
468         else {
469             if (result instanceof List<?>) {
470                 return null;
471             }
472             else {
473                 return (Shard)result;
474             }
475         }
476     }
477 
478     public Shard findByC_C(long classNameId, long classPK)
479         throws NoSuchShardException, SystemException {
480         Shard shard = fetchByC_C(classNameId, classPK);
481 
482         if (shard == null) {
483             StringBundler msg = new StringBundler(6);
484 
485             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
486 
487             msg.append("classNameId=");
488             msg.append(classNameId);
489 
490             msg.append(", classPK=");
491             msg.append(classPK);
492 
493             msg.append(StringPool.CLOSE_CURLY_BRACE);
494 
495             if (_log.isWarnEnabled()) {
496                 _log.warn(msg.toString());
497             }
498 
499             throw new NoSuchShardException(msg.toString());
500         }
501 
502         return shard;
503     }
504 
505     public Shard fetchByC_C(long classNameId, long classPK)
506         throws SystemException {
507         return fetchByC_C(classNameId, classPK, true);
508     }
509 
510     public Shard fetchByC_C(long classNameId, long classPK,
511         boolean retrieveFromCache) throws SystemException {
512         Object[] finderArgs = new Object[] {
513                 new Long(classNameId), new Long(classPK)
514             };
515 
516         Object result = null;
517 
518         if (retrieveFromCache) {
519             result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_C_C,
520                     finderArgs, this);
521         }
522 
523         if (result == null) {
524             Session session = null;
525 
526             try {
527                 session = openSession();
528 
529                 StringBundler query = new StringBundler(3);
530 
531                 query.append(_SQL_SELECT_SHARD_WHERE);
532 
533                 query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
534 
535                 query.append(_FINDER_COLUMN_C_C_CLASSPK_2);
536 
537                 String sql = query.toString();
538 
539                 Query q = session.createQuery(sql);
540 
541                 QueryPos qPos = QueryPos.getInstance(q);
542 
543                 qPos.add(classNameId);
544 
545                 qPos.add(classPK);
546 
547                 List<Shard> list = q.list();
548 
549                 result = list;
550 
551                 Shard shard = null;
552 
553                 if (list.isEmpty()) {
554                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_C,
555                         finderArgs, list);
556                 }
557                 else {
558                     shard = list.get(0);
559 
560                     cacheResult(shard);
561 
562                     if ((shard.getClassNameId() != classNameId) ||
563                             (shard.getClassPK() != classPK)) {
564                         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_C,
565                             finderArgs, shard);
566                     }
567                 }
568 
569                 return shard;
570             }
571             catch (Exception e) {
572                 throw processException(e);
573             }
574             finally {
575                 if (result == null) {
576                     FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_C_C,
577                         finderArgs, new ArrayList<Shard>());
578                 }
579 
580                 closeSession(session);
581             }
582         }
583         else {
584             if (result instanceof List<?>) {
585                 return null;
586             }
587             else {
588                 return (Shard)result;
589             }
590         }
591     }
592 
593     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery)
594         throws SystemException {
595         Session session = null;
596 
597         try {
598             session = openSession();
599 
600             dynamicQuery.compile(session);
601 
602             return dynamicQuery.list();
603         }
604         catch (Exception e) {
605             throw processException(e);
606         }
607         finally {
608             closeSession(session);
609         }
610     }
611 
612     public List<Object> findWithDynamicQuery(DynamicQuery dynamicQuery,
613         int start, int end) throws SystemException {
614         Session session = null;
615 
616         try {
617             session = openSession();
618 
619             dynamicQuery.setLimit(start, end);
620 
621             dynamicQuery.compile(session);
622 
623             return dynamicQuery.list();
624         }
625         catch (Exception e) {
626             throw processException(e);
627         }
628         finally {
629             closeSession(session);
630         }
631     }
632 
633     public List<Shard> findAll() throws SystemException {
634         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
635     }
636 
637     public List<Shard> findAll(int start, int end) throws SystemException {
638         return findAll(start, end, null);
639     }
640 
641     public List<Shard> findAll(int start, int end, OrderByComparator obc)
642         throws SystemException {
643         Object[] finderArgs = new Object[] {
644                 String.valueOf(start), String.valueOf(end), String.valueOf(obc)
645             };
646 
647         List<Shard> list = (List<Shard>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
648                 finderArgs, this);
649 
650         if (list == null) {
651             Session session = null;
652 
653             try {
654                 session = openSession();
655 
656                 StringBundler query = null;
657                 String sql = null;
658 
659                 if (obc != null) {
660                     query = new StringBundler(2 +
661                             (obc.getOrderByFields().length * 3));
662 
663                     query.append(_SQL_SELECT_SHARD);
664 
665                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS, obc);
666 
667                     sql = query.toString();
668                 }
669 
670                 sql = _SQL_SELECT_SHARD;
671 
672                 Query q = session.createQuery(sql);
673 
674                 if (obc == null) {
675                     list = (List<Shard>)QueryUtil.list(q, getDialect(), start,
676                             end, false);
677 
678                     Collections.sort(list);
679                 }
680                 else {
681                     list = (List<Shard>)QueryUtil.list(q, getDialect(), start,
682                             end);
683                 }
684             }
685             catch (Exception e) {
686                 throw processException(e);
687             }
688             finally {
689                 if (list == null) {
690                     list = new ArrayList<Shard>();
691                 }
692 
693                 cacheResult(list);
694 
695                 FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
696 
697                 closeSession(session);
698             }
699         }
700 
701         return list;
702     }
703 
704     public void removeByName(String name)
705         throws NoSuchShardException, SystemException {
706         Shard shard = findByName(name);
707 
708         remove(shard);
709     }
710 
711     public void removeByC_C(long classNameId, long classPK)
712         throws NoSuchShardException, SystemException {
713         Shard shard = findByC_C(classNameId, classPK);
714 
715         remove(shard);
716     }
717 
718     public void removeAll() throws SystemException {
719         for (Shard shard : findAll()) {
720             remove(shard);
721         }
722     }
723 
724     public int countByName(String name) throws SystemException {
725         Object[] finderArgs = new Object[] { name };
726 
727         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_NAME,
728                 finderArgs, this);
729 
730         if (count == null) {
731             Session session = null;
732 
733             try {
734                 session = openSession();
735 
736                 StringBundler query = new StringBundler(2);
737 
738                 query.append(_SQL_COUNT_SHARD_WHERE);
739 
740                 if (name == null) {
741                     query.append(_FINDER_COLUMN_NAME_NAME_1);
742                 }
743                 else {
744                     if (name.equals(StringPool.BLANK)) {
745                         query.append(_FINDER_COLUMN_NAME_NAME_3);
746                     }
747                     else {
748                         query.append(_FINDER_COLUMN_NAME_NAME_2);
749                     }
750                 }
751 
752                 String sql = query.toString();
753 
754                 Query q = session.createQuery(sql);
755 
756                 QueryPos qPos = QueryPos.getInstance(q);
757 
758                 if (name != null) {
759                     qPos.add(name);
760                 }
761 
762                 count = (Long)q.uniqueResult();
763             }
764             catch (Exception e) {
765                 throw processException(e);
766             }
767             finally {
768                 if (count == null) {
769                     count = Long.valueOf(0);
770                 }
771 
772                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_NAME,
773                     finderArgs, count);
774 
775                 closeSession(session);
776             }
777         }
778 
779         return count.intValue();
780     }
781 
782     public int countByC_C(long classNameId, long classPK)
783         throws SystemException {
784         Object[] finderArgs = new Object[] {
785                 new Long(classNameId), new Long(classPK)
786             };
787 
788         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_C,
789                 finderArgs, this);
790 
791         if (count == null) {
792             Session session = null;
793 
794             try {
795                 session = openSession();
796 
797                 StringBundler query = new StringBundler(3);
798 
799                 query.append(_SQL_COUNT_SHARD_WHERE);
800 
801                 query.append(_FINDER_COLUMN_C_C_CLASSNAMEID_2);
802 
803                 query.append(_FINDER_COLUMN_C_C_CLASSPK_2);
804 
805                 String sql = query.toString();
806 
807                 Query q = session.createQuery(sql);
808 
809                 QueryPos qPos = QueryPos.getInstance(q);
810 
811                 qPos.add(classNameId);
812 
813                 qPos.add(classPK);
814 
815                 count = (Long)q.uniqueResult();
816             }
817             catch (Exception e) {
818                 throw processException(e);
819             }
820             finally {
821                 if (count == null) {
822                     count = Long.valueOf(0);
823                 }
824 
825                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_C, finderArgs,
826                     count);
827 
828                 closeSession(session);
829             }
830         }
831 
832         return count.intValue();
833     }
834 
835     public int countAll() throws SystemException {
836         Object[] finderArgs = new Object[0];
837 
838         Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
839                 finderArgs, this);
840 
841         if (count == null) {
842             Session session = null;
843 
844             try {
845                 session = openSession();
846 
847                 Query q = session.createQuery(_SQL_COUNT_SHARD);
848 
849                 count = (Long)q.uniqueResult();
850             }
851             catch (Exception e) {
852                 throw processException(e);
853             }
854             finally {
855                 if (count == null) {
856                     count = Long.valueOf(0);
857                 }
858 
859                 FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
860                     count);
861 
862                 closeSession(session);
863             }
864         }
865 
866         return count.intValue();
867     }
868 
869     public void afterPropertiesSet() {
870         String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
871                     com.liferay.portal.util.PropsUtil.get(
872                         "value.object.listener.com.liferay.portal.model.Shard")));
873 
874         if (listenerClassNames.length > 0) {
875             try {
876                 List<ModelListener<Shard>> listenersList = new ArrayList<ModelListener<Shard>>();
877 
878                 for (String listenerClassName : listenerClassNames) {
879                     listenersList.add((ModelListener<Shard>)Class.forName(
880                             listenerClassName).newInstance());
881                 }
882 
883                 listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
884             }
885             catch (Exception e) {
886                 _log.error(e);
887             }
888         }
889     }
890 
891     @BeanReference(name = "com.liferay.portal.service.persistence.AccountPersistence")
892     protected com.liferay.portal.service.persistence.AccountPersistence accountPersistence;
893     @BeanReference(name = "com.liferay.portal.service.persistence.AddressPersistence")
894     protected com.liferay.portal.service.persistence.AddressPersistence addressPersistence;
895     @BeanReference(name = "com.liferay.portal.service.persistence.BrowserTrackerPersistence")
896     protected com.liferay.portal.service.persistence.BrowserTrackerPersistence browserTrackerPersistence;
897     @BeanReference(name = "com.liferay.portal.service.persistence.ClassNamePersistence")
898     protected com.liferay.portal.service.persistence.ClassNamePersistence classNamePersistence;
899     @BeanReference(name = "com.liferay.portal.service.persistence.CompanyPersistence")
900     protected com.liferay.portal.service.persistence.CompanyPersistence companyPersistence;
901     @BeanReference(name = "com.liferay.portal.service.persistence.ContactPersistence")
902     protected com.liferay.portal.service.persistence.ContactPersistence contactPersistence;
903     @BeanReference(name = "com.liferay.portal.service.persistence.CountryPersistence")
904     protected com.liferay.portal.service.persistence.CountryPersistence countryPersistence;
905     @BeanReference(name = "com.liferay.portal.service.persistence.EmailAddressPersistence")
906     protected com.liferay.portal.service.persistence.EmailAddressPersistence emailAddressPersistence;
907     @BeanReference(name = "com.liferay.portal.service.persistence.GroupPersistence")
908     protected com.liferay.portal.service.persistence.GroupPersistence groupPersistence;
909     @BeanReference(name = "com.liferay.portal.service.persistence.ImagePersistence")
910     protected com.liferay.portal.service.persistence.ImagePersistence imagePersistence;
911     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPersistence")
912     protected com.liferay.portal.service.persistence.LayoutPersistence layoutPersistence;
913     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutPrototypePersistence")
914     protected com.liferay.portal.service.persistence.LayoutPrototypePersistence layoutPrototypePersistence;
915     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPersistence")
916     protected com.liferay.portal.service.persistence.LayoutSetPersistence layoutSetPersistence;
917     @BeanReference(name = "com.liferay.portal.service.persistence.LayoutSetPrototypePersistence")
918     protected com.liferay.portal.service.persistence.LayoutSetPrototypePersistence layoutSetPrototypePersistence;
919     @BeanReference(name = "com.liferay.portal.service.persistence.ListTypePersistence")
920     protected com.liferay.portal.service.persistence.ListTypePersistence listTypePersistence;
921     @BeanReference(name = "com.liferay.portal.service.persistence.LockPersistence")
922     protected com.liferay.portal.service.persistence.LockPersistence lockPersistence;
923     @BeanReference(name = "com.liferay.portal.service.persistence.MembershipRequestPersistence")
924     protected com.liferay.portal.service.persistence.MembershipRequestPersistence membershipRequestPersistence;
925     @BeanReference(name = "com.liferay.portal.service.persistence.OrganizationPersistence")
926     protected com.liferay.portal.service.persistence.OrganizationPersistence organizationPersistence;
927     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupPermissionPersistence")
928     protected com.liferay.portal.service.persistence.OrgGroupPermissionPersistence orgGroupPermissionPersistence;
929     @BeanReference(name = "com.liferay.portal.service.persistence.OrgGroupRolePersistence")
930     protected com.liferay.portal.service.persistence.OrgGroupRolePersistence orgGroupRolePersistence;
931     @BeanReference(name = "com.liferay.portal.service.persistence.OrgLaborPersistence")
932     protected com.liferay.portal.service.persistence.OrgLaborPersistence orgLaborPersistence;
933     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyPersistence")
934     protected com.liferay.portal.service.persistence.PasswordPolicyPersistence passwordPolicyPersistence;
935     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordPolicyRelPersistence")
936     protected com.liferay.portal.service.persistence.PasswordPolicyRelPersistence passwordPolicyRelPersistence;
937     @BeanReference(name = "com.liferay.portal.service.persistence.PasswordTrackerPersistence")
938     protected com.liferay.portal.service.persistence.PasswordTrackerPersistence passwordTrackerPersistence;
939     @BeanReference(name = "com.liferay.portal.service.persistence.PermissionPersistence")
940     protected com.liferay.portal.service.persistence.PermissionPersistence permissionPersistence;
941     @BeanReference(name = "com.liferay.portal.service.persistence.PhonePersistence")
942     protected com.liferay.portal.service.persistence.PhonePersistence phonePersistence;
943     @BeanReference(name = "com.liferay.portal.service.persistence.PluginSettingPersistence")
944     protected com.liferay.portal.service.persistence.PluginSettingPersistence pluginSettingPersistence;
945     @BeanReference(name = "com.liferay.portal.service.persistence.PortletPersistence")
946     protected com.liferay.portal.service.persistence.PortletPersistence portletPersistence;
947     @BeanReference(name = "com.liferay.portal.service.persistence.PortletItemPersistence")
948     protected com.liferay.portal.service.persistence.PortletItemPersistence portletItemPersistence;
949     @BeanReference(name = "com.liferay.portal.service.persistence.PortletPreferencesPersistence")
950     protected com.liferay.portal.service.persistence.PortletPreferencesPersistence portletPreferencesPersistence;
951     @BeanReference(name = "com.liferay.portal.service.persistence.RegionPersistence")
952     protected com.liferay.portal.service.persistence.RegionPersistence regionPersistence;
953     @BeanReference(name = "com.liferay.portal.service.persistence.ReleasePersistence")
954     protected com.liferay.portal.service.persistence.ReleasePersistence releasePersistence;
955     @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePersistence")
956     protected com.liferay.portal.service.persistence.ResourcePersistence resourcePersistence;
957     @BeanReference(name = "com.liferay.portal.service.persistence.ResourceActionPersistence")
958     protected com.liferay.portal.service.persistence.ResourceActionPersistence resourceActionPersistence;
959     @BeanReference(name = "com.liferay.portal.service.persistence.ResourceCodePersistence")
960     protected com.liferay.portal.service.persistence.ResourceCodePersistence resourceCodePersistence;
961     @BeanReference(name = "com.liferay.portal.service.persistence.ResourcePermissionPersistence")
962     protected com.liferay.portal.service.persistence.ResourcePermissionPersistence resourcePermissionPersistence;
963     @BeanReference(name = "com.liferay.portal.service.persistence.RolePersistence")
964     protected com.liferay.portal.service.persistence.RolePersistence rolePersistence;
965     @BeanReference(name = "com.liferay.portal.service.persistence.ServiceComponentPersistence")
966     protected com.liferay.portal.service.persistence.ServiceComponentPersistence serviceComponentPersistence;
967     @BeanReference(name = "com.liferay.portal.service.persistence.ShardPersistence")
968     protected com.liferay.portal.service.persistence.ShardPersistence shardPersistence;
969     @BeanReference(name = "com.liferay.portal.service.persistence.SubscriptionPersistence")
970     protected com.liferay.portal.service.persistence.SubscriptionPersistence subscriptionPersistence;
971     @BeanReference(name = "com.liferay.portal.service.persistence.UserPersistence")
972     protected com.liferay.portal.service.persistence.UserPersistence userPersistence;
973     @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupPersistence")
974     protected com.liferay.portal.service.persistence.UserGroupPersistence userGroupPersistence;
975     @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupGroupRolePersistence")
976     protected com.liferay.portal.service.persistence.UserGroupGroupRolePersistence userGroupGroupRolePersistence;
977     @BeanReference(name = "com.liferay.portal.service.persistence.UserGroupRolePersistence")
978     protected com.liferay.portal.service.persistence.UserGroupRolePersistence userGroupRolePersistence;
979     @BeanReference(name = "com.liferay.portal.service.persistence.UserIdMapperPersistence")
980     protected com.liferay.portal.service.persistence.UserIdMapperPersistence userIdMapperPersistence;
981     @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPersistence")
982     protected com.liferay.portal.service.persistence.UserTrackerPersistence userTrackerPersistence;
983     @BeanReference(name = "com.liferay.portal.service.persistence.UserTrackerPathPersistence")
984     protected com.liferay.portal.service.persistence.UserTrackerPathPersistence userTrackerPathPersistence;
985     @BeanReference(name = "com.liferay.portal.service.persistence.WebDAVPropsPersistence")
986     protected com.liferay.portal.service.persistence.WebDAVPropsPersistence webDAVPropsPersistence;
987     @BeanReference(name = "com.liferay.portal.service.persistence.WebsitePersistence")
988     protected com.liferay.portal.service.persistence.WebsitePersistence websitePersistence;
989     @BeanReference(name = "com.liferay.portal.service.persistence.WorkflowDefinitionLinkPersistence")
990     protected com.liferay.portal.service.persistence.WorkflowDefinitionLinkPersistence workflowDefinitionLinkPersistence;
991     @BeanReference(name = "com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence")
992     protected com.liferay.portal.service.persistence.WorkflowInstanceLinkPersistence workflowInstanceLinkPersistence;
993     private static final String _SQL_SELECT_SHARD = "SELECT shard FROM Shard shard";
994     private static final String _SQL_SELECT_SHARD_WHERE = "SELECT shard FROM Shard shard WHERE ";
995     private static final String _SQL_COUNT_SHARD = "SELECT COUNT(shard) FROM Shard shard";
996     private static final String _SQL_COUNT_SHARD_WHERE = "SELECT COUNT(shard) FROM Shard shard WHERE ";
997     private static final String _FINDER_COLUMN_NAME_NAME_1 = "shard.name IS NULL";
998     private static final String _FINDER_COLUMN_NAME_NAME_2 = "shard.name = ?";
999     private static final String _FINDER_COLUMN_NAME_NAME_3 = "(shard.name IS NULL OR shard.name = ?)";
1000    private static final String _FINDER_COLUMN_C_C_CLASSNAMEID_2 = "shard.classNameId = ? AND ";
1001    private static final String _FINDER_COLUMN_C_C_CLASSPK_2 = "shard.classPK = ?";
1002    private static final String _ORDER_BY_ENTITY_ALIAS = "shard.";
1003    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No Shard exists with the primary key ";
1004    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No Shard exists with the key {";
1005    private static Log _log = LogFactoryUtil.getLog(ShardPersistenceImpl.class);
1006}