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.model.ModelListener;
36  import com.liferay.portal.service.persistence.BatchSessionUtil;
37  import com.liferay.portal.service.persistence.ResourcePersistence;
38  import com.liferay.portal.service.persistence.UserPersistence;
39  import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
40  
41  import com.liferay.portlet.asset.NoSuchLinkException;
42  import com.liferay.portlet.asset.model.AssetLink;
43  import com.liferay.portlet.asset.model.impl.AssetLinkImpl;
44  import com.liferay.portlet.asset.model.impl.AssetLinkModelImpl;
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="AssetLinkPersistenceImpl.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       AssetLinkPersistence
62   * @see       AssetLinkUtil
63   * @generated
64   */
65  public class AssetLinkPersistenceImpl extends BasePersistenceImpl<AssetLink>
66      implements AssetLinkPersistence {
67      public static final String FINDER_CLASS_NAME_ENTITY = AssetLinkImpl.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_E1 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
71              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
72              "findByE1", new String[] { Long.class.getName() });
73      public static final FinderPath FINDER_PATH_FIND_BY_OBC_E1 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
74              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
75              "findByE1",
76              new String[] {
77                  Long.class.getName(),
78                  
79              "java.lang.Integer", "java.lang.Integer",
80                  "com.liferay.portal.kernel.util.OrderByComparator"
81              });
82      public static final FinderPath FINDER_PATH_COUNT_BY_E1 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
83              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
84              "countByE1", new String[] { Long.class.getName() });
85      public static final FinderPath FINDER_PATH_FIND_BY_E2 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
86              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
87              "findByE2", new String[] { Long.class.getName() });
88      public static final FinderPath FINDER_PATH_FIND_BY_OBC_E2 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
89              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
90              "findByE2",
91              new String[] {
92                  Long.class.getName(),
93                  
94              "java.lang.Integer", "java.lang.Integer",
95                  "com.liferay.portal.kernel.util.OrderByComparator"
96              });
97      public static final FinderPath FINDER_PATH_COUNT_BY_E2 = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
98              AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
99              "countByE2", new String[] { Long.class.getName() });
100     public static final FinderPath FINDER_PATH_FIND_BY_E_E = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
101             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
102             "findByE_E",
103             new String[] { Long.class.getName(), Long.class.getName() });
104     public static final FinderPath FINDER_PATH_FIND_BY_OBC_E_E = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
105             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
106             "findByE_E",
107             new String[] {
108                 Long.class.getName(), Long.class.getName(),
109                 
110             "java.lang.Integer", "java.lang.Integer",
111                 "com.liferay.portal.kernel.util.OrderByComparator"
112             });
113     public static final FinderPath FINDER_PATH_COUNT_BY_E_E = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
114             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
115             "countByE_E",
116             new String[] { Long.class.getName(), Long.class.getName() });
117     public static final FinderPath FINDER_PATH_FIND_BY_E1_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
118             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
119             "findByE1_T",
120             new String[] { Long.class.getName(), Integer.class.getName() });
121     public static final FinderPath FINDER_PATH_FIND_BY_OBC_E1_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
122             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
123             "findByE1_T",
124             new String[] {
125                 Long.class.getName(), Integer.class.getName(),
126                 
127             "java.lang.Integer", "java.lang.Integer",
128                 "com.liferay.portal.kernel.util.OrderByComparator"
129             });
130     public static final FinderPath FINDER_PATH_COUNT_BY_E1_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
131             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
132             "countByE1_T",
133             new String[] { Long.class.getName(), Integer.class.getName() });
134     public static final FinderPath FINDER_PATH_FIND_BY_E2_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
135             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
136             "findByE2_T",
137             new String[] { Long.class.getName(), Integer.class.getName() });
138     public static final FinderPath FINDER_PATH_FIND_BY_OBC_E2_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
139             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
140             "findByE2_T",
141             new String[] {
142                 Long.class.getName(), Integer.class.getName(),
143                 
144             "java.lang.Integer", "java.lang.Integer",
145                 "com.liferay.portal.kernel.util.OrderByComparator"
146             });
147     public static final FinderPath FINDER_PATH_COUNT_BY_E2_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
148             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
149             "countByE2_T",
150             new String[] { Long.class.getName(), Integer.class.getName() });
151     public static final FinderPath FINDER_PATH_FIND_BY_E_E_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
152             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
153             "findByE_E_T",
154             new String[] {
155                 Long.class.getName(), Long.class.getName(),
156                 Integer.class.getName()
157             });
158     public static final FinderPath FINDER_PATH_FIND_BY_OBC_E_E_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
159             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
160             "findByE_E_T",
161             new String[] {
162                 Long.class.getName(), Long.class.getName(),
163                 Integer.class.getName(),
164                 
165             "java.lang.Integer", "java.lang.Integer",
166                 "com.liferay.portal.kernel.util.OrderByComparator"
167             });
168     public static final FinderPath FINDER_PATH_COUNT_BY_E_E_T = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
169             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
170             "countByE_E_T",
171             new String[] {
172                 Long.class.getName(), Long.class.getName(),
173                 Integer.class.getName()
174             });
175     public static final FinderPath FINDER_PATH_FIND_ALL = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
176             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
177             "findAll", new String[0]);
178     public static final FinderPath FINDER_PATH_COUNT_ALL = new FinderPath(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
179             AssetLinkModelImpl.FINDER_CACHE_ENABLED, FINDER_CLASS_NAME_LIST,
180             "countAll", new String[0]);
181 
182     public void cacheResult(AssetLink assetLink) {
183         EntityCacheUtil.putResult(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
184             AssetLinkImpl.class, assetLink.getPrimaryKey(), assetLink);
185     }
186 
187     public void cacheResult(List<AssetLink> assetLinks) {
188         for (AssetLink assetLink : assetLinks) {
189             if (EntityCacheUtil.getResult(
190                         AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
191                         AssetLinkImpl.class, assetLink.getPrimaryKey(), this) == null) {
192                 cacheResult(assetLink);
193             }
194         }
195     }
196 
197     public void clearCache() {
198         CacheRegistry.clear(AssetLinkImpl.class.getName());
199         EntityCacheUtil.clearCache(AssetLinkImpl.class.getName());
200         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_ENTITY);
201         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
202     }
203 
204     public AssetLink create(long linkId) {
205         AssetLink assetLink = new AssetLinkImpl();
206 
207         assetLink.setNew(true);
208         assetLink.setPrimaryKey(linkId);
209 
210         return assetLink;
211     }
212 
213     public AssetLink remove(Serializable primaryKey)
214         throws NoSuchModelException, SystemException {
215         return remove(((Long)primaryKey).longValue());
216     }
217 
218     public AssetLink remove(long linkId)
219         throws NoSuchLinkException, SystemException {
220         Session session = null;
221 
222         try {
223             session = openSession();
224 
225             AssetLink assetLink = (AssetLink)session.get(AssetLinkImpl.class,
226                     new Long(linkId));
227 
228             if (assetLink == null) {
229                 if (_log.isWarnEnabled()) {
230                     _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + linkId);
231                 }
232 
233                 throw new NoSuchLinkException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
234                     linkId);
235             }
236 
237             return remove(assetLink);
238         }
239         catch (NoSuchLinkException nsee) {
240             throw nsee;
241         }
242         catch (Exception e) {
243             throw processException(e);
244         }
245         finally {
246             closeSession(session);
247         }
248     }
249 
250     public AssetLink remove(AssetLink assetLink) throws SystemException {
251         for (ModelListener<AssetLink> listener : listeners) {
252             listener.onBeforeRemove(assetLink);
253         }
254 
255         assetLink = removeImpl(assetLink);
256 
257         for (ModelListener<AssetLink> listener : listeners) {
258             listener.onAfterRemove(assetLink);
259         }
260 
261         return assetLink;
262     }
263 
264     protected AssetLink removeImpl(AssetLink assetLink)
265         throws SystemException {
266         assetLink = toUnwrappedModel(assetLink);
267 
268         Session session = null;
269 
270         try {
271             session = openSession();
272 
273             if (assetLink.isCachedModel() || BatchSessionUtil.isEnabled()) {
274                 Object staleObject = session.get(AssetLinkImpl.class,
275                         assetLink.getPrimaryKeyObj());
276 
277                 if (staleObject != null) {
278                     session.evict(staleObject);
279                 }
280             }
281 
282             session.delete(assetLink);
283 
284             session.flush();
285         }
286         catch (Exception e) {
287             throw processException(e);
288         }
289         finally {
290             closeSession(session);
291         }
292 
293         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
294 
295         EntityCacheUtil.removeResult(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
296             AssetLinkImpl.class, assetLink.getPrimaryKey());
297 
298         return assetLink;
299     }
300 
301     public AssetLink updateImpl(
302         com.liferay.portlet.asset.model.AssetLink assetLink, boolean merge)
303         throws SystemException {
304         assetLink = toUnwrappedModel(assetLink);
305 
306         Session session = null;
307 
308         try {
309             session = openSession();
310 
311             BatchSessionUtil.update(session, assetLink, merge);
312 
313             assetLink.setNew(false);
314         }
315         catch (Exception e) {
316             throw processException(e);
317         }
318         finally {
319             closeSession(session);
320         }
321 
322         FinderCacheUtil.clearCache(FINDER_CLASS_NAME_LIST);
323 
324         EntityCacheUtil.putResult(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
325             AssetLinkImpl.class, assetLink.getPrimaryKey(), assetLink);
326 
327         return assetLink;
328     }
329 
330     protected AssetLink toUnwrappedModel(AssetLink assetLink) {
331         if (assetLink instanceof AssetLinkImpl) {
332             return assetLink;
333         }
334 
335         AssetLinkImpl assetLinkImpl = new AssetLinkImpl();
336 
337         assetLinkImpl.setNew(assetLink.isNew());
338         assetLinkImpl.setPrimaryKey(assetLink.getPrimaryKey());
339 
340         assetLinkImpl.setLinkId(assetLink.getLinkId());
341         assetLinkImpl.setCompanyId(assetLink.getCompanyId());
342         assetLinkImpl.setUserId(assetLink.getUserId());
343         assetLinkImpl.setUserName(assetLink.getUserName());
344         assetLinkImpl.setCreateDate(assetLink.getCreateDate());
345         assetLinkImpl.setEntryId1(assetLink.getEntryId1());
346         assetLinkImpl.setEntryId2(assetLink.getEntryId2());
347         assetLinkImpl.setType(assetLink.getType());
348         assetLinkImpl.setWeight(assetLink.getWeight());
349 
350         return assetLinkImpl;
351     }
352 
353     public AssetLink findByPrimaryKey(Serializable primaryKey)
354         throws NoSuchModelException, SystemException {
355         return findByPrimaryKey(((Long)primaryKey).longValue());
356     }
357 
358     public AssetLink findByPrimaryKey(long linkId)
359         throws NoSuchLinkException, SystemException {
360         AssetLink assetLink = fetchByPrimaryKey(linkId);
361 
362         if (assetLink == null) {
363             if (_log.isWarnEnabled()) {
364                 _log.warn(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY + linkId);
365             }
366 
367             throw new NoSuchLinkException(_NO_SUCH_ENTITY_WITH_PRIMARY_KEY +
368                 linkId);
369         }
370 
371         return assetLink;
372     }
373 
374     public AssetLink fetchByPrimaryKey(Serializable primaryKey)
375         throws SystemException {
376         return fetchByPrimaryKey(((Long)primaryKey).longValue());
377     }
378 
379     public AssetLink fetchByPrimaryKey(long linkId) throws SystemException {
380         AssetLink assetLink = (AssetLink)EntityCacheUtil.getResult(AssetLinkModelImpl.ENTITY_CACHE_ENABLED,
381                 AssetLinkImpl.class, linkId, this);
382 
383         if (assetLink == null) {
384             Session session = null;
385 
386             try {
387                 session = openSession();
388 
389                 assetLink = (AssetLink)session.get(AssetLinkImpl.class,
390                         new Long(linkId));
391             }
392             catch (Exception e) {
393                 throw processException(e);
394             }
395             finally {
396                 if (assetLink != null) {
397                     cacheResult(assetLink);
398                 }
399 
400                 closeSession(session);
401             }
402         }
403 
404         return assetLink;
405     }
406 
407     public List<AssetLink> findByE1(long entryId1) throws SystemException {
408         Object[] finderArgs = new Object[] { new Long(entryId1) };
409 
410         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E1,
411                 finderArgs, this);
412 
413         if (list == null) {
414             Session session = null;
415 
416             try {
417                 session = openSession();
418 
419                 StringBundler query = new StringBundler(3);
420 
421                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
422 
423                 query.append(_FINDER_COLUMN_E1_ENTRYID1_2);
424 
425                 query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
426 
427                 String sql = query.toString();
428 
429                 Query q = session.createQuery(sql);
430 
431                 QueryPos qPos = QueryPos.getInstance(q);
432 
433                 qPos.add(entryId1);
434 
435                 list = q.list();
436             }
437             catch (Exception e) {
438                 throw processException(e);
439             }
440             finally {
441                 if (list == null) {
442                     list = new ArrayList<AssetLink>();
443                 }
444 
445                 cacheResult(list);
446 
447                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E1, finderArgs,
448                     list);
449 
450                 closeSession(session);
451             }
452         }
453 
454         return list;
455     }
456 
457     public List<AssetLink> findByE1(long entryId1, int start, int end)
458         throws SystemException {
459         return findByE1(entryId1, start, end, null);
460     }
461 
462     public List<AssetLink> findByE1(long entryId1, int start, int end,
463         OrderByComparator orderByComparator) throws SystemException {
464         Object[] finderArgs = new Object[] {
465                 new Long(entryId1),
466                 
467                 String.valueOf(start), String.valueOf(end),
468                 String.valueOf(orderByComparator)
469             };
470 
471         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E1,
472                 finderArgs, this);
473 
474         if (list == null) {
475             Session session = null;
476 
477             try {
478                 session = openSession();
479 
480                 StringBundler query = null;
481 
482                 if (orderByComparator != null) {
483                     query = new StringBundler(3 +
484                             (orderByComparator.getOrderByFields().length * 3));
485                 }
486                 else {
487                     query = new StringBundler(3);
488                 }
489 
490                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
491 
492                 query.append(_FINDER_COLUMN_E1_ENTRYID1_2);
493 
494                 if (orderByComparator != null) {
495                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
496                         orderByComparator);
497                 }
498 
499                 else {
500                     query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
501                 }
502 
503                 String sql = query.toString();
504 
505                 Query q = session.createQuery(sql);
506 
507                 QueryPos qPos = QueryPos.getInstance(q);
508 
509                 qPos.add(entryId1);
510 
511                 list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
512                         end);
513             }
514             catch (Exception e) {
515                 throw processException(e);
516             }
517             finally {
518                 if (list == null) {
519                     list = new ArrayList<AssetLink>();
520                 }
521 
522                 cacheResult(list);
523 
524                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E1,
525                     finderArgs, list);
526 
527                 closeSession(session);
528             }
529         }
530 
531         return list;
532     }
533 
534     public AssetLink findByE1_First(long entryId1,
535         OrderByComparator orderByComparator)
536         throws NoSuchLinkException, SystemException {
537         List<AssetLink> list = findByE1(entryId1, 0, 1, orderByComparator);
538 
539         if (list.isEmpty()) {
540             StringBundler msg = new StringBundler(4);
541 
542             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
543 
544             msg.append("entryId1=");
545             msg.append(entryId1);
546 
547             msg.append(StringPool.CLOSE_CURLY_BRACE);
548 
549             throw new NoSuchLinkException(msg.toString());
550         }
551         else {
552             return list.get(0);
553         }
554     }
555 
556     public AssetLink findByE1_Last(long entryId1,
557         OrderByComparator orderByComparator)
558         throws NoSuchLinkException, SystemException {
559         int count = countByE1(entryId1);
560 
561         List<AssetLink> list = findByE1(entryId1, count - 1, count,
562                 orderByComparator);
563 
564         if (list.isEmpty()) {
565             StringBundler msg = new StringBundler(4);
566 
567             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
568 
569             msg.append("entryId1=");
570             msg.append(entryId1);
571 
572             msg.append(StringPool.CLOSE_CURLY_BRACE);
573 
574             throw new NoSuchLinkException(msg.toString());
575         }
576         else {
577             return list.get(0);
578         }
579     }
580 
581     public AssetLink[] findByE1_PrevAndNext(long linkId, long entryId1,
582         OrderByComparator orderByComparator)
583         throws NoSuchLinkException, SystemException {
584         AssetLink assetLink = findByPrimaryKey(linkId);
585 
586         int count = countByE1(entryId1);
587 
588         Session session = null;
589 
590         try {
591             session = openSession();
592 
593             StringBundler query = null;
594 
595             if (orderByComparator != null) {
596                 query = new StringBundler(3 +
597                         (orderByComparator.getOrderByFields().length * 3));
598             }
599             else {
600                 query = new StringBundler(3);
601             }
602 
603             query.append(_SQL_SELECT_ASSETLINK_WHERE);
604 
605             query.append(_FINDER_COLUMN_E1_ENTRYID1_2);
606 
607             if (orderByComparator != null) {
608                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
609                     orderByComparator);
610             }
611 
612             else {
613                 query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
614             }
615 
616             String sql = query.toString();
617 
618             Query q = session.createQuery(sql);
619 
620             QueryPos qPos = QueryPos.getInstance(q);
621 
622             qPos.add(entryId1);
623 
624             Object[] objArray = QueryUtil.getPrevAndNext(q, count,
625                     orderByComparator, assetLink);
626 
627             AssetLink[] array = new AssetLinkImpl[3];
628 
629             array[0] = (AssetLink)objArray[0];
630             array[1] = (AssetLink)objArray[1];
631             array[2] = (AssetLink)objArray[2];
632 
633             return array;
634         }
635         catch (Exception e) {
636             throw processException(e);
637         }
638         finally {
639             closeSession(session);
640         }
641     }
642 
643     public List<AssetLink> findByE2(long entryId2) throws SystemException {
644         Object[] finderArgs = new Object[] { new Long(entryId2) };
645 
646         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E2,
647                 finderArgs, this);
648 
649         if (list == null) {
650             Session session = null;
651 
652             try {
653                 session = openSession();
654 
655                 StringBundler query = new StringBundler(3);
656 
657                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
658 
659                 query.append(_FINDER_COLUMN_E2_ENTRYID2_2);
660 
661                 query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
662 
663                 String sql = query.toString();
664 
665                 Query q = session.createQuery(sql);
666 
667                 QueryPos qPos = QueryPos.getInstance(q);
668 
669                 qPos.add(entryId2);
670 
671                 list = q.list();
672             }
673             catch (Exception e) {
674                 throw processException(e);
675             }
676             finally {
677                 if (list == null) {
678                     list = new ArrayList<AssetLink>();
679                 }
680 
681                 cacheResult(list);
682 
683                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E2, finderArgs,
684                     list);
685 
686                 closeSession(session);
687             }
688         }
689 
690         return list;
691     }
692 
693     public List<AssetLink> findByE2(long entryId2, int start, int end)
694         throws SystemException {
695         return findByE2(entryId2, start, end, null);
696     }
697 
698     public List<AssetLink> findByE2(long entryId2, int start, int end,
699         OrderByComparator orderByComparator) throws SystemException {
700         Object[] finderArgs = new Object[] {
701                 new Long(entryId2),
702                 
703                 String.valueOf(start), String.valueOf(end),
704                 String.valueOf(orderByComparator)
705             };
706 
707         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E2,
708                 finderArgs, this);
709 
710         if (list == null) {
711             Session session = null;
712 
713             try {
714                 session = openSession();
715 
716                 StringBundler query = null;
717 
718                 if (orderByComparator != null) {
719                     query = new StringBundler(3 +
720                             (orderByComparator.getOrderByFields().length * 3));
721                 }
722                 else {
723                     query = new StringBundler(3);
724                 }
725 
726                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
727 
728                 query.append(_FINDER_COLUMN_E2_ENTRYID2_2);
729 
730                 if (orderByComparator != null) {
731                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
732                         orderByComparator);
733                 }
734 
735                 else {
736                     query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
737                 }
738 
739                 String sql = query.toString();
740 
741                 Query q = session.createQuery(sql);
742 
743                 QueryPos qPos = QueryPos.getInstance(q);
744 
745                 qPos.add(entryId2);
746 
747                 list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
748                         end);
749             }
750             catch (Exception e) {
751                 throw processException(e);
752             }
753             finally {
754                 if (list == null) {
755                     list = new ArrayList<AssetLink>();
756                 }
757 
758                 cacheResult(list);
759 
760                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E2,
761                     finderArgs, list);
762 
763                 closeSession(session);
764             }
765         }
766 
767         return list;
768     }
769 
770     public AssetLink findByE2_First(long entryId2,
771         OrderByComparator orderByComparator)
772         throws NoSuchLinkException, SystemException {
773         List<AssetLink> list = findByE2(entryId2, 0, 1, orderByComparator);
774 
775         if (list.isEmpty()) {
776             StringBundler msg = new StringBundler(4);
777 
778             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
779 
780             msg.append("entryId2=");
781             msg.append(entryId2);
782 
783             msg.append(StringPool.CLOSE_CURLY_BRACE);
784 
785             throw new NoSuchLinkException(msg.toString());
786         }
787         else {
788             return list.get(0);
789         }
790     }
791 
792     public AssetLink findByE2_Last(long entryId2,
793         OrderByComparator orderByComparator)
794         throws NoSuchLinkException, SystemException {
795         int count = countByE2(entryId2);
796 
797         List<AssetLink> list = findByE2(entryId2, count - 1, count,
798                 orderByComparator);
799 
800         if (list.isEmpty()) {
801             StringBundler msg = new StringBundler(4);
802 
803             msg.append(_NO_SUCH_ENTITY_WITH_KEY);
804 
805             msg.append("entryId2=");
806             msg.append(entryId2);
807 
808             msg.append(StringPool.CLOSE_CURLY_BRACE);
809 
810             throw new NoSuchLinkException(msg.toString());
811         }
812         else {
813             return list.get(0);
814         }
815     }
816 
817     public AssetLink[] findByE2_PrevAndNext(long linkId, long entryId2,
818         OrderByComparator orderByComparator)
819         throws NoSuchLinkException, SystemException {
820         AssetLink assetLink = findByPrimaryKey(linkId);
821 
822         int count = countByE2(entryId2);
823 
824         Session session = null;
825 
826         try {
827             session = openSession();
828 
829             StringBundler query = null;
830 
831             if (orderByComparator != null) {
832                 query = new StringBundler(3 +
833                         (orderByComparator.getOrderByFields().length * 3));
834             }
835             else {
836                 query = new StringBundler(3);
837             }
838 
839             query.append(_SQL_SELECT_ASSETLINK_WHERE);
840 
841             query.append(_FINDER_COLUMN_E2_ENTRYID2_2);
842 
843             if (orderByComparator != null) {
844                 appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
845                     orderByComparator);
846             }
847 
848             else {
849                 query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
850             }
851 
852             String sql = query.toString();
853 
854             Query q = session.createQuery(sql);
855 
856             QueryPos qPos = QueryPos.getInstance(q);
857 
858             qPos.add(entryId2);
859 
860             Object[] objArray = QueryUtil.getPrevAndNext(q, count,
861                     orderByComparator, assetLink);
862 
863             AssetLink[] array = new AssetLinkImpl[3];
864 
865             array[0] = (AssetLink)objArray[0];
866             array[1] = (AssetLink)objArray[1];
867             array[2] = (AssetLink)objArray[2];
868 
869             return array;
870         }
871         catch (Exception e) {
872             throw processException(e);
873         }
874         finally {
875             closeSession(session);
876         }
877     }
878 
879     public List<AssetLink> findByE_E(long entryId1, long entryId2)
880         throws SystemException {
881         Object[] finderArgs = new Object[] {
882                 new Long(entryId1), new Long(entryId2)
883             };
884 
885         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E_E,
886                 finderArgs, this);
887 
888         if (list == null) {
889             Session session = null;
890 
891             try {
892                 session = openSession();
893 
894                 StringBundler query = new StringBundler(4);
895 
896                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
897 
898                 query.append(_FINDER_COLUMN_E_E_ENTRYID1_2);
899 
900                 query.append(_FINDER_COLUMN_E_E_ENTRYID2_2);
901 
902                 query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
903 
904                 String sql = query.toString();
905 
906                 Query q = session.createQuery(sql);
907 
908                 QueryPos qPos = QueryPos.getInstance(q);
909 
910                 qPos.add(entryId1);
911 
912                 qPos.add(entryId2);
913 
914                 list = q.list();
915             }
916             catch (Exception e) {
917                 throw processException(e);
918             }
919             finally {
920                 if (list == null) {
921                     list = new ArrayList<AssetLink>();
922                 }
923 
924                 cacheResult(list);
925 
926                 FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E_E, finderArgs,
927                     list);
928 
929                 closeSession(session);
930             }
931         }
932 
933         return list;
934     }
935 
936     public List<AssetLink> findByE_E(long entryId1, long entryId2, int start,
937         int end) throws SystemException {
938         return findByE_E(entryId1, entryId2, start, end, null);
939     }
940 
941     public List<AssetLink> findByE_E(long entryId1, long entryId2, int start,
942         int end, OrderByComparator orderByComparator) throws SystemException {
943         Object[] finderArgs = new Object[] {
944                 new Long(entryId1), new Long(entryId2),
945                 
946                 String.valueOf(start), String.valueOf(end),
947                 String.valueOf(orderByComparator)
948             };
949 
950         List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E_E,
951                 finderArgs, this);
952 
953         if (list == null) {
954             Session session = null;
955 
956             try {
957                 session = openSession();
958 
959                 StringBundler query = null;
960 
961                 if (orderByComparator != null) {
962                     query = new StringBundler(4 +
963                             (orderByComparator.getOrderByFields().length * 3));
964                 }
965                 else {
966                     query = new StringBundler(4);
967                 }
968 
969                 query.append(_SQL_SELECT_ASSETLINK_WHERE);
970 
971                 query.append(_FINDER_COLUMN_E_E_ENTRYID1_2);
972 
973                 query.append(_FINDER_COLUMN_E_E_ENTRYID2_2);
974 
975                 if (orderByComparator != null) {
976                     appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
977                         orderByComparator);
978                 }
979 
980                 else {
981                     query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
982                 }
983 
984                 String sql = query.toString();
985 
986                 Query q = session.createQuery(sql);
987 
988                 QueryPos qPos = QueryPos.getInstance(q);
989 
990                 qPos.add(entryId1);
991 
992                 qPos.add(entryId2);
993 
994                 list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
995                         end);
996             }
997             catch (Exception e) {
998                 throw processException(e);
999             }
1000            finally {
1001                if (list == null) {
1002                    list = new ArrayList<AssetLink>();
1003                }
1004
1005                cacheResult(list);
1006
1007                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E_E,
1008                    finderArgs, list);
1009
1010                closeSession(session);
1011            }
1012        }
1013
1014        return list;
1015    }
1016
1017    public AssetLink findByE_E_First(long entryId1, long entryId2,
1018        OrderByComparator orderByComparator)
1019        throws NoSuchLinkException, SystemException {
1020        List<AssetLink> list = findByE_E(entryId1, entryId2, 0, 1,
1021                orderByComparator);
1022
1023        if (list.isEmpty()) {
1024            StringBundler msg = new StringBundler(6);
1025
1026            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1027
1028            msg.append("entryId1=");
1029            msg.append(entryId1);
1030
1031            msg.append(", entryId2=");
1032            msg.append(entryId2);
1033
1034            msg.append(StringPool.CLOSE_CURLY_BRACE);
1035
1036            throw new NoSuchLinkException(msg.toString());
1037        }
1038        else {
1039            return list.get(0);
1040        }
1041    }
1042
1043    public AssetLink findByE_E_Last(long entryId1, long entryId2,
1044        OrderByComparator orderByComparator)
1045        throws NoSuchLinkException, SystemException {
1046        int count = countByE_E(entryId1, entryId2);
1047
1048        List<AssetLink> list = findByE_E(entryId1, entryId2, count - 1, count,
1049                orderByComparator);
1050
1051        if (list.isEmpty()) {
1052            StringBundler msg = new StringBundler(6);
1053
1054            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1055
1056            msg.append("entryId1=");
1057            msg.append(entryId1);
1058
1059            msg.append(", entryId2=");
1060            msg.append(entryId2);
1061
1062            msg.append(StringPool.CLOSE_CURLY_BRACE);
1063
1064            throw new NoSuchLinkException(msg.toString());
1065        }
1066        else {
1067            return list.get(0);
1068        }
1069    }
1070
1071    public AssetLink[] findByE_E_PrevAndNext(long linkId, long entryId1,
1072        long entryId2, OrderByComparator orderByComparator)
1073        throws NoSuchLinkException, SystemException {
1074        AssetLink assetLink = findByPrimaryKey(linkId);
1075
1076        int count = countByE_E(entryId1, entryId2);
1077
1078        Session session = null;
1079
1080        try {
1081            session = openSession();
1082
1083            StringBundler query = null;
1084
1085            if (orderByComparator != null) {
1086                query = new StringBundler(4 +
1087                        (orderByComparator.getOrderByFields().length * 3));
1088            }
1089            else {
1090                query = new StringBundler(4);
1091            }
1092
1093            query.append(_SQL_SELECT_ASSETLINK_WHERE);
1094
1095            query.append(_FINDER_COLUMN_E_E_ENTRYID1_2);
1096
1097            query.append(_FINDER_COLUMN_E_E_ENTRYID2_2);
1098
1099            if (orderByComparator != null) {
1100                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1101                    orderByComparator);
1102            }
1103
1104            else {
1105                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1106            }
1107
1108            String sql = query.toString();
1109
1110            Query q = session.createQuery(sql);
1111
1112            QueryPos qPos = QueryPos.getInstance(q);
1113
1114            qPos.add(entryId1);
1115
1116            qPos.add(entryId2);
1117
1118            Object[] objArray = QueryUtil.getPrevAndNext(q, count,
1119                    orderByComparator, assetLink);
1120
1121            AssetLink[] array = new AssetLinkImpl[3];
1122
1123            array[0] = (AssetLink)objArray[0];
1124            array[1] = (AssetLink)objArray[1];
1125            array[2] = (AssetLink)objArray[2];
1126
1127            return array;
1128        }
1129        catch (Exception e) {
1130            throw processException(e);
1131        }
1132        finally {
1133            closeSession(session);
1134        }
1135    }
1136
1137    public List<AssetLink> findByE1_T(long entryId1, int type)
1138        throws SystemException {
1139        Object[] finderArgs = new Object[] { new Long(entryId1), new Integer(type) };
1140
1141        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E1_T,
1142                finderArgs, this);
1143
1144        if (list == null) {
1145            Session session = null;
1146
1147            try {
1148                session = openSession();
1149
1150                StringBundler query = new StringBundler(4);
1151
1152                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1153
1154                query.append(_FINDER_COLUMN_E1_T_ENTRYID1_2);
1155
1156                query.append(_FINDER_COLUMN_E1_T_TYPE_2);
1157
1158                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1159
1160                String sql = query.toString();
1161
1162                Query q = session.createQuery(sql);
1163
1164                QueryPos qPos = QueryPos.getInstance(q);
1165
1166                qPos.add(entryId1);
1167
1168                qPos.add(type);
1169
1170                list = q.list();
1171            }
1172            catch (Exception e) {
1173                throw processException(e);
1174            }
1175            finally {
1176                if (list == null) {
1177                    list = new ArrayList<AssetLink>();
1178                }
1179
1180                cacheResult(list);
1181
1182                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E1_T, finderArgs,
1183                    list);
1184
1185                closeSession(session);
1186            }
1187        }
1188
1189        return list;
1190    }
1191
1192    public List<AssetLink> findByE1_T(long entryId1, int type, int start,
1193        int end) throws SystemException {
1194        return findByE1_T(entryId1, type, start, end, null);
1195    }
1196
1197    public List<AssetLink> findByE1_T(long entryId1, int type, int start,
1198        int end, OrderByComparator orderByComparator) throws SystemException {
1199        Object[] finderArgs = new Object[] {
1200                new Long(entryId1), new Integer(type),
1201                
1202                String.valueOf(start), String.valueOf(end),
1203                String.valueOf(orderByComparator)
1204            };
1205
1206        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E1_T,
1207                finderArgs, this);
1208
1209        if (list == null) {
1210            Session session = null;
1211
1212            try {
1213                session = openSession();
1214
1215                StringBundler query = null;
1216
1217                if (orderByComparator != null) {
1218                    query = new StringBundler(4 +
1219                            (orderByComparator.getOrderByFields().length * 3));
1220                }
1221                else {
1222                    query = new StringBundler(4);
1223                }
1224
1225                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1226
1227                query.append(_FINDER_COLUMN_E1_T_ENTRYID1_2);
1228
1229                query.append(_FINDER_COLUMN_E1_T_TYPE_2);
1230
1231                if (orderByComparator != null) {
1232                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1233                        orderByComparator);
1234                }
1235
1236                else {
1237                    query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1238                }
1239
1240                String sql = query.toString();
1241
1242                Query q = session.createQuery(sql);
1243
1244                QueryPos qPos = QueryPos.getInstance(q);
1245
1246                qPos.add(entryId1);
1247
1248                qPos.add(type);
1249
1250                list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
1251                        end);
1252            }
1253            catch (Exception e) {
1254                throw processException(e);
1255            }
1256            finally {
1257                if (list == null) {
1258                    list = new ArrayList<AssetLink>();
1259                }
1260
1261                cacheResult(list);
1262
1263                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E1_T,
1264                    finderArgs, list);
1265
1266                closeSession(session);
1267            }
1268        }
1269
1270        return list;
1271    }
1272
1273    public AssetLink findByE1_T_First(long entryId1, int type,
1274        OrderByComparator orderByComparator)
1275        throws NoSuchLinkException, SystemException {
1276        List<AssetLink> list = findByE1_T(entryId1, type, 0, 1,
1277                orderByComparator);
1278
1279        if (list.isEmpty()) {
1280            StringBundler msg = new StringBundler(6);
1281
1282            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1283
1284            msg.append("entryId1=");
1285            msg.append(entryId1);
1286
1287            msg.append(", type=");
1288            msg.append(type);
1289
1290            msg.append(StringPool.CLOSE_CURLY_BRACE);
1291
1292            throw new NoSuchLinkException(msg.toString());
1293        }
1294        else {
1295            return list.get(0);
1296        }
1297    }
1298
1299    public AssetLink findByE1_T_Last(long entryId1, int type,
1300        OrderByComparator orderByComparator)
1301        throws NoSuchLinkException, SystemException {
1302        int count = countByE1_T(entryId1, type);
1303
1304        List<AssetLink> list = findByE1_T(entryId1, type, count - 1, count,
1305                orderByComparator);
1306
1307        if (list.isEmpty()) {
1308            StringBundler msg = new StringBundler(6);
1309
1310            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1311
1312            msg.append("entryId1=");
1313            msg.append(entryId1);
1314
1315            msg.append(", type=");
1316            msg.append(type);
1317
1318            msg.append(StringPool.CLOSE_CURLY_BRACE);
1319
1320            throw new NoSuchLinkException(msg.toString());
1321        }
1322        else {
1323            return list.get(0);
1324        }
1325    }
1326
1327    public AssetLink[] findByE1_T_PrevAndNext(long linkId, long entryId1,
1328        int type, OrderByComparator orderByComparator)
1329        throws NoSuchLinkException, SystemException {
1330        AssetLink assetLink = findByPrimaryKey(linkId);
1331
1332        int count = countByE1_T(entryId1, type);
1333
1334        Session session = null;
1335
1336        try {
1337            session = openSession();
1338
1339            StringBundler query = null;
1340
1341            if (orderByComparator != null) {
1342                query = new StringBundler(4 +
1343                        (orderByComparator.getOrderByFields().length * 3));
1344            }
1345            else {
1346                query = new StringBundler(4);
1347            }
1348
1349            query.append(_SQL_SELECT_ASSETLINK_WHERE);
1350
1351            query.append(_FINDER_COLUMN_E1_T_ENTRYID1_2);
1352
1353            query.append(_FINDER_COLUMN_E1_T_TYPE_2);
1354
1355            if (orderByComparator != null) {
1356                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1357                    orderByComparator);
1358            }
1359
1360            else {
1361                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1362            }
1363
1364            String sql = query.toString();
1365
1366            Query q = session.createQuery(sql);
1367
1368            QueryPos qPos = QueryPos.getInstance(q);
1369
1370            qPos.add(entryId1);
1371
1372            qPos.add(type);
1373
1374            Object[] objArray = QueryUtil.getPrevAndNext(q, count,
1375                    orderByComparator, assetLink);
1376
1377            AssetLink[] array = new AssetLinkImpl[3];
1378
1379            array[0] = (AssetLink)objArray[0];
1380            array[1] = (AssetLink)objArray[1];
1381            array[2] = (AssetLink)objArray[2];
1382
1383            return array;
1384        }
1385        catch (Exception e) {
1386            throw processException(e);
1387        }
1388        finally {
1389            closeSession(session);
1390        }
1391    }
1392
1393    public List<AssetLink> findByE2_T(long entryId2, int type)
1394        throws SystemException {
1395        Object[] finderArgs = new Object[] { new Long(entryId2), new Integer(type) };
1396
1397        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E2_T,
1398                finderArgs, this);
1399
1400        if (list == null) {
1401            Session session = null;
1402
1403            try {
1404                session = openSession();
1405
1406                StringBundler query = new StringBundler(4);
1407
1408                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1409
1410                query.append(_FINDER_COLUMN_E2_T_ENTRYID2_2);
1411
1412                query.append(_FINDER_COLUMN_E2_T_TYPE_2);
1413
1414                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1415
1416                String sql = query.toString();
1417
1418                Query q = session.createQuery(sql);
1419
1420                QueryPos qPos = QueryPos.getInstance(q);
1421
1422                qPos.add(entryId2);
1423
1424                qPos.add(type);
1425
1426                list = q.list();
1427            }
1428            catch (Exception e) {
1429                throw processException(e);
1430            }
1431            finally {
1432                if (list == null) {
1433                    list = new ArrayList<AssetLink>();
1434                }
1435
1436                cacheResult(list);
1437
1438                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E2_T, finderArgs,
1439                    list);
1440
1441                closeSession(session);
1442            }
1443        }
1444
1445        return list;
1446    }
1447
1448    public List<AssetLink> findByE2_T(long entryId2, int type, int start,
1449        int end) throws SystemException {
1450        return findByE2_T(entryId2, type, start, end, null);
1451    }
1452
1453    public List<AssetLink> findByE2_T(long entryId2, int type, int start,
1454        int end, OrderByComparator orderByComparator) throws SystemException {
1455        Object[] finderArgs = new Object[] {
1456                new Long(entryId2), new Integer(type),
1457                
1458                String.valueOf(start), String.valueOf(end),
1459                String.valueOf(orderByComparator)
1460            };
1461
1462        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E2_T,
1463                finderArgs, this);
1464
1465        if (list == null) {
1466            Session session = null;
1467
1468            try {
1469                session = openSession();
1470
1471                StringBundler query = null;
1472
1473                if (orderByComparator != null) {
1474                    query = new StringBundler(4 +
1475                            (orderByComparator.getOrderByFields().length * 3));
1476                }
1477                else {
1478                    query = new StringBundler(4);
1479                }
1480
1481                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1482
1483                query.append(_FINDER_COLUMN_E2_T_ENTRYID2_2);
1484
1485                query.append(_FINDER_COLUMN_E2_T_TYPE_2);
1486
1487                if (orderByComparator != null) {
1488                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1489                        orderByComparator);
1490                }
1491
1492                else {
1493                    query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1494                }
1495
1496                String sql = query.toString();
1497
1498                Query q = session.createQuery(sql);
1499
1500                QueryPos qPos = QueryPos.getInstance(q);
1501
1502                qPos.add(entryId2);
1503
1504                qPos.add(type);
1505
1506                list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
1507                        end);
1508            }
1509            catch (Exception e) {
1510                throw processException(e);
1511            }
1512            finally {
1513                if (list == null) {
1514                    list = new ArrayList<AssetLink>();
1515                }
1516
1517                cacheResult(list);
1518
1519                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E2_T,
1520                    finderArgs, list);
1521
1522                closeSession(session);
1523            }
1524        }
1525
1526        return list;
1527    }
1528
1529    public AssetLink findByE2_T_First(long entryId2, int type,
1530        OrderByComparator orderByComparator)
1531        throws NoSuchLinkException, SystemException {
1532        List<AssetLink> list = findByE2_T(entryId2, type, 0, 1,
1533                orderByComparator);
1534
1535        if (list.isEmpty()) {
1536            StringBundler msg = new StringBundler(6);
1537
1538            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1539
1540            msg.append("entryId2=");
1541            msg.append(entryId2);
1542
1543            msg.append(", type=");
1544            msg.append(type);
1545
1546            msg.append(StringPool.CLOSE_CURLY_BRACE);
1547
1548            throw new NoSuchLinkException(msg.toString());
1549        }
1550        else {
1551            return list.get(0);
1552        }
1553    }
1554
1555    public AssetLink findByE2_T_Last(long entryId2, int type,
1556        OrderByComparator orderByComparator)
1557        throws NoSuchLinkException, SystemException {
1558        int count = countByE2_T(entryId2, type);
1559
1560        List<AssetLink> list = findByE2_T(entryId2, type, count - 1, count,
1561                orderByComparator);
1562
1563        if (list.isEmpty()) {
1564            StringBundler msg = new StringBundler(6);
1565
1566            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1567
1568            msg.append("entryId2=");
1569            msg.append(entryId2);
1570
1571            msg.append(", type=");
1572            msg.append(type);
1573
1574            msg.append(StringPool.CLOSE_CURLY_BRACE);
1575
1576            throw new NoSuchLinkException(msg.toString());
1577        }
1578        else {
1579            return list.get(0);
1580        }
1581    }
1582
1583    public AssetLink[] findByE2_T_PrevAndNext(long linkId, long entryId2,
1584        int type, OrderByComparator orderByComparator)
1585        throws NoSuchLinkException, SystemException {
1586        AssetLink assetLink = findByPrimaryKey(linkId);
1587
1588        int count = countByE2_T(entryId2, type);
1589
1590        Session session = null;
1591
1592        try {
1593            session = openSession();
1594
1595            StringBundler query = null;
1596
1597            if (orderByComparator != null) {
1598                query = new StringBundler(4 +
1599                        (orderByComparator.getOrderByFields().length * 3));
1600            }
1601            else {
1602                query = new StringBundler(4);
1603            }
1604
1605            query.append(_SQL_SELECT_ASSETLINK_WHERE);
1606
1607            query.append(_FINDER_COLUMN_E2_T_ENTRYID2_2);
1608
1609            query.append(_FINDER_COLUMN_E2_T_TYPE_2);
1610
1611            if (orderByComparator != null) {
1612                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1613                    orderByComparator);
1614            }
1615
1616            else {
1617                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1618            }
1619
1620            String sql = query.toString();
1621
1622            Query q = session.createQuery(sql);
1623
1624            QueryPos qPos = QueryPos.getInstance(q);
1625
1626            qPos.add(entryId2);
1627
1628            qPos.add(type);
1629
1630            Object[] objArray = QueryUtil.getPrevAndNext(q, count,
1631                    orderByComparator, assetLink);
1632
1633            AssetLink[] array = new AssetLinkImpl[3];
1634
1635            array[0] = (AssetLink)objArray[0];
1636            array[1] = (AssetLink)objArray[1];
1637            array[2] = (AssetLink)objArray[2];
1638
1639            return array;
1640        }
1641        catch (Exception e) {
1642            throw processException(e);
1643        }
1644        finally {
1645            closeSession(session);
1646        }
1647    }
1648
1649    public List<AssetLink> findByE_E_T(long entryId1, long entryId2, int type)
1650        throws SystemException {
1651        Object[] finderArgs = new Object[] {
1652                new Long(entryId1), new Long(entryId2), new Integer(type)
1653            };
1654
1655        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_E_E_T,
1656                finderArgs, this);
1657
1658        if (list == null) {
1659            Session session = null;
1660
1661            try {
1662                session = openSession();
1663
1664                StringBundler query = new StringBundler(5);
1665
1666                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1667
1668                query.append(_FINDER_COLUMN_E_E_T_ENTRYID1_2);
1669
1670                query.append(_FINDER_COLUMN_E_E_T_ENTRYID2_2);
1671
1672                query.append(_FINDER_COLUMN_E_E_T_TYPE_2);
1673
1674                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1675
1676                String sql = query.toString();
1677
1678                Query q = session.createQuery(sql);
1679
1680                QueryPos qPos = QueryPos.getInstance(q);
1681
1682                qPos.add(entryId1);
1683
1684                qPos.add(entryId2);
1685
1686                qPos.add(type);
1687
1688                list = q.list();
1689            }
1690            catch (Exception e) {
1691                throw processException(e);
1692            }
1693            finally {
1694                if (list == null) {
1695                    list = new ArrayList<AssetLink>();
1696                }
1697
1698                cacheResult(list);
1699
1700                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_E_E_T,
1701                    finderArgs, list);
1702
1703                closeSession(session);
1704            }
1705        }
1706
1707        return list;
1708    }
1709
1710    public List<AssetLink> findByE_E_T(long entryId1, long entryId2, int type,
1711        int start, int end) throws SystemException {
1712        return findByE_E_T(entryId1, entryId2, type, start, end, null);
1713    }
1714
1715    public List<AssetLink> findByE_E_T(long entryId1, long entryId2, int type,
1716        int start, int end, OrderByComparator orderByComparator)
1717        throws SystemException {
1718        Object[] finderArgs = new Object[] {
1719                new Long(entryId1), new Long(entryId2), new Integer(type),
1720                
1721                String.valueOf(start), String.valueOf(end),
1722                String.valueOf(orderByComparator)
1723            };
1724
1725        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_BY_OBC_E_E_T,
1726                finderArgs, this);
1727
1728        if (list == null) {
1729            Session session = null;
1730
1731            try {
1732                session = openSession();
1733
1734                StringBundler query = null;
1735
1736                if (orderByComparator != null) {
1737                    query = new StringBundler(5 +
1738                            (orderByComparator.getOrderByFields().length * 3));
1739                }
1740                else {
1741                    query = new StringBundler(5);
1742                }
1743
1744                query.append(_SQL_SELECT_ASSETLINK_WHERE);
1745
1746                query.append(_FINDER_COLUMN_E_E_T_ENTRYID1_2);
1747
1748                query.append(_FINDER_COLUMN_E_E_T_ENTRYID2_2);
1749
1750                query.append(_FINDER_COLUMN_E_E_T_TYPE_2);
1751
1752                if (orderByComparator != null) {
1753                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1754                        orderByComparator);
1755                }
1756
1757                else {
1758                    query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1759                }
1760
1761                String sql = query.toString();
1762
1763                Query q = session.createQuery(sql);
1764
1765                QueryPos qPos = QueryPos.getInstance(q);
1766
1767                qPos.add(entryId1);
1768
1769                qPos.add(entryId2);
1770
1771                qPos.add(type);
1772
1773                list = (List<AssetLink>)QueryUtil.list(q, getDialect(), start,
1774                        end);
1775            }
1776            catch (Exception e) {
1777                throw processException(e);
1778            }
1779            finally {
1780                if (list == null) {
1781                    list = new ArrayList<AssetLink>();
1782                }
1783
1784                cacheResult(list);
1785
1786                FinderCacheUtil.putResult(FINDER_PATH_FIND_BY_OBC_E_E_T,
1787                    finderArgs, list);
1788
1789                closeSession(session);
1790            }
1791        }
1792
1793        return list;
1794    }
1795
1796    public AssetLink findByE_E_T_First(long entryId1, long entryId2, int type,
1797        OrderByComparator orderByComparator)
1798        throws NoSuchLinkException, SystemException {
1799        List<AssetLink> list = findByE_E_T(entryId1, entryId2, type, 0, 1,
1800                orderByComparator);
1801
1802        if (list.isEmpty()) {
1803            StringBundler msg = new StringBundler(8);
1804
1805            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1806
1807            msg.append("entryId1=");
1808            msg.append(entryId1);
1809
1810            msg.append(", entryId2=");
1811            msg.append(entryId2);
1812
1813            msg.append(", type=");
1814            msg.append(type);
1815
1816            msg.append(StringPool.CLOSE_CURLY_BRACE);
1817
1818            throw new NoSuchLinkException(msg.toString());
1819        }
1820        else {
1821            return list.get(0);
1822        }
1823    }
1824
1825    public AssetLink findByE_E_T_Last(long entryId1, long entryId2, int type,
1826        OrderByComparator orderByComparator)
1827        throws NoSuchLinkException, SystemException {
1828        int count = countByE_E_T(entryId1, entryId2, type);
1829
1830        List<AssetLink> list = findByE_E_T(entryId1, entryId2, type, count - 1,
1831                count, orderByComparator);
1832
1833        if (list.isEmpty()) {
1834            StringBundler msg = new StringBundler(8);
1835
1836            msg.append(_NO_SUCH_ENTITY_WITH_KEY);
1837
1838            msg.append("entryId1=");
1839            msg.append(entryId1);
1840
1841            msg.append(", entryId2=");
1842            msg.append(entryId2);
1843
1844            msg.append(", type=");
1845            msg.append(type);
1846
1847            msg.append(StringPool.CLOSE_CURLY_BRACE);
1848
1849            throw new NoSuchLinkException(msg.toString());
1850        }
1851        else {
1852            return list.get(0);
1853        }
1854    }
1855
1856    public AssetLink[] findByE_E_T_PrevAndNext(long linkId, long entryId1,
1857        long entryId2, int type, OrderByComparator orderByComparator)
1858        throws NoSuchLinkException, SystemException {
1859        AssetLink assetLink = findByPrimaryKey(linkId);
1860
1861        int count = countByE_E_T(entryId1, entryId2, type);
1862
1863        Session session = null;
1864
1865        try {
1866            session = openSession();
1867
1868            StringBundler query = null;
1869
1870            if (orderByComparator != null) {
1871                query = new StringBundler(5 +
1872                        (orderByComparator.getOrderByFields().length * 3));
1873            }
1874            else {
1875                query = new StringBundler(5);
1876            }
1877
1878            query.append(_SQL_SELECT_ASSETLINK_WHERE);
1879
1880            query.append(_FINDER_COLUMN_E_E_T_ENTRYID1_2);
1881
1882            query.append(_FINDER_COLUMN_E_E_T_ENTRYID2_2);
1883
1884            query.append(_FINDER_COLUMN_E_E_T_TYPE_2);
1885
1886            if (orderByComparator != null) {
1887                appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1888                    orderByComparator);
1889            }
1890
1891            else {
1892                query.append(AssetLinkModelImpl.ORDER_BY_JPQL);
1893            }
1894
1895            String sql = query.toString();
1896
1897            Query q = session.createQuery(sql);
1898
1899            QueryPos qPos = QueryPos.getInstance(q);
1900
1901            qPos.add(entryId1);
1902
1903            qPos.add(entryId2);
1904
1905            qPos.add(type);
1906
1907            Object[] objArray = QueryUtil.getPrevAndNext(q, count,
1908                    orderByComparator, assetLink);
1909
1910            AssetLink[] array = new AssetLinkImpl[3];
1911
1912            array[0] = (AssetLink)objArray[0];
1913            array[1] = (AssetLink)objArray[1];
1914            array[2] = (AssetLink)objArray[2];
1915
1916            return array;
1917        }
1918        catch (Exception e) {
1919            throw processException(e);
1920        }
1921        finally {
1922            closeSession(session);
1923        }
1924    }
1925
1926    public List<AssetLink> findAll() throws SystemException {
1927        return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
1928    }
1929
1930    public List<AssetLink> findAll(int start, int end)
1931        throws SystemException {
1932        return findAll(start, end, null);
1933    }
1934
1935    public List<AssetLink> findAll(int start, int end,
1936        OrderByComparator orderByComparator) throws SystemException {
1937        Object[] finderArgs = new Object[] {
1938                String.valueOf(start), String.valueOf(end),
1939                String.valueOf(orderByComparator)
1940            };
1941
1942        List<AssetLink> list = (List<AssetLink>)FinderCacheUtil.getResult(FINDER_PATH_FIND_ALL,
1943                finderArgs, this);
1944
1945        if (list == null) {
1946            Session session = null;
1947
1948            try {
1949                session = openSession();
1950
1951                StringBundler query = null;
1952                String sql = null;
1953
1954                if (orderByComparator != null) {
1955                    query = new StringBundler(2 +
1956                            (orderByComparator.getOrderByFields().length * 3));
1957
1958                    query.append(_SQL_SELECT_ASSETLINK);
1959
1960                    appendOrderByComparator(query, _ORDER_BY_ENTITY_ALIAS,
1961                        orderByComparator);
1962
1963                    sql = query.toString();
1964                }
1965
1966                else {
1967                    sql = _SQL_SELECT_ASSETLINK.concat(AssetLinkModelImpl.ORDER_BY_JPQL);
1968                }
1969
1970                Query q = session.createQuery(sql);
1971
1972                if (orderByComparator == null) {
1973                    list = (List<AssetLink>)QueryUtil.list(q, getDialect(),
1974                            start, end, false);
1975
1976                    Collections.sort(list);
1977                }
1978                else {
1979                    list = (List<AssetLink>)QueryUtil.list(q, getDialect(),
1980                            start, end);
1981                }
1982            }
1983            catch (Exception e) {
1984                throw processException(e);
1985            }
1986            finally {
1987                if (list == null) {
1988                    list = new ArrayList<AssetLink>();
1989                }
1990
1991                cacheResult(list);
1992
1993                FinderCacheUtil.putResult(FINDER_PATH_FIND_ALL, finderArgs, list);
1994
1995                closeSession(session);
1996            }
1997        }
1998
1999        return list;
2000    }
2001
2002    public void removeByE1(long entryId1) throws SystemException {
2003        for (AssetLink assetLink : findByE1(entryId1)) {
2004            remove(assetLink);
2005        }
2006    }
2007
2008    public void removeByE2(long entryId2) throws SystemException {
2009        for (AssetLink assetLink : findByE2(entryId2)) {
2010            remove(assetLink);
2011        }
2012    }
2013
2014    public void removeByE_E(long entryId1, long entryId2)
2015        throws SystemException {
2016        for (AssetLink assetLink : findByE_E(entryId1, entryId2)) {
2017            remove(assetLink);
2018        }
2019    }
2020
2021    public void removeByE1_T(long entryId1, int type) throws SystemException {
2022        for (AssetLink assetLink : findByE1_T(entryId1, type)) {
2023            remove(assetLink);
2024        }
2025    }
2026
2027    public void removeByE2_T(long entryId2, int type) throws SystemException {
2028        for (AssetLink assetLink : findByE2_T(entryId2, type)) {
2029            remove(assetLink);
2030        }
2031    }
2032
2033    public void removeByE_E_T(long entryId1, long entryId2, int type)
2034        throws SystemException {
2035        for (AssetLink assetLink : findByE_E_T(entryId1, entryId2, type)) {
2036            remove(assetLink);
2037        }
2038    }
2039
2040    public void removeAll() throws SystemException {
2041        for (AssetLink assetLink : findAll()) {
2042            remove(assetLink);
2043        }
2044    }
2045
2046    public int countByE1(long entryId1) throws SystemException {
2047        Object[] finderArgs = new Object[] { new Long(entryId1) };
2048
2049        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E1,
2050                finderArgs, this);
2051
2052        if (count == null) {
2053            Session session = null;
2054
2055            try {
2056                session = openSession();
2057
2058                StringBundler query = new StringBundler(2);
2059
2060                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2061
2062                query.append(_FINDER_COLUMN_E1_ENTRYID1_2);
2063
2064                String sql = query.toString();
2065
2066                Query q = session.createQuery(sql);
2067
2068                QueryPos qPos = QueryPos.getInstance(q);
2069
2070                qPos.add(entryId1);
2071
2072                count = (Long)q.uniqueResult();
2073            }
2074            catch (Exception e) {
2075                throw processException(e);
2076            }
2077            finally {
2078                if (count == null) {
2079                    count = Long.valueOf(0);
2080                }
2081
2082                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E1, finderArgs,
2083                    count);
2084
2085                closeSession(session);
2086            }
2087        }
2088
2089        return count.intValue();
2090    }
2091
2092    public int countByE2(long entryId2) throws SystemException {
2093        Object[] finderArgs = new Object[] { new Long(entryId2) };
2094
2095        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E2,
2096                finderArgs, this);
2097
2098        if (count == null) {
2099            Session session = null;
2100
2101            try {
2102                session = openSession();
2103
2104                StringBundler query = new StringBundler(2);
2105
2106                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2107
2108                query.append(_FINDER_COLUMN_E2_ENTRYID2_2);
2109
2110                String sql = query.toString();
2111
2112                Query q = session.createQuery(sql);
2113
2114                QueryPos qPos = QueryPos.getInstance(q);
2115
2116                qPos.add(entryId2);
2117
2118                count = (Long)q.uniqueResult();
2119            }
2120            catch (Exception e) {
2121                throw processException(e);
2122            }
2123            finally {
2124                if (count == null) {
2125                    count = Long.valueOf(0);
2126                }
2127
2128                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E2, finderArgs,
2129                    count);
2130
2131                closeSession(session);
2132            }
2133        }
2134
2135        return count.intValue();
2136    }
2137
2138    public int countByE_E(long entryId1, long entryId2)
2139        throws SystemException {
2140        Object[] finderArgs = new Object[] {
2141                new Long(entryId1), new Long(entryId2)
2142            };
2143
2144        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E_E,
2145                finderArgs, this);
2146
2147        if (count == null) {
2148            Session session = null;
2149
2150            try {
2151                session = openSession();
2152
2153                StringBundler query = new StringBundler(3);
2154
2155                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2156
2157                query.append(_FINDER_COLUMN_E_E_ENTRYID1_2);
2158
2159                query.append(_FINDER_COLUMN_E_E_ENTRYID2_2);
2160
2161                String sql = query.toString();
2162
2163                Query q = session.createQuery(sql);
2164
2165                QueryPos qPos = QueryPos.getInstance(q);
2166
2167                qPos.add(entryId1);
2168
2169                qPos.add(entryId2);
2170
2171                count = (Long)q.uniqueResult();
2172            }
2173            catch (Exception e) {
2174                throw processException(e);
2175            }
2176            finally {
2177                if (count == null) {
2178                    count = Long.valueOf(0);
2179                }
2180
2181                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E_E, finderArgs,
2182                    count);
2183
2184                closeSession(session);
2185            }
2186        }
2187
2188        return count.intValue();
2189    }
2190
2191    public int countByE1_T(long entryId1, int type) throws SystemException {
2192        Object[] finderArgs = new Object[] { new Long(entryId1), new Integer(type) };
2193
2194        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E1_T,
2195                finderArgs, this);
2196
2197        if (count == null) {
2198            Session session = null;
2199
2200            try {
2201                session = openSession();
2202
2203                StringBundler query = new StringBundler(3);
2204
2205                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2206
2207                query.append(_FINDER_COLUMN_E1_T_ENTRYID1_2);
2208
2209                query.append(_FINDER_COLUMN_E1_T_TYPE_2);
2210
2211                String sql = query.toString();
2212
2213                Query q = session.createQuery(sql);
2214
2215                QueryPos qPos = QueryPos.getInstance(q);
2216
2217                qPos.add(entryId1);
2218
2219                qPos.add(type);
2220
2221                count = (Long)q.uniqueResult();
2222            }
2223            catch (Exception e) {
2224                throw processException(e);
2225            }
2226            finally {
2227                if (count == null) {
2228                    count = Long.valueOf(0);
2229                }
2230
2231                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E1_T,
2232                    finderArgs, count);
2233
2234                closeSession(session);
2235            }
2236        }
2237
2238        return count.intValue();
2239    }
2240
2241    public int countByE2_T(long entryId2, int type) throws SystemException {
2242        Object[] finderArgs = new Object[] { new Long(entryId2), new Integer(type) };
2243
2244        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E2_T,
2245                finderArgs, this);
2246
2247        if (count == null) {
2248            Session session = null;
2249
2250            try {
2251                session = openSession();
2252
2253                StringBundler query = new StringBundler(3);
2254
2255                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2256
2257                query.append(_FINDER_COLUMN_E2_T_ENTRYID2_2);
2258
2259                query.append(_FINDER_COLUMN_E2_T_TYPE_2);
2260
2261                String sql = query.toString();
2262
2263                Query q = session.createQuery(sql);
2264
2265                QueryPos qPos = QueryPos.getInstance(q);
2266
2267                qPos.add(entryId2);
2268
2269                qPos.add(type);
2270
2271                count = (Long)q.uniqueResult();
2272            }
2273            catch (Exception e) {
2274                throw processException(e);
2275            }
2276            finally {
2277                if (count == null) {
2278                    count = Long.valueOf(0);
2279                }
2280
2281                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E2_T,
2282                    finderArgs, count);
2283
2284                closeSession(session);
2285            }
2286        }
2287
2288        return count.intValue();
2289    }
2290
2291    public int countByE_E_T(long entryId1, long entryId2, int type)
2292        throws SystemException {
2293        Object[] finderArgs = new Object[] {
2294                new Long(entryId1), new Long(entryId2), new Integer(type)
2295            };
2296
2297        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_BY_E_E_T,
2298                finderArgs, this);
2299
2300        if (count == null) {
2301            Session session = null;
2302
2303            try {
2304                session = openSession();
2305
2306                StringBundler query = new StringBundler(4);
2307
2308                query.append(_SQL_COUNT_ASSETLINK_WHERE);
2309
2310                query.append(_FINDER_COLUMN_E_E_T_ENTRYID1_2);
2311
2312                query.append(_FINDER_COLUMN_E_E_T_ENTRYID2_2);
2313
2314                query.append(_FINDER_COLUMN_E_E_T_TYPE_2);
2315
2316                String sql = query.toString();
2317
2318                Query q = session.createQuery(sql);
2319
2320                QueryPos qPos = QueryPos.getInstance(q);
2321
2322                qPos.add(entryId1);
2323
2324                qPos.add(entryId2);
2325
2326                qPos.add(type);
2327
2328                count = (Long)q.uniqueResult();
2329            }
2330            catch (Exception e) {
2331                throw processException(e);
2332            }
2333            finally {
2334                if (count == null) {
2335                    count = Long.valueOf(0);
2336                }
2337
2338                FinderCacheUtil.putResult(FINDER_PATH_COUNT_BY_E_E_T,
2339                    finderArgs, count);
2340
2341                closeSession(session);
2342            }
2343        }
2344
2345        return count.intValue();
2346    }
2347
2348    public int countAll() throws SystemException {
2349        Object[] finderArgs = new Object[0];
2350
2351        Long count = (Long)FinderCacheUtil.getResult(FINDER_PATH_COUNT_ALL,
2352                finderArgs, this);
2353
2354        if (count == null) {
2355            Session session = null;
2356
2357            try {
2358                session = openSession();
2359
2360                Query q = session.createQuery(_SQL_COUNT_ASSETLINK);
2361
2362                count = (Long)q.uniqueResult();
2363            }
2364            catch (Exception e) {
2365                throw processException(e);
2366            }
2367            finally {
2368                if (count == null) {
2369                    count = Long.valueOf(0);
2370                }
2371
2372                FinderCacheUtil.putResult(FINDER_PATH_COUNT_ALL, finderArgs,
2373                    count);
2374
2375                closeSession(session);
2376            }
2377        }
2378
2379        return count.intValue();
2380    }
2381
2382    public void afterPropertiesSet() {
2383        String[] listenerClassNames = StringUtil.split(GetterUtil.getString(
2384                    com.liferay.portal.util.PropsUtil.get(
2385                        "value.object.listener.com.liferay.portlet.asset.model.AssetLink")));
2386
2387        if (listenerClassNames.length > 0) {
2388            try {
2389                List<ModelListener<AssetLink>> listenersList = new ArrayList<ModelListener<AssetLink>>();
2390
2391                for (String listenerClassName : listenerClassNames) {
2392                    listenersList.add((ModelListener<AssetLink>)Class.forName(
2393                            listenerClassName).newInstance());
2394                }
2395
2396                listeners = listenersList.toArray(new ModelListener[listenersList.size()]);
2397            }
2398            catch (Exception e) {
2399                _log.error(e);
2400            }
2401        }
2402    }
2403
2404    @BeanReference(type = AssetCategoryPersistence.class)
2405    protected AssetCategoryPersistence assetCategoryPersistence;
2406    @BeanReference(type = AssetCategoryPropertyPersistence.class)
2407    protected AssetCategoryPropertyPersistence assetCategoryPropertyPersistence;
2408    @BeanReference(type = AssetEntryPersistence.class)
2409    protected AssetEntryPersistence assetEntryPersistence;
2410    @BeanReference(type = AssetLinkPersistence.class)
2411    protected AssetLinkPersistence assetLinkPersistence;
2412    @BeanReference(type = AssetTagPersistence.class)
2413    protected AssetTagPersistence assetTagPersistence;
2414    @BeanReference(type = AssetTagPropertyPersistence.class)
2415    protected AssetTagPropertyPersistence assetTagPropertyPersistence;
2416    @BeanReference(type = AssetTagStatsPersistence.class)
2417    protected AssetTagStatsPersistence assetTagStatsPersistence;
2418    @BeanReference(type = AssetVocabularyPersistence.class)
2419    protected AssetVocabularyPersistence assetVocabularyPersistence;
2420    @BeanReference(type = ResourcePersistence.class)
2421    protected ResourcePersistence resourcePersistence;
2422    @BeanReference(type = UserPersistence.class)
2423    protected UserPersistence userPersistence;
2424    private static final String _SQL_SELECT_ASSETLINK = "SELECT assetLink FROM AssetLink assetLink";
2425    private static final String _SQL_SELECT_ASSETLINK_WHERE = "SELECT assetLink FROM AssetLink assetLink WHERE ";
2426    private static final String _SQL_COUNT_ASSETLINK = "SELECT COUNT(assetLink) FROM AssetLink assetLink";
2427    private static final String _SQL_COUNT_ASSETLINK_WHERE = "SELECT COUNT(assetLink) FROM AssetLink assetLink WHERE ";
2428    private static final String _FINDER_COLUMN_E1_ENTRYID1_2 = "assetLink.entryId1 = ?";
2429    private static final String _FINDER_COLUMN_E2_ENTRYID2_2 = "assetLink.entryId2 = ?";
2430    private static final String _FINDER_COLUMN_E_E_ENTRYID1_2 = "assetLink.entryId1 = ? AND ";
2431    private static final String _FINDER_COLUMN_E_E_ENTRYID2_2 = "assetLink.entryId2 = ?";
2432    private static final String _FINDER_COLUMN_E1_T_ENTRYID1_2 = "assetLink.entryId1 = ? AND ";
2433    private static final String _FINDER_COLUMN_E1_T_TYPE_2 = "assetLink.type = ?";
2434    private static final String _FINDER_COLUMN_E2_T_ENTRYID2_2 = "assetLink.entryId2 = ? AND ";
2435    private static final String _FINDER_COLUMN_E2_T_TYPE_2 = "assetLink.type = ?";
2436    private static final String _FINDER_COLUMN_E_E_T_ENTRYID1_2 = "assetLink.entryId1 = ? AND ";
2437    private static final String _FINDER_COLUMN_E_E_T_ENTRYID2_2 = "assetLink.entryId2 = ? AND ";
2438    private static final String _FINDER_COLUMN_E_E_T_TYPE_2 = "assetLink.type = ?";
2439    private static final String _ORDER_BY_ENTITY_ALIAS = "assetLink.";
2440    private static final String _NO_SUCH_ENTITY_WITH_PRIMARY_KEY = "No AssetLink exists with the primary key ";
2441    private static final String _NO_SUCH_ENTITY_WITH_KEY = "No AssetLink exists with the key {";
2442    private static Log _log = LogFactoryUtil.getLog(AssetLinkPersistenceImpl.class);
2443}