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