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