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