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.portlet.asset.service.persistence;
16  
17  import com.liferay.portal.NoSuchModelException;
18  import com.liferay.portal.kernel.annotation.BeanReference;
19  import com.liferay.portal.kernel.cache.CacheRegistry;
20  import com.liferay.portal.kernel.dao.orm.EntityCacheUtil;
21  import com.liferay.portal.kernel.dao.orm.FinderCacheUtil;
22  import com.liferay.portal.kernel.dao.orm.FinderPath;
23  import com.liferay.portal.kernel.dao.orm.Query;
24  import com.liferay.portal.kernel.dao.orm.QueryPos;
25  import com.liferay.portal.kernel.dao.orm.QueryUtil;
26  import com.liferay.portal.kernel.dao.orm.Session;
27  import com.liferay.portal.kernel.exception.SystemException;
28  import com.liferay.portal.kernel.log.Log;
29  import com.liferay.portal.kernel.log.LogFactoryUtil;
30  import com.liferay.portal.kernel.util.GetterUtil;
31  import com.liferay.portal.kernel.util.InstanceFactory;
32  import com.liferay.portal.kernel.util.OrderByComparator;
33  import com.liferay.portal.kernel.util.StringBundler;
34  import com.liferay.portal.kernel.util.StringPool;
35  import com.liferay.portal.kernel.util.StringUtil;
36  import com.liferay.portal.kernel.util.Validator;
37  import com.liferay.portal.model.ModelListener;
38  import com.liferay.portal.service.persistence.BatchSessionUtil;
39  import com.liferay.portal.service.persistence.ResourcePersistence;
40  import com.liferay.portal.service.persistence.UserPersistence;
41  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
42  
43  import com.liferay.portlet.asset.NoSuchTagPropertyException;
44  import com.liferay.portlet.asset.model.AssetTagProperty;
45  import com.liferay.portlet.asset.model.impl.AssetTagPropertyImpl;
46  import com.liferay.portlet.asset.model.impl.AssetTagPropertyModelImpl;
47  
48  import java.io.Serializable;
49  
50  import java.util.ArrayList;
51  import java.util.Collections;
52  import java.util.List;
53  
54  /**
55   * <a href="AssetTagPropertyPersistenceImpl.java.html"><b><i>View Source</i></b></a>
56   *
57   * <p>
58   * ServiceBuilder generated this class. Modifications in this class will be
59   * overwritten the next time is generated.
60   * </p>
61   *
62   * @author    Brian Wing Shun Chan
63   * @see       AssetTagPropertyPersistence
64   * @see       AssetTagPropertyUtil
65   * @generated
66   */
67  public class AssetTagPropertyPersistenceImpl extends BasePersistenceImpl<AssetTagProperty>
68      implements AssetTagPropertyPersistence {
69      public static final String FINDER_CLASS_NAME_ENTITY = AssetTagPropertyImpl.class.getName();
70      public static final String FINDER_CLASS_NAME_LIST = FINDER_CLASS_NAME_ENTITY +
71          ".List";
72      public static final FinderPath FINDER_PATH_FIND_BY_COMPANYID = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
73              AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
74              FINDER_CLASS_NAME_LIST, "findByCompanyId",
75              new String[] {
76                  Long.class.getName(),
77                  
78              "java.lang.Integer", "java.lang.Integer",
79                  "com.liferay.portal.kernel.util.OrderByComparator"
80              });
81      public static final FinderPath FINDER_PATH_COUNT_BY_COMPANYID = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
82              AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
83              FINDER_CLASS_NAME_LIST, "countByCompanyId",
84              new String[] { Long.class.getName() });
85      public static final FinderPath FINDER_PATH_FIND_BY_TAGID = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
86              AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
87              FINDER_CLASS_NAME_LIST, "findByTagId",
88              new String[] {
89                  Long.class.getName(),
90                  
91              "java.lang.Integer", "java.lang.Integer",
92                  "com.liferay.portal.kernel.util.OrderByComparator"
93              });
94      public static final FinderPath FINDER_PATH_COUNT_BY_TAGID = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
95              AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
96              FINDER_CLASS_NAME_LIST, "countByTagId",
97              new String[] { Long.class.getName() });
98      public static final FinderPath FINDER_PATH_FIND_BY_C_K = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
99              AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
100             FINDER_CLASS_NAME_LIST, "findByC_K",
101             new String[] {
102                 Long.class.getName(), String.class.getName(),
103                 
104             "java.lang.Integer", "java.lang.Integer",
105                 "com.liferay.portal.kernel.util.OrderByComparator"
106             });
107     public static final FinderPath FINDER_PATH_COUNT_BY_C_K = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
108             AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
109             FINDER_CLASS_NAME_LIST, "countByC_K",
110             new String[] { Long.class.getName(), String.class.getName() });
111     public static final FinderPath FINDER_PATH_FETCH_BY_T_K = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
112             AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
113             FINDER_CLASS_NAME_ENTITY, "fetchByT_K",
114             new String[] { Long.class.getName(), String.class.getName() });
115     public static final FinderPath FINDER_PATH_COUNT_BY_T_K = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
116             AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
117             FINDER_CLASS_NAME_LIST, "countByT_K",
118             new String[] { Long.class.getName(), String.class.getName() });
119     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
120             AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
121             FINDER_CLASS_NAME_LIST, "findAll", new String[0]);
122     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
123             AssetTagPropertyModelImpl.FINDER_CACHE_ENABLED,
124             FINDER_CLASS_NAME_LIST, "countAll", new String[0]);
125 
126     public void cacheResult(AssetTagProperty assetTagProperty) {
127         EntityCacheUtil.putResult(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
128             AssetTagPropertyImpl.class, assetTagProperty.getPrimaryKey(),
129             assetTagProperty);
130 
131         FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_T_K,
132             new Object[] {
133                 new Long(assetTagProperty.getTagId()),
134                 
135             assetTagProperty.getKey()
136             }, assetTagProperty);
137     }
138 
139     public void cacheResult(List<AssetTagProperty> assetTagProperties) {
140         for (AssetTagProperty assetTagProperty : assetTagProperties) {
141             if (EntityCacheUtil.getResult(
142                         AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
143                         AssetTagPropertyImpl.class,
144                         assetTagProperty.getPrimaryKey(), this) == null) {
145                 cacheResult(assetTagProperty);
146             }
147         }
148     }
149 
150     public void clearCache() {
151         CacheRegistry.clear(AssetTagPropertyImpl.class.getName());
152         EntityCacheUtil.clearCache(AssetTagPropertyImpl.class.getName());
153         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
154         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
155     }
156 
157     public void clearCache(AssetTagProperty assetTagProperty) {
158         EntityCacheUtil.removeResult(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
159             AssetTagPropertyImpl.class, assetTagProperty.getPrimaryKey());
160 
161         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_T_K,
162             new Object[] {
163                 new Long(assetTagProperty.getTagId()),
164                 
165             assetTagProperty.getKey()
166             });
167     }
168 
169     public AssetTagProperty create(long tagPropertyId) {
170         AssetTagProperty assetTagProperty = new AssetTagPropertyImpl();
171 
172         assetTagProperty.setNew(true);
173         assetTagProperty.setPrimaryKey(tagPropertyId);
174 
175         return assetTagProperty;
176     }
177 
178     public AssetTagProperty remove(Serializable primaryKey)
179         throws NoSuchModelException, SystemException {
180         return remove(((Long)primaryKey).longValue());
181     }
182 
183     public AssetTagProperty remove(long tagPropertyId)
184         throws NoSuchTagPropertyException, SystemException {
185         Session session = null;
186 
187         try {
188             session = openSession();
189 
190             AssetTagProperty assetTagProperty = (AssetTagProperty)session.get(AssetTagPropertyImpl.class,
191                     new Long(tagPropertyId));
192 
193             if (assetTagProperty == null) {
194                 if (_log.isWarnEnabled()) {
195                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + tagPropertyId);
196                 }
197 
198                 throw new NoSuchTagPropertyException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
199                     tagPropertyId);
200             }
201 
202             return remove(assetTagProperty);
203         }
204         catch (NoSuchTagPropertyException nsee) {
205             throw nsee;
206         }
207         catch (Exception e) {
208             throw processException(e);
209         }
210         finally {
211             closeSession(session);
212         }
213     }
214 
215     public AssetTagProperty remove(AssetTagProperty assetTagProperty)
216         throws SystemException {
217         for (ModelListener<AssetTagProperty> listener : listeners) {
218             listener.onBeforeRemove(assetTagProperty);
219         }
220 
221         assetTagProperty = removeImpl(assetTagProperty);
222 
223         for (ModelListener<AssetTagProperty> listener : listeners) {
224             listener.onAfterRemove(assetTagProperty);
225         }
226 
227         return assetTagProperty;
228     }
229 
230     protected AssetTagProperty removeImpl(AssetTagProperty assetTagProperty)
231         throws SystemException {
232         assetTagProperty = toUnwrappedModel(assetTagProperty);
233 
234         Session session = null;
235 
236         try {
237             session = openSession();
238 
239             if (assetTagProperty.isCachedModel() ||
240                     BatchSessionUtil.isEnabled()) {
241                 Object staleObject = session.get(AssetTagPropertyImpl.class,
242                         assetTagProperty.getPrimaryKeyObj());
243 
244                 if (staleObject != null) {
245                     session.evict(staleObject);
246                 }
247             }
248 
249             session.delete(assetTagProperty);
250 
251             session.flush();
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         AssetTagPropertyModelImpl assetTagPropertyModelImpl = (AssetTagPropertyModelImpl)assetTagProperty;
263 
264         FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_T_K,
265             new Object[] {
266                 new Long(assetTagPropertyModelImpl.getOriginalTagId()),
267                 
268             assetTagPropertyModelImpl.getOriginalKey()
269             });
270 
271         EntityCacheUtil.removeResult(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
272             AssetTagPropertyImpl.class, assetTagProperty.getPrimaryKey());
273 
274         return assetTagProperty;
275     }
276 
277     public AssetTagProperty updateImpl(
278         com.liferay.portlet.asset.model.AssetTagProperty assetTagProperty,
279         boolean merge) throws SystemException {
280         assetTagProperty = toUnwrappedModel(assetTagProperty);
281 
282         boolean isNew = assetTagProperty.isNew();
283 
284         AssetTagPropertyModelImpl assetTagPropertyModelImpl = (AssetTagPropertyModelImpl)assetTagProperty;
285 
286         Session session = null;
287 
288         try {
289             session = openSession();
290 
291             BatchSessionUtil.update(session, assetTagProperty, merge);
292 
293             assetTagProperty.setNew(false);
294         }
295         catch (Exception e) {
296             throw processException(e);
297         }
298         finally {
299             closeSession(session);
300         }
301 
302         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
303 
304         EntityCacheUtil.putResult(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
305             AssetTagPropertyImpl.class, assetTagProperty.getPrimaryKey(),
306             assetTagProperty);
307 
308         if (!isNew &&
309                 ((assetTagProperty.getTagId() != assetTagPropertyModelImpl.getOriginalTagId()) ||
310                 !Validator.equals(assetTagProperty.getKey(),
311                     assetTagPropertyModelImpl.getOriginalKey()))) {
312             FinderCacheUtil.removeResult(FINDER_PATH_FETCH_BY_T_K,
313                 new Object[] {
314                     new Long(assetTagPropertyModelImpl.getOriginalTagId()),
315                     
316                 assetTagPropertyModelImpl.getOriginalKey()
317                 });
318         }
319 
320         if (isNew ||
321                 ((assetTagProperty.getTagId() != assetTagPropertyModelImpl.getOriginalTagId()) ||
322                 !Validator.equals(assetTagProperty.getKey(),
323                     assetTagPropertyModelImpl.getOriginalKey()))) {
324             FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_T_K,
325                 new Object[] {
326                     new Long(assetTagProperty.getTagId()),
327                     
328                 assetTagProperty.getKey()
329                 }, assetTagProperty);
330         }
331 
332         return assetTagProperty;
333     }
334 
335     protected AssetTagProperty toUnwrappedModel(
336         AssetTagProperty assetTagProperty) {
337         if (assetTagProperty instanceof AssetTagPropertyImpl) {
338             return assetTagProperty;
339         }
340 
341         AssetTagPropertyImpl assetTagPropertyImpl = new AssetTagPropertyImpl();
342 
343         assetTagPropertyImpl.setNew(assetTagProperty.isNew());
344         assetTagPropertyImpl.setPrimaryKey(assetTagProperty.getPrimaryKey());
345 
346         assetTagPropertyImpl.setTagPropertyId(assetTagProperty.getTagPropertyId());
347         assetTagPropertyImpl.setCompanyId(assetTagProperty.getCompanyId());
348         assetTagPropertyImpl.setUserId(assetTagProperty.getUserId());
349         assetTagPropertyImpl.setUserName(assetTagProperty.getUserName());
350         assetTagPropertyImpl.setCreateDate(assetTagProperty.getCreateDate());
351         assetTagPropertyImpl.setModifiedDate(assetTagProperty.getModifiedDate());
352         assetTagPropertyImpl.setTagId(assetTagProperty.getTagId());
353         assetTagPropertyImpl.setKey(assetTagProperty.getKey());
354         assetTagPropertyImpl.setValue(assetTagProperty.getValue());
355 
356         return assetTagPropertyImpl;
357     }
358 
359     public AssetTagProperty findByPrimaryKey(Serializable primaryKey)
360         throws NoSuchModelException, SystemException {
361         return findByPrimaryKey(((Long)primaryKey).longValue());
362     }
363 
364     public AssetTagProperty findByPrimaryKey(long tagPropertyId)
365         throws NoSuchTagPropertyException, SystemException {
366         AssetTagProperty assetTagProperty = fetchByPrimaryKey(tagPropertyId);
367 
368         if (assetTagProperty == null) {
369             if (_log.isWarnEnabled()) {
370                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + tagPropertyId);
371             }
372 
373             throw new NoSuchTagPropertyException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
374                 tagPropertyId);
375         }
376 
377         return assetTagProperty;
378     }
379 
380     public AssetTagProperty fetchByPrimaryKey(Serializable primaryKey)
381         throws SystemException {
382         return fetchByPrimaryKey(((Long)primaryKey).longValue());
383     }
384 
385     public AssetTagProperty fetchByPrimaryKey(long tagPropertyId)
386         throws SystemException {
387         AssetTagProperty assetTagProperty = (AssetTagProperty)EntityCacheUtil.getResult(AssetTagPropertyModelImpl.ENTITY_CACHE_ENABLED,
388                 AssetTagPropertyImpl.class, tagPropertyId, this);
389 
390         if (assetTagProperty == null) {
391             Session session = null;
392 
393             try {
394                 session = openSession();
395 
396                 assetTagProperty = (AssetTagProperty)session.get(AssetTagPropertyImpl.class,
397                         new Long(tagPropertyId));
398             }
399             catch (Exception e) {
400                 throw processException(e);
401             }
402             finally {
403                 if (assetTagProperty != null) {
404                     cacheResult(assetTagProperty);
405                 }
406 
407                 closeSession(session);
408             }
409         }
410 
411         return assetTagProperty;
412     }
413 
414     public List<AssetTagProperty> findByCompanyId(long companyId)
415         throws SystemException {
416         return findByCompanyId(companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
417             null);
418     }
419 
420     public List<AssetTagProperty> findByCompanyId(long companyId, int start,
421         int end) throws SystemException {
422         return findByCompanyId(companyId, start, end, null);
423     }
424 
425     public List<AssetTagProperty> findByCompanyId(long companyId, int start,
426         int end, OrderByComparator orderByComparator) throws SystemException {
427         Object[] finderArgs = new Object[] {
428                 new Long(companyId),
429                 
430                 String.valueOf(start), String.valueOf(end),
431                 String.valueOf(orderByComparator)
432             };
433 
434         List<AssetTagProperty> list = (List<AssetTagProperty>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_COMPANYID,
435                 finderArgs, this);
436 
437         if (list == null) {
438             Session session = null;
439 
440             try {
441                 session = openSession();
442 
443                 StringBundler query = null;
444 
445                 if (orderByComparator != null) {
446                     query = new StringBundler(3 +
447                             (orderByComparator.getOrderByFields().length * 3));
448                 }
449                 else {
450                     query = new StringBundler(3);
451                 }
452 
453                 query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
454 
455                 query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
456 
457                 if (orderByComparator != null) {
458                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
459                         orderByComparator);
460                 }
461 
462                 else {
463                     query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
464                 }
465 
466                 String sql = query.toString();
467 
468                 Query q = session.createQuery(sql);
469 
470                 QueryPos qPos = QueryPos.getInstance(q);
471 
472                 qPos.add(companyId);
473 
474                 list = (List<AssetTagProperty>)QueryUtil.list(q, getDialect(),
475                         start, end);
476             }
477             catch (Exception e) {
478                 throw processException(e);
479             }
480             finally {
481                 if (list == null) {
482                     list = new ArrayList<AssetTagProperty>();
483                 }
484 
485                 cacheResult(list);
486 
487                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_COMPANYID,
488                     finderArgs, list);
489 
490                 closeSession(session);
491             }
492         }
493 
494         return list;
495     }
496 
497     public AssetTagProperty findByCompanyId_First(long companyId,
498         OrderByComparator orderByComparator)
499         throws NoSuchTagPropertyException, SystemException {
500         List<AssetTagProperty> list = findByCompanyId(companyId, 0, 1,
501                 orderByComparator);
502 
503         if (list.isEmpty()) {
504             StringBundler msg = new StringBundler(4);
505 
506             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
507 
508             msg.append("companyId=");
509             msg.append(companyId);
510 
511             msg.append(StringPool.CLOSE_CURLY_BRACE);
512 
513             throw new NoSuchTagPropertyException(msg.toString());
514         }
515         else {
516             return list.get(0);
517         }
518     }
519 
520     public AssetTagProperty findByCompanyId_Last(long companyId,
521         OrderByComparator orderByComparator)
522         throws NoSuchTagPropertyException, SystemException {
523         int count = countByCompanyId(companyId);
524 
525         List<AssetTagProperty> list = findByCompanyId(companyId, count - 1,
526                 count, orderByComparator);
527 
528         if (list.isEmpty()) {
529             StringBundler msg = new StringBundler(4);
530 
531             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
532 
533             msg.append("companyId=");
534             msg.append(companyId);
535 
536             msg.append(StringPool.CLOSE_CURLY_BRACE);
537 
538             throw new NoSuchTagPropertyException(msg.toString());
539         }
540         else {
541             return list.get(0);
542         }
543     }
544 
545     public AssetTagProperty[] findByCompanyId_PrevAndNext(long tagPropertyId,
546         long companyId, OrderByComparator orderByComparator)
547         throws NoSuchTagPropertyException, SystemException {
548         AssetTagProperty assetTagProperty = findByPrimaryKey(tagPropertyId);
549 
550         Session session = null;
551 
552         try {
553             session = openSession();
554 
555             AssetTagProperty[] array = new AssetTagPropertyImpl[3];
556 
557             array[0] = getByCompanyId_PrevAndNext(session, assetTagProperty,
558                     companyId, orderByComparator, true);
559 
560             array[1] = assetTagProperty;
561 
562             array[2] = getByCompanyId_PrevAndNext(session, assetTagProperty,
563                     companyId, orderByComparator, false);
564 
565             return array;
566         }
567         catch (Exception e) {
568             throw processException(e);
569         }
570         finally {
571             closeSession(session);
572         }
573     }
574 
575     protected AssetTagProperty getByCompanyId_PrevAndNext(Session session,
576         AssetTagProperty assetTagProperty, long companyId,
577         OrderByComparator orderByComparator, boolean previous) {
578         StringBundler query = null;
579 
580         if (orderByComparator != null) {
581             query = new StringBundler(6 +
582                     (orderByComparator.getOrderByFields().length * 6));
583         }
584         else {
585             query = new StringBundler(3);
586         }
587 
588         query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
589 
590         query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
591 
592         if (orderByComparator != null) {
593             String[] orderByFields = orderByComparator.getOrderByFields();
594 
595             if (orderByFields.length > 0) {
596                 query.append(WHERE_AND);
597             }
598 
599             for (int i = 0; i < orderByFields.length; i++) {
600                 query.append(_ORDER_BY_ENTITY_ALIAS);
601                 query.append(orderByFields[i]);
602 
603                 if ((i + 1) < orderByFields.length) {
604                     if (orderByComparator.isAscending() ^ previous) {
605                         query.append(WHERE_GREATER_THAN_HAS_NEXT);
606                     }
607                     else {
608                         query.append(WHERE_LESSER_THAN_HAS_NEXT);
609                     }
610                 }
611                 else {
612                     if (orderByComparator.isAscending() ^ previous) {
613                         query.append(WHERE_GREATER_THAN);
614                     }
615                     else {
616                         query.append(WHERE_LESSER_THAN);
617                     }
618                 }
619             }
620 
621             query.append(ORDER_BY_CLAUSE);
622 
623             for (int i = 0; i < orderByFields.length; i++) {
624                 query.append(_ORDER_BY_ENTITY_ALIAS);
625                 query.append(orderByFields[i]);
626 
627                 if ((i + 1) < orderByFields.length) {
628                     if (orderByComparator.isAscending() ^ previous) {
629                         query.append(ORDER_BY_ASC_HAS_NEXT);
630                     }
631                     else {
632                         query.append(ORDER_BY_DESC_HAS_NEXT);
633                     }
634                 }
635                 else {
636                     if (orderByComparator.isAscending() ^ previous) {
637                         query.append(ORDER_BY_ASC);
638                     }
639                     else {
640                         query.append(ORDER_BY_DESC);
641                     }
642                 }
643             }
644         }
645 
646         else {
647             query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
648         }
649 
650         String sql = query.toString();
651 
652         Query q = session.createQuery(sql);
653 
654         q.setFirstResult(0);
655         q.setMaxResults(2);
656 
657         QueryPos qPos = QueryPos.getInstance(q);
658 
659         qPos.add(companyId);
660 
661         if (orderByComparator != null) {
662             Object[] values = orderByComparator.getOrderByValues(assetTagProperty);
663 
664             for (Object value : values) {
665                 qPos.add(value);
666             }
667         }
668 
669         List<AssetTagProperty> list = q.list();
670 
671         if (list.size() == 2) {
672             return list.get(1);
673         }
674         else {
675             return null;
676         }
677     }
678 
679     public List<AssetTagProperty> findByTagId(long tagId)
680         throws SystemException {
681         return findByTagId(tagId, QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
682     }
683 
684     public List<AssetTagProperty> findByTagId(long tagId, int start, int end)
685         throws SystemException {
686         return findByTagId(tagId, start, end, null);
687     }
688 
689     public List<AssetTagProperty> findByTagId(long tagId, int start, int end,
690         OrderByComparator orderByComparator) throws SystemException {
691         Object[] finderArgs = new Object[] {
692                 new Long(tagId),
693                 
694                 String.valueOf(start), String.valueOf(end),
695                 String.valueOf(orderByComparator)
696             };
697 
698         List<AssetTagProperty> list = (List<AssetTagProperty>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_TAGID,
699                 finderArgs, this);
700 
701         if (list == null) {
702             Session session = null;
703 
704             try {
705                 session = openSession();
706 
707                 StringBundler query = null;
708 
709                 if (orderByComparator != null) {
710                     query = new StringBundler(3 +
711                             (orderByComparator.getOrderByFields().length * 3));
712                 }
713                 else {
714                     query = new StringBundler(3);
715                 }
716 
717                 query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
718 
719                 query.append(_FINDER_COLUMN_TAGID_TAGID_2);
720 
721                 if (orderByComparator != null) {
722                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
723                         orderByComparator);
724                 }
725 
726                 else {
727                     query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
728                 }
729 
730                 String sql = query.toString();
731 
732                 Query q = session.createQuery(sql);
733 
734                 QueryPos qPos = QueryPos.getInstance(q);
735 
736                 qPos.add(tagId);
737 
738                 list = (List<AssetTagProperty>)QueryUtil.list(q, getDialect(),
739                         start, end);
740             }
741             catch (Exception e) {
742                 throw processException(e);
743             }
744             finally {
745                 if (list == null) {
746                     list = new ArrayList<AssetTagProperty>();
747                 }
748 
749                 cacheResult(list);
750 
751                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_TAGID,
752                     finderArgs, list);
753 
754                 closeSession(session);
755             }
756         }
757 
758         return list;
759     }
760 
761     public AssetTagProperty findByTagId_First(long tagId,
762         OrderByComparator orderByComparator)
763         throws NoSuchTagPropertyException, SystemException {
764         List<AssetTagProperty> list = findByTagId(tagId, 0, 1, orderByComparator);
765 
766         if (list.isEmpty()) {
767             StringBundler msg = new StringBundler(4);
768 
769             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
770 
771             msg.append("tagId=");
772             msg.append(tagId);
773 
774             msg.append(StringPool.CLOSE_CURLY_BRACE);
775 
776             throw new NoSuchTagPropertyException(msg.toString());
777         }
778         else {
779             return list.get(0);
780         }
781     }
782 
783     public AssetTagProperty findByTagId_Last(long tagId,
784         OrderByComparator orderByComparator)
785         throws NoSuchTagPropertyException, SystemException {
786         int count = countByTagId(tagId);
787 
788         List<AssetTagProperty> list = findByTagId(tagId, count - 1, count,
789                 orderByComparator);
790 
791         if (list.isEmpty()) {
792             StringBundler msg = new StringBundler(4);
793 
794             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
795 
796             msg.append("tagId=");
797             msg.append(tagId);
798 
799             msg.append(StringPool.CLOSE_CURLY_BRACE);
800 
801             throw new NoSuchTagPropertyException(msg.toString());
802         }
803         else {
804             return list.get(0);
805         }
806     }
807 
808     public AssetTagProperty[] findByTagId_PrevAndNext(long tagPropertyId,
809         long tagId, OrderByComparator orderByComparator)
810         throws NoSuchTagPropertyException, SystemException {
811         AssetTagProperty assetTagProperty = findByPrimaryKey(tagPropertyId);
812 
813         Session session = null;
814 
815         try {
816             session = openSession();
817 
818             AssetTagProperty[] array = new AssetTagPropertyImpl[3];
819 
820             array[0] = getByTagId_PrevAndNext(session, assetTagProperty, tagId,
821                     orderByComparator, true);
822 
823             array[1] = assetTagProperty;
824 
825             array[2] = getByTagId_PrevAndNext(session, assetTagProperty, tagId,
826                     orderByComparator, false);
827 
828             return array;
829         }
830         catch (Exception e) {
831             throw processException(e);
832         }
833         finally {
834             closeSession(session);
835         }
836     }
837 
838     protected AssetTagProperty getByTagId_PrevAndNext(Session session,
839         AssetTagProperty assetTagProperty, long tagId,
840         OrderByComparator orderByComparator, boolean previous) {
841         StringBundler query = null;
842 
843         if (orderByComparator != null) {
844             query = new StringBundler(6 +
845                     (orderByComparator.getOrderByFields().length * 6));
846         }
847         else {
848             query = new StringBundler(3);
849         }
850 
851         query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
852 
853         query.append(_FINDER_COLUMN_TAGID_TAGID_2);
854 
855         if (orderByComparator != null) {
856             String[] orderByFields = orderByComparator.getOrderByFields();
857 
858             if (orderByFields.length > 0) {
859                 query.append(WHERE_AND);
860             }
861 
862             for (int i = 0; i < orderByFields.length; i++) {
863                 query.append(_ORDER_BY_ENTITY_ALIAS);
864                 query.append(orderByFields[i]);
865 
866                 if ((i + 1) < orderByFields.length) {
867                     if (orderByComparator.isAscending() ^ previous) {
868                         query.append(WHERE_GREATER_THAN_HAS_NEXT);
869                     }
870                     else {
871                         query.append(WHERE_LESSER_THAN_HAS_NEXT);
872                     }
873                 }
874                 else {
875                     if (orderByComparator.isAscending() ^ previous) {
876                         query.append(WHERE_GREATER_THAN);
877                     }
878                     else {
879                         query.append(WHERE_LESSER_THAN);
880                     }
881                 }
882             }
883 
884             query.append(ORDER_BY_CLAUSE);
885 
886             for (int i = 0; i < orderByFields.length; i++) {
887                 query.append(_ORDER_BY_ENTITY_ALIAS);
888                 query.append(orderByFields[i]);
889 
890                 if ((i + 1) < orderByFields.length) {
891                     if (orderByComparator.isAscending() ^ previous) {
892                         query.append(ORDER_BY_ASC_HAS_NEXT);
893                     }
894                     else {
895                         query.append(ORDER_BY_DESC_HAS_NEXT);
896                     }
897                 }
898                 else {
899                     if (orderByComparator.isAscending() ^ previous) {
900                         query.append(ORDER_BY_ASC);
901                     }
902                     else {
903                         query.append(ORDER_BY_DESC);
904                     }
905                 }
906             }
907         }
908 
909         else {
910             query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
911         }
912 
913         String sql = query.toString();
914 
915         Query q = session.createQuery(sql);
916 
917         q.setFirstResult(0);
918         q.setMaxResults(2);
919 
920         QueryPos qPos = QueryPos.getInstance(q);
921 
922         qPos.add(tagId);
923 
924         if (orderByComparator != null) {
925             Object[] values = orderByComparator.getOrderByValues(assetTagProperty);
926 
927             for (Object value : values) {
928                 qPos.add(value);
929             }
930         }
931 
932         List<AssetTagProperty> list = q.list();
933 
934         if (list.size() == 2) {
935             return list.get(1);
936         }
937         else {
938             return null;
939         }
940     }
941 
942     public List<AssetTagProperty> findByC_K(long companyId, String key)
943         throws SystemException {
944         return findByC_K(companyId, key, QueryUtil.ALL_POS, QueryUtil.ALL_POS,
945             null);
946     }
947 
948     public List<AssetTagProperty> findByC_K(long companyId, String key,
949         int start, int end) throws SystemException {
950         return findByC_K(companyId, key, start, end, null);
951     }
952 
953     public List<AssetTagProperty> findByC_K(long companyId, String key,
954         int start, int end, OrderByComparator orderByComparator)
955         throws SystemException {
956         Object[] finderArgs = new Object[] {
957                 new Long(companyId),
958                 
959                 key,
960                 
961                 String.valueOf(start), String.valueOf(end),
962                 String.valueOf(orderByComparator)
963             };
964 
965         List<AssetTagProperty> list = (List<AssetTagProperty>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_C_K,
966                 finderArgs, this);
967 
968         if (list == null) {
969             Session session = null;
970 
971             try {
972                 session = openSession();
973 
974                 StringBundler query = null;
975 
976                 if (orderByComparator != null) {
977                     query = new StringBundler(4 +
978                             (orderByComparator.getOrderByFields().length * 3));
979                 }
980                 else {
981                     query = new StringBundler(4);
982                 }
983 
984                 query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
985 
986                 query.append(_FINDER_COLUMN_C_K_COMPANYID_2);
987 
988                 if (key == null) {
989                     query.append(_FINDER_COLUMN_C_K_KEY_1);
990                 }
991                 else {
992                     if (key.equals(StringPool.BLANK)) {
993                         query.append(_FINDER_COLUMN_C_K_KEY_3);
994                     }
995                     else {
996                         query.append(_FINDER_COLUMN_C_K_KEY_2);
997                     }
998                 }
999 
1000                if (orderByComparator != null) {
1001                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1002                        orderByComparator);
1003                }
1004
1005                else {
1006                    query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
1007                }
1008
1009                String sql = query.toString();
1010
1011                Query q = session.createQuery(sql);
1012
1013                QueryPos qPos = QueryPos.getInstance(q);
1014
1015                qPos.add(companyId);
1016
1017                if (key != null) {
1018                    qPos.add(key);
1019                }
1020
1021                list = (List<AssetTagProperty>)QueryUtil.list(q, getDialect(),
1022                        start, end);
1023            }
1024            catch (Exception e) {
1025                throw processException(e);
1026            }
1027            finally {
1028                if (list == null) {
1029                    list = new ArrayList<AssetTagProperty>();
1030                }
1031
1032                cacheResult(list);
1033
1034                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_C_K, finderArgs,
1035                    list);
1036
1037                closeSession(session);
1038            }
1039        }
1040
1041        return list;
1042    }
1043
1044    public AssetTagProperty findByC_K_First(long companyId, String key,
1045        OrderByComparator orderByComparator)
1046        throws NoSuchTagPropertyException, SystemException {
1047        List<AssetTagProperty> list = findByC_K(companyId, key, 0, 1,
1048                orderByComparator);
1049
1050        if (list.isEmpty()) {
1051            StringBundler msg = new StringBundler(6);
1052
1053            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1054
1055            msg.append("companyId=");
1056            msg.append(companyId);
1057
1058            msg.append(", key=");
1059            msg.append(key);
1060
1061            msg.append(StringPool.CLOSE_CURLY_BRACE);
1062
1063            throw new NoSuchTagPropertyException(msg.toString());
1064        }
1065        else {
1066            return list.get(0);
1067        }
1068    }
1069
1070    public AssetTagProperty findByC_K_Last(long companyId, String key,
1071        OrderByComparator orderByComparator)
1072        throws NoSuchTagPropertyException, SystemException {
1073        int count = countByC_K(companyId, key);
1074
1075        List<AssetTagProperty> list = findByC_K(companyId, key, count - 1,
1076                count, orderByComparator);
1077
1078        if (list.isEmpty()) {
1079            StringBundler msg = new StringBundler(6);
1080
1081            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1082
1083            msg.append("companyId=");
1084            msg.append(companyId);
1085
1086            msg.append(", key=");
1087            msg.append(key);
1088
1089            msg.append(StringPool.CLOSE_CURLY_BRACE);
1090
1091            throw new NoSuchTagPropertyException(msg.toString());
1092        }
1093        else {
1094            return list.get(0);
1095        }
1096    }
1097
1098    public AssetTagProperty[] findByC_K_PrevAndNext(long tagPropertyId,
1099        long companyId, String key, OrderByComparator orderByComparator)
1100        throws NoSuchTagPropertyException, SystemException {
1101        AssetTagProperty assetTagProperty = findByPrimaryKey(tagPropertyId);
1102
1103        Session session = null;
1104
1105        try {
1106            session = openSession();
1107
1108            AssetTagProperty[] array = new AssetTagPropertyImpl[3];
1109
1110            array[0] = getByC_K_PrevAndNext(session, assetTagProperty,
1111                    companyId, key, orderByComparator, true);
1112
1113            array[1] = assetTagProperty;
1114
1115            array[2] = getByC_K_PrevAndNext(session, assetTagProperty,
1116                    companyId, key, orderByComparator, false);
1117
1118            return array;
1119        }
1120        catch (Exception e) {
1121            throw processException(e);
1122        }
1123        finally {
1124            closeSession(session);
1125        }
1126    }
1127
1128    protected AssetTagProperty getByC_K_PrevAndNext(Session session,
1129        AssetTagProperty assetTagProperty, long companyId, String key,
1130        OrderByComparator orderByComparator, boolean previous) {
1131        StringBundler query = null;
1132
1133        if (orderByComparator != null) {
1134            query = new StringBundler(6 +
1135                    (orderByComparator.getOrderByFields().length * 6));
1136        }
1137        else {
1138            query = new StringBundler(3);
1139        }
1140
1141        query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
1142
1143        query.append(_FINDER_COLUMN_C_K_COMPANYID_2);
1144
1145        if (key == null) {
1146            query.append(_FINDER_COLUMN_C_K_KEY_1);
1147        }
1148        else {
1149            if (key.equals(StringPool.BLANK)) {
1150                query.append(_FINDER_COLUMN_C_K_KEY_3);
1151            }
1152            else {
1153                query.append(_FINDER_COLUMN_C_K_KEY_2);
1154            }
1155        }
1156
1157        if (orderByComparator != null) {
1158            String[] orderByFields = orderByComparator.getOrderByFields();
1159
1160            if (orderByFields.length > 0) {
1161                query.append(WHERE_AND);
1162            }
1163
1164            for (int i = 0; i < orderByFields.length; i++) {
1165                query.append(_ORDER_BY_ENTITY_ALIAS);
1166                query.append(orderByFields[i]);
1167
1168                if ((i + 1) < orderByFields.length) {
1169                    if (orderByComparator.isAscending() ^ previous) {
1170                        query.append(WHERE_GREATER_THAN_HAS_NEXT);
1171                    }
1172                    else {
1173                        query.append(WHERE_LESSER_THAN_HAS_NEXT);
1174                    }
1175                }
1176                else {
1177                    if (orderByComparator.isAscending() ^ previous) {
1178                        query.append(WHERE_GREATER_THAN);
1179                    }
1180                    else {
1181                        query.append(WHERE_LESSER_THAN);
1182                    }
1183                }
1184            }
1185
1186            query.append(ORDER_BY_CLAUSE);
1187
1188            for (int i = 0; i < orderByFields.length; i++) {
1189                query.append(_ORDER_BY_ENTITY_ALIAS);
1190                query.append(orderByFields[i]);
1191
1192                if ((i + 1) < orderByFields.length) {
1193                    if (orderByComparator.isAscending() ^ previous) {
1194                        query.append(ORDER_BY_ASC_HAS_NEXT);
1195                    }
1196                    else {
1197                        query.append(ORDER_BY_DESC_HAS_NEXT);
1198                    }
1199                }
1200                else {
1201                    if (orderByComparator.isAscending() ^ previous) {
1202                        query.append(ORDER_BY_ASC);
1203                    }
1204                    else {
1205                        query.append(ORDER_BY_DESC);
1206                    }
1207                }
1208            }
1209        }
1210
1211        else {
1212            query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
1213        }
1214
1215        String sql = query.toString();
1216
1217        Query q = session.createQuery(sql);
1218
1219        q.setFirstResult(0);
1220        q.setMaxResults(2);
1221
1222        QueryPos qPos = QueryPos.getInstance(q);
1223
1224        qPos.add(companyId);
1225
1226        if (key != null) {
1227            qPos.add(key);
1228        }
1229
1230        if (orderByComparator != null) {
1231            Object[] values = orderByComparator.getOrderByValues(assetTagProperty);
1232
1233            for (Object value : values) {
1234                qPos.add(value);
1235            }
1236        }
1237
1238        List<AssetTagProperty> list = q.list();
1239
1240        if (list.size() == 2) {
1241            return list.get(1);
1242        }
1243        else {
1244            return null;
1245        }
1246    }
1247
1248    public AssetTagProperty findByT_K(long tagId, String key)
1249        throws NoSuchTagPropertyException, SystemException {
1250        AssetTagProperty assetTagProperty = fetchByT_K(tagId, key);
1251
1252        if (assetTagProperty == null) {
1253            StringBundler msg = new StringBundler(6);
1254
1255            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1256
1257            msg.append("tagId=");
1258            msg.append(tagId);
1259
1260            msg.append(", key=");
1261            msg.append(key);
1262
1263            msg.append(StringPool.CLOSE_CURLY_BRACE);
1264
1265            if (_log.isWarnEnabled()) {
1266                _log.warn(msg.toString());
1267            }
1268
1269            throw new NoSuchTagPropertyException(msg.toString());
1270        }
1271
1272        return assetTagProperty;
1273    }
1274
1275    public AssetTagProperty fetchByT_K(long tagId, String key)
1276        throws SystemException {
1277        return fetchByT_K(tagId, key, true);
1278    }
1279
1280    public AssetTagProperty fetchByT_K(long tagId, String key,
1281        boolean retrieveFromCache) throws SystemException {
1282        Object[] finderArgs = new Object[] { new Long(tagId), key };
1283
1284        Object result = null;
1285
1286        if (retrieveFromCache) {
1287            result = FinderCacheUtil.getResult(FINDER_PATH_FETCH_BY_T_K,
1288                    finderArgs, this);
1289        }
1290
1291        if (result == null) {
1292            Session session = null;
1293
1294            try {
1295                session = openSession();
1296
1297                StringBundler query = new StringBundler(4);
1298
1299                query.append(_SQL_SELECT_ASSETTAGPROPERTY_WHERE);
1300
1301                query.append(_FINDER_COLUMN_T_K_TAGID_2);
1302
1303                if (key == null) {
1304                    query.append(_FINDER_COLUMN_T_K_KEY_1);
1305                }
1306                else {
1307                    if (key.equals(StringPool.BLANK)) {
1308                        query.append(_FINDER_COLUMN_T_K_KEY_3);
1309                    }
1310                    else {
1311                        query.append(_FINDER_COLUMN_T_K_KEY_2);
1312                    }
1313                }
1314
1315                query.append(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
1316
1317                String sql = query.toString();
1318
1319                Query q = session.createQuery(sql);
1320
1321                QueryPos qPos = QueryPos.getInstance(q);
1322
1323                qPos.add(tagId);
1324
1325                if (key != null) {
1326                    qPos.add(key);
1327                }
1328
1329                List<AssetTagProperty> list = q.list();
1330
1331                result = list;
1332
1333                AssetTagProperty assetTagProperty = null;
1334
1335                if (list.isEmpty()) {
1336                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_T_K,
1337                        finderArgs, list);
1338                }
1339                else {
1340                    assetTagProperty = list.get(0);
1341
1342                    cacheResult(assetTagProperty);
1343
1344                    if ((assetTagProperty.getTagId() != tagId) ||
1345                            (assetTagProperty.getKey() == null) ||
1346                            !assetTagProperty.getKey().equals(key)) {
1347                        FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_T_K,
1348                            finderArgs, assetTagProperty);
1349                    }
1350                }
1351
1352                return assetTagProperty;
1353            }
1354            catch (Exception e) {
1355                throw processException(e);
1356            }
1357            finally {
1358                if (result == null) {
1359                    FinderCacheUtil.putResult(FINDER_PATH_FETCH_BY_T_K,
1360                        finderArgs, new ArrayList<AssetTagProperty>());
1361                }
1362
1363                closeSession(session);
1364            }
1365        }
1366        else {
1367            if (result instanceof List<?>) {
1368                return null;
1369            }
1370            else {
1371                return (AssetTagProperty)result;
1372            }
1373        }
1374    }
1375
1376    public List<AssetTagProperty> findAll() throws SystemException {
1377        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1378    }
1379
1380    public List<AssetTagProperty> findAll(int start, int end)
1381        throws SystemException {
1382        return findAll(start, end, null);
1383    }
1384
1385    public List<AssetTagProperty> findAll(int start, int end,
1386        OrderByComparator orderByComparator) throws SystemException {
1387        Object[] finderArgs = new Object[] {
1388                String.valueOf(start), String.valueOf(end),
1389                String.valueOf(orderByComparator)
1390            };
1391
1392        List<AssetTagProperty> list = (List<AssetTagProperty>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1393                finderArgs, this);
1394
1395        if (list == null) {
1396            Session session = null;
1397
1398            try {
1399                session = openSession();
1400
1401                StringBundler query = null;
1402                String sql = null;
1403
1404                if (orderByComparator != null) {
1405                    query = new StringBundler(2 +
1406                            (orderByComparator.getOrderByFields().length * 3));
1407
1408                    query.append(_SQL_SELECT_ASSETTAGPROPERTY);
1409
1410                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1411                        orderByComparator);
1412
1413                    sql = query.toString();
1414                }
1415
1416                else {
1417                    sql = _SQL_SELECT_ASSETTAGPROPERTY.concat(AssetTagPropertyModelImpl.ORDER_BY_JPQL);
1418                }
1419
1420                Query q = session.createQuery(sql);
1421
1422                if (orderByComparator == null) {
1423                    list = (List<AssetTagProperty>)QueryUtil.list(q,
1424                            getDialect(), start, end, false);
1425
1426                    Collections.sort(list);
1427                }
1428                else {
1429                    list = (List<AssetTagProperty>)QueryUtil.list(q,
1430                            getDialect(), start, end);
1431                }
1432            }
1433            catch (Exception e) {
1434                throw processException(e);
1435            }
1436            finally {
1437                if (list == null) {
1438                    list = new ArrayList<AssetTagProperty>();
1439                }
1440
1441                cacheResult(list);
1442
1443                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1444
1445                closeSession(session);
1446            }
1447        }
1448
1449        return list;
1450    }
1451
1452    public void removeByCompanyId(long companyId) throws SystemException {
1453        for (AssetTagProperty assetTagProperty : findByCompanyId(companyId)) {
1454            remove(assetTagProperty);
1455        }
1456    }
1457
1458    public void removeByTagId(long tagId) throws SystemException {
1459        for (AssetTagProperty assetTagProperty : findByTagId(tagId)) {
1460            remove(assetTagProperty);
1461        }
1462    }
1463
1464    public void removeByC_K(long companyId, String key)
1465        throws SystemException {
1466        for (AssetTagProperty assetTagProperty : findByC_K(companyId, key)) {
1467            remove(assetTagProperty);
1468        }
1469    }
1470
1471    public void removeByT_K(long tagId, String key)
1472        throws NoSuchTagPropertyException, SystemException {
1473        AssetTagProperty assetTagProperty = findByT_K(tagId, key);
1474
1475        remove(assetTagProperty);
1476    }
1477
1478    public void removeAll() throws SystemException {
1479        for (AssetTagProperty assetTagProperty : findAll()) {
1480            remove(assetTagProperty);
1481        }
1482    }
1483
1484    public int countByCompanyId(long companyId) throws SystemException {
1485        Object[] finderArgs = new Object[] { new Long(companyId) };
1486
1487        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_COMPANYID,
1488                finderArgs, this);
1489
1490        if (count == null) {
1491            Session session = null;
1492
1493            try {
1494                session = openSession();
1495
1496                StringBundler query = new StringBundler(2);
1497
1498                query.append(_SQL_COUNT_ASSETTAGPROPERTY_WHERE);
1499
1500                query.append(_FINDER_COLUMN_COMPANYID_COMPANYID_2);
1501
1502                String sql = query.toString();
1503
1504                Query q = session.createQuery(sql);
1505
1506                QueryPos qPos = QueryPos.getInstance(q);
1507
1508                qPos.add(companyId);
1509
1510                count = (Long)q.uniqueResult();
1511            }
1512            catch (Exception e) {
1513                throw processException(e);
1514            }
1515            finally {
1516                if (count == null) {
1517                    count = Long.valueOf(0);
1518                }
1519
1520                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_COMPANYID,
1521                    finderArgs, count);
1522
1523                closeSession(session);
1524            }
1525        }
1526
1527        return count.intValue();
1528    }
1529
1530    public int countByTagId(long tagId) throws SystemException {
1531        Object[] finderArgs = new Object[] { new Long(tagId) };
1532
1533        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_TAGID,
1534                finderArgs, this);
1535
1536        if (count == null) {
1537            Session session = null;
1538
1539            try {
1540                session = openSession();
1541
1542                StringBundler query = new StringBundler(2);
1543
1544                query.append(_SQL_COUNT_ASSETTAGPROPERTY_WHERE);
1545
1546                query.append(_FINDER_COLUMN_TAGID_TAGID_2);
1547
1548                String sql = query.toString();
1549
1550                Query q = session.createQuery(sql);
1551
1552                QueryPos qPos = QueryPos.getInstance(q);
1553
1554                qPos.add(tagId);
1555
1556                count = (Long)q.uniqueResult();
1557            }
1558            catch (Exception e) {
1559                throw processException(e);
1560            }
1561            finally {
1562                if (count == null) {
1563                    count = Long.valueOf(0);
1564                }
1565
1566                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_TAGID,
1567                    finderArgs, count);
1568
1569                closeSession(session);
1570            }
1571        }
1572
1573        return count.intValue();
1574    }
1575
1576    public int countByC_K(long companyId, String key) throws SystemException {
1577        Object[] finderArgs = new Object[] { new Long(companyId), key };
1578
1579        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_C_K,
1580                finderArgs, this);
1581
1582        if (count == null) {
1583            Session session = null;
1584
1585            try {
1586                session = openSession();
1587
1588                StringBundler query = new StringBundler(3);
1589
1590                query.append(_SQL_COUNT_ASSETTAGPROPERTY_WHERE);
1591
1592                query.append(_FINDER_COLUMN_C_K_COMPANYID_2);
1593
1594                if (key == null) {
1595                    query.append(_FINDER_COLUMN_C_K_KEY_1);
1596                }
1597                else {
1598                    if (key.equals(StringPool.BLANK)) {
1599                        query.append(_FINDER_COLUMN_C_K_KEY_3);
1600                    }
1601                    else {
1602                        query.append(_FINDER_COLUMN_C_K_KEY_2);
1603                    }
1604                }
1605
1606                String sql = query.toString();
1607
1608                Query q = session.createQuery(sql);
1609
1610                QueryPos qPos = QueryPos.getInstance(q);
1611
1612                qPos.add(companyId);
1613
1614                if (key != null) {
1615                    qPos.add(key);
1616                }
1617
1618                count = (Long)q.uniqueResult();
1619            }
1620            catch (Exception e) {
1621                throw processException(e);
1622            }
1623            finally {
1624                if (count == null) {
1625                    count = Long.valueOf(0);
1626                }
1627
1628                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_C_K, finderArgs,
1629                    count);
1630
1631                closeSession(session);
1632            }
1633        }
1634
1635        return count.intValue();
1636    }
1637
1638    public int countByT_K(long tagId, String key) throws SystemException {
1639        Object[] finderArgs = new Object[] { new Long(tagId), key };
1640
1641        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_T_K,
1642                finderArgs, this);
1643
1644        if (count == null) {
1645            Session session = null;
1646
1647            try {
1648                session = openSession();
1649
1650                StringBundler query = new StringBundler(3);
1651
1652                query.append(_SQL_COUNT_ASSETTAGPROPERTY_WHERE);
1653
1654                query.append(_FINDER_COLUMN_T_K_TAGID_2);
1655
1656                if (key == null) {
1657                    query.append(_FINDER_COLUMN_T_K_KEY_1);
1658                }
1659                else {
1660                    if (key.equals(StringPool.BLANK)) {
1661                        query.append(_FINDER_COLUMN_T_K_KEY_3);
1662                    }
1663                    else {
1664                        query.append(_FINDER_COLUMN_T_K_KEY_2);
1665                    }
1666                }
1667
1668                String sql = query.toString();
1669
1670                Query q = session.createQuery(sql);
1671
1672                QueryPos qPos = QueryPos.getInstance(q);
1673
1674                qPos.add(tagId);
1675
1676                if (key != null) {
1677                    qPos.add(key);
1678                }
1679
1680                count = (Long)q.uniqueResult();
1681            }
1682            catch (Exception e) {
1683                throw processException(e);
1684            }
1685            finally {
1686                if (count == null) {
1687                    count = Long.valueOf(0);
1688                }
1689
1690                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_T_K, finderArgs,
1691                    count);
1692
1693                closeSession(session);
1694            }
1695        }
1696
1697        return count.intValue();
1698    }
1699
1700    public int countAll() throws SystemException {
1701        Object[] finderArgs = new Object[0];
1702
1703        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
1704                finderArgs, this);
1705
1706        if (count == null) {
1707            Session session = null;
1708
1709            try {
1710                session = openSession();
1711
1712                Query q = session.createQuery(_SQL_COUNT_ASSETTAGPROPERTY);
1713
1714                count = (Long)q.uniqueResult();
1715            }
1716            catch (Exception e) {
1717                throw processException(e);
1718            }
1719            finally {
1720                if (count == null) {
1721                    count = Long.valueOf(0);
1722                }
1723
1724                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
1725                    count);
1726
1727                closeSession(session);
1728            }
1729        }
1730
1731        return count.intValue();
1732    }
1733
1734    public void afterPropertiesSet() {
1735        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
1736                    com.liferay.portal.util.PropsUtil.get(
1737                        "value.object.listener.com.liferay.portlet.asset.model.AssetTagProperty")));
1738
1739        if (listenerClassNames.length > 0) {
1740            try {
1741                List<ModelListener<AssetTagProperty>> listenersList = new ArrayList<ModelListener<AssetTagProperty>>();
1742
1743                for (String listenerClassName : listenerClassNames) {
1744                    listenersList.add((ModelListener<AssetTagProperty>)InstanceFactory.newInstance(
1745                            listenerClassName));
1746                }
1747
1748                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
1749            }
1750            catch (Exception e) {
1751                _log.error(e);
1752            }
1753        }
1754    }
1755
1756    @BeanReference(type = AssetCategoryPersistence.class)
1757    protected AssetCategoryPersistence assetCategoryPersistence;
1758    @BeanReference(type = AssetCategoryPropertyPersistence.class)
1759    protected AssetCategoryPropertyPersistence assetCategoryPropertyPersistence;
1760    @BeanReference(type = AssetEntryPersistence.class)
1761    protected AssetEntryPersistence assetEntryPersistence;
1762    @BeanReference(type = AssetLinkPersistence.class)
1763    protected AssetLinkPersistence assetLinkPersistence;
1764    @BeanReference(type = AssetTagPersistence.class)
1765    protected AssetTagPersistence assetTagPersistence;
1766    @BeanReference(type = AssetTagPropertyPersistence.class)
1767    protected AssetTagPropertyPersistence assetTagPropertyPersistence;
1768    @BeanReference(type = AssetTagStatsPersistence.class)
1769    protected AssetTagStatsPersistence assetTagStatsPersistence;
1770    @BeanReference(type = AssetVocabularyPersistence.class)
1771    protected AssetVocabularyPersistence assetVocabularyPersistence;
1772    @BeanReference(type = ResourcePersistence.class)
1773    protected ResourcePersistence resourcePersistence;
1774    @BeanReference(type = UserPersistence.class)
1775    protected UserPersistence userPersistence;
1776    private static final String _SQL_SELECT_ASSETTAGPROPERTY = "SELECT assetTagProperty FROM AssetTagProperty assetTagProperty";
1777    private static final String _SQL_SELECT_ASSETTAGPROPERTY_WHERE = "SELECT assetTagProperty FROM AssetTagProperty assetTagProperty WHERE ";
1778    private static final String _SQL_COUNT_ASSETTAGPROPERTY = "SELECT COUNT(assetTagProperty) FROM AssetTagProperty assetTagProperty";
1779    private static final String _SQL_COUNT_ASSETTAGPROPERTY_WHERE = "SELECT COUNT(assetTagProperty) FROM AssetTagProperty assetTagProperty WHERE ";
1780    private static final String _FINDER_COLUMN_COMPANYID_COMPANYID_2 = "assetTagProperty.companyId = ?";
1781    private static final String _FINDER_COLUMN_TAGID_TAGID_2 = "assetTagProperty.tagId = ?";
1782    private static final String _FINDER_COLUMN_C_K_COMPANYID_2 = "assetTagProperty.companyId = ? AND ";
1783    private static final String _FINDER_COLUMN_C_K_KEY_1 = "assetTagProperty.key IS NULL";
1784    private static final String _FINDER_COLUMN_C_K_KEY_2 = "assetTagProperty.key = ?";
1785    private static final String _FINDER_COLUMN_C_K_KEY_3 = "(assetTagProperty.key IS NULL OR assetTagProperty.key = ?)";
1786    private static final String _FINDER_COLUMN_T_K_TAGID_2 = "assetTagProperty.tagId = ? AND ";
1787    private static final String _FINDER_COLUMN_T_K_KEY_1 = "assetTagProperty.key IS NULL";
1788    private static final String _FINDER_COLUMN_T_K_KEY_2 = "assetTagProperty.key = ?";
1789    private static final String _FINDER_COLUMN_T_K_KEY_3 = "(assetTagProperty.key IS NULL OR assetTagProperty.key = ?)";
1790    private static final String _ORDER_BY_ENTITY_ALIAS = "assetTagProperty.";
1791    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No AssetTagProperty exists with the primary key ";
1792    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No AssetTagProperty exists with the key {";
1793    private static Log _log = LogFactoryUtil.getLog(AssetTagPropertyPersistenceImpl.class);
1794}