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