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