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