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