1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portlet.documentlibrary.service.persistence;
24  
25  import com.liferay.portal.SystemException;
26  import com.liferay.portal.kernel.dao.DynamicQuery;
27  import com.liferay.portal.kernel.dao.DynamicQueryInitializer;
28  import com.liferay.portal.kernel.util.GetterUtil;
29  import com.liferay.portal.kernel.util.OrderByComparator;
30  import com.liferay.portal.kernel.util.StringMaker;
31  import com.liferay.portal.kernel.util.StringPool;
32  import com.liferay.portal.kernel.util.Validator;
33  import com.liferay.portal.model.ModelListener;
34  import com.liferay.portal.service.persistence.BasePersistence;
35  import com.liferay.portal.spring.hibernate.FinderCache;
36  import com.liferay.portal.spring.hibernate.HibernateUtil;
37  import com.liferay.portal.util.PropsUtil;
38  
39  import com.liferay.portlet.documentlibrary.NoSuchFileRankException;
40  import com.liferay.portlet.documentlibrary.model.DLFileRank;
41  import com.liferay.portlet.documentlibrary.model.impl.DLFileRankImpl;
42  import com.liferay.portlet.documentlibrary.model.impl.DLFileRankModelImpl;
43  
44  import com.liferay.util.dao.hibernate.QueryUtil;
45  
46  import org.apache.commons.logging.Log;
47  import org.apache.commons.logging.LogFactory;
48  
49  import org.hibernate.Query;
50  import org.hibernate.Session;
51  
52  import java.util.Collections;
53  import java.util.Iterator;
54  import java.util.List;
55  
56  /**
57   * <a href="DLFileRankPersistenceImpl.java.html"><b><i>View Source</i></b></a>
58   *
59   * @author Brian Wing Shun Chan
60   *
61   */
62  public class DLFileRankPersistenceImpl extends BasePersistence
63      implements DLFileRankPersistence {
64      public DLFileRank create(long fileRankId) {
65          DLFileRank dlFileRank = new DLFileRankImpl();
66  
67          dlFileRank.setNew(true);
68          dlFileRank.setPrimaryKey(fileRankId);
69  
70          return dlFileRank;
71      }
72  
73      public DLFileRank remove(long fileRankId)
74          throws NoSuchFileRankException, SystemException {
75          Session session = null;
76  
77          try {
78              session = openSession();
79  
80              DLFileRank dlFileRank = (DLFileRank)session.get(DLFileRankImpl.class,
81                      new Long(fileRankId));
82  
83              if (dlFileRank == null) {
84                  if (_log.isWarnEnabled()) {
85                      _log.warn("No DLFileRank exists with the primary key " +
86                          fileRankId);
87                  }
88  
89                  throw new NoSuchFileRankException(
90                      "No DLFileRank exists with the primary key " + fileRankId);
91              }
92  
93              return remove(dlFileRank);
94          }
95          catch (NoSuchFileRankException nsee) {
96              throw nsee;
97          }
98          catch (Exception e) {
99              throw HibernateUtil.processException(e);
100         }
101         finally {
102             closeSession(session);
103         }
104     }
105 
106     public DLFileRank remove(DLFileRank dlFileRank) throws SystemException {
107         ModelListener listener = _getListener();
108 
109         if (listener != null) {
110             listener.onBeforeRemove(dlFileRank);
111         }
112 
113         dlFileRank = removeImpl(dlFileRank);
114 
115         if (listener != null) {
116             listener.onAfterRemove(dlFileRank);
117         }
118 
119         return dlFileRank;
120     }
121 
122     protected DLFileRank removeImpl(DLFileRank dlFileRank)
123         throws SystemException {
124         Session session = null;
125 
126         try {
127             session = openSession();
128 
129             session.delete(dlFileRank);
130 
131             session.flush();
132 
133             return dlFileRank;
134         }
135         catch (Exception e) {
136             throw HibernateUtil.processException(e);
137         }
138         finally {
139             closeSession(session);
140 
141             FinderCache.clearCache(DLFileRank.class.getName());
142         }
143     }
144 
145     public DLFileRank update(DLFileRank dlFileRank) throws SystemException {
146         return update(dlFileRank, false);
147     }
148 
149     public DLFileRank update(DLFileRank dlFileRank, boolean merge)
150         throws SystemException {
151         ModelListener listener = _getListener();
152 
153         boolean isNew = dlFileRank.isNew();
154 
155         if (listener != null) {
156             if (isNew) {
157                 listener.onBeforeCreate(dlFileRank);
158             }
159             else {
160                 listener.onBeforeUpdate(dlFileRank);
161             }
162         }
163 
164         dlFileRank = updateImpl(dlFileRank, merge);
165 
166         if (listener != null) {
167             if (isNew) {
168                 listener.onAfterCreate(dlFileRank);
169             }
170             else {
171                 listener.onAfterUpdate(dlFileRank);
172             }
173         }
174 
175         return dlFileRank;
176     }
177 
178     public DLFileRank updateImpl(
179         com.liferay.portlet.documentlibrary.model.DLFileRank dlFileRank,
180         boolean merge) throws SystemException {
181         Session session = null;
182 
183         try {
184             session = openSession();
185 
186             if (merge) {
187                 session.merge(dlFileRank);
188             }
189             else {
190                 if (dlFileRank.isNew()) {
191                     session.save(dlFileRank);
192                 }
193             }
194 
195             session.flush();
196 
197             dlFileRank.setNew(false);
198 
199             return dlFileRank;
200         }
201         catch (Exception e) {
202             throw HibernateUtil.processException(e);
203         }
204         finally {
205             closeSession(session);
206 
207             FinderCache.clearCache(DLFileRank.class.getName());
208         }
209     }
210 
211     public DLFileRank findByPrimaryKey(long fileRankId)
212         throws NoSuchFileRankException, SystemException {
213         DLFileRank dlFileRank = fetchByPrimaryKey(fileRankId);
214 
215         if (dlFileRank == null) {
216             if (_log.isWarnEnabled()) {
217                 _log.warn("No DLFileRank exists with the primary key " +
218                     fileRankId);
219             }
220 
221             throw new NoSuchFileRankException(
222                 "No DLFileRank exists with the primary key " + fileRankId);
223         }
224 
225         return dlFileRank;
226     }
227 
228     public DLFileRank fetchByPrimaryKey(long fileRankId)
229         throws SystemException {
230         Session session = null;
231 
232         try {
233             session = openSession();
234 
235             return (DLFileRank)session.get(DLFileRankImpl.class,
236                 new Long(fileRankId));
237         }
238         catch (Exception e) {
239             throw HibernateUtil.processException(e);
240         }
241         finally {
242             closeSession(session);
243         }
244     }
245 
246     public List findByUserId(long userId) throws SystemException {
247         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
248         String finderClassName = DLFileRank.class.getName();
249         String finderMethodName = "findByUserId";
250         String[] finderParams = new String[] { Long.class.getName() };
251         Object[] finderArgs = new Object[] { new Long(userId) };
252 
253         Object result = null;
254 
255         if (finderClassNameCacheEnabled) {
256             result = FinderCache.getResult(finderClassName, finderMethodName,
257                     finderParams, finderArgs, getSessionFactory());
258         }
259 
260         if (result == null) {
261             Session session = null;
262 
263             try {
264                 session = openSession();
265 
266                 StringMaker query = new StringMaker();
267 
268                 query.append(
269                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
270 
271                 query.append("userId = ?");
272 
273                 query.append(" ");
274 
275                 query.append("ORDER BY ");
276 
277                 query.append("createDate DESC");
278 
279                 Query q = session.createQuery(query.toString());
280 
281                 int queryPos = 0;
282 
283                 q.setLong(queryPos++, userId);
284 
285                 List list = q.list();
286 
287                 FinderCache.putResult(finderClassNameCacheEnabled,
288                     finderClassName, finderMethodName, finderParams,
289                     finderArgs, list);
290 
291                 return list;
292             }
293             catch (Exception e) {
294                 throw HibernateUtil.processException(e);
295             }
296             finally {
297                 closeSession(session);
298             }
299         }
300         else {
301             return (List)result;
302         }
303     }
304 
305     public List findByUserId(long userId, int begin, int end)
306         throws SystemException {
307         return findByUserId(userId, begin, end, null);
308     }
309 
310     public List findByUserId(long userId, int begin, int end,
311         OrderByComparator obc) throws SystemException {
312         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
313         String finderClassName = DLFileRank.class.getName();
314         String finderMethodName = "findByUserId";
315         String[] finderParams = new String[] {
316                 Long.class.getName(),
317                 
318                 "java.lang.Integer", "java.lang.Integer",
319                 "com.liferay.portal.kernel.util.OrderByComparator"
320             };
321         Object[] finderArgs = new Object[] {
322                 new Long(userId),
323                 
324                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
325             };
326 
327         Object result = null;
328 
329         if (finderClassNameCacheEnabled) {
330             result = FinderCache.getResult(finderClassName, finderMethodName,
331                     finderParams, finderArgs, getSessionFactory());
332         }
333 
334         if (result == null) {
335             Session session = null;
336 
337             try {
338                 session = openSession();
339 
340                 StringMaker query = new StringMaker();
341 
342                 query.append(
343                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
344 
345                 query.append("userId = ?");
346 
347                 query.append(" ");
348 
349                 if (obc != null) {
350                     query.append("ORDER BY ");
351                     query.append(obc.getOrderBy());
352                 }
353 
354                 else {
355                     query.append("ORDER BY ");
356 
357                     query.append("createDate DESC");
358                 }
359 
360                 Query q = session.createQuery(query.toString());
361 
362                 int queryPos = 0;
363 
364                 q.setLong(queryPos++, userId);
365 
366                 List list = QueryUtil.list(q, getDialect(), begin, end);
367 
368                 FinderCache.putResult(finderClassNameCacheEnabled,
369                     finderClassName, finderMethodName, finderParams,
370                     finderArgs, list);
371 
372                 return list;
373             }
374             catch (Exception e) {
375                 throw HibernateUtil.processException(e);
376             }
377             finally {
378                 closeSession(session);
379             }
380         }
381         else {
382             return (List)result;
383         }
384     }
385 
386     public DLFileRank findByUserId_First(long userId, OrderByComparator obc)
387         throws NoSuchFileRankException, SystemException {
388         List list = findByUserId(userId, 0, 1, obc);
389 
390         if (list.size() == 0) {
391             StringMaker msg = new StringMaker();
392 
393             msg.append("No DLFileRank exists with the key {");
394 
395             msg.append("userId=" + userId);
396 
397             msg.append(StringPool.CLOSE_CURLY_BRACE);
398 
399             throw new NoSuchFileRankException(msg.toString());
400         }
401         else {
402             return (DLFileRank)list.get(0);
403         }
404     }
405 
406     public DLFileRank findByUserId_Last(long userId, OrderByComparator obc)
407         throws NoSuchFileRankException, SystemException {
408         int count = countByUserId(userId);
409 
410         List list = findByUserId(userId, count - 1, count, obc);
411 
412         if (list.size() == 0) {
413             StringMaker msg = new StringMaker();
414 
415             msg.append("No DLFileRank exists with the key {");
416 
417             msg.append("userId=" + userId);
418 
419             msg.append(StringPool.CLOSE_CURLY_BRACE);
420 
421             throw new NoSuchFileRankException(msg.toString());
422         }
423         else {
424             return (DLFileRank)list.get(0);
425         }
426     }
427 
428     public DLFileRank[] findByUserId_PrevAndNext(long fileRankId, long userId,
429         OrderByComparator obc) throws NoSuchFileRankException, SystemException {
430         DLFileRank dlFileRank = findByPrimaryKey(fileRankId);
431 
432         int count = countByUserId(userId);
433 
434         Session session = null;
435 
436         try {
437             session = openSession();
438 
439             StringMaker query = new StringMaker();
440 
441             query.append(
442                 "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
443 
444             query.append("userId = ?");
445 
446             query.append(" ");
447 
448             if (obc != null) {
449                 query.append("ORDER BY ");
450                 query.append(obc.getOrderBy());
451             }
452 
453             else {
454                 query.append("ORDER BY ");
455 
456                 query.append("createDate DESC");
457             }
458 
459             Query q = session.createQuery(query.toString());
460 
461             int queryPos = 0;
462 
463             q.setLong(queryPos++, userId);
464 
465             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
466                     dlFileRank);
467 
468             DLFileRank[] array = new DLFileRankImpl[3];
469 
470             array[0] = (DLFileRank)objArray[0];
471             array[1] = (DLFileRank)objArray[1];
472             array[2] = (DLFileRank)objArray[2];
473 
474             return array;
475         }
476         catch (Exception e) {
477             throw HibernateUtil.processException(e);
478         }
479         finally {
480             closeSession(session);
481         }
482     }
483 
484     public List findByF_N(long folderId, String name) throws SystemException {
485         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
486         String finderClassName = DLFileRank.class.getName();
487         String finderMethodName = "findByF_N";
488         String[] finderParams = new String[] {
489                 Long.class.getName(), String.class.getName()
490             };
491         Object[] finderArgs = new Object[] { new Long(folderId), name };
492 
493         Object result = null;
494 
495         if (finderClassNameCacheEnabled) {
496             result = FinderCache.getResult(finderClassName, finderMethodName,
497                     finderParams, finderArgs, getSessionFactory());
498         }
499 
500         if (result == null) {
501             Session session = null;
502 
503             try {
504                 session = openSession();
505 
506                 StringMaker query = new StringMaker();
507 
508                 query.append(
509                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
510 
511                 query.append("folderId = ?");
512 
513                 query.append(" AND ");
514 
515                 if (name == null) {
516                     query.append("name IS NULL");
517                 }
518                 else {
519                     query.append("name = ?");
520                 }
521 
522                 query.append(" ");
523 
524                 query.append("ORDER BY ");
525 
526                 query.append("createDate DESC");
527 
528                 Query q = session.createQuery(query.toString());
529 
530                 int queryPos = 0;
531 
532                 q.setLong(queryPos++, folderId);
533 
534                 if (name != null) {
535                     q.setString(queryPos++, name);
536                 }
537 
538                 List list = q.list();
539 
540                 FinderCache.putResult(finderClassNameCacheEnabled,
541                     finderClassName, finderMethodName, finderParams,
542                     finderArgs, list);
543 
544                 return list;
545             }
546             catch (Exception e) {
547                 throw HibernateUtil.processException(e);
548             }
549             finally {
550                 closeSession(session);
551             }
552         }
553         else {
554             return (List)result;
555         }
556     }
557 
558     public List findByF_N(long folderId, String name, int begin, int end)
559         throws SystemException {
560         return findByF_N(folderId, name, begin, end, null);
561     }
562 
563     public List findByF_N(long folderId, String name, int begin, int end,
564         OrderByComparator obc) throws SystemException {
565         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
566         String finderClassName = DLFileRank.class.getName();
567         String finderMethodName = "findByF_N";
568         String[] finderParams = new String[] {
569                 Long.class.getName(), String.class.getName(),
570                 
571                 "java.lang.Integer", "java.lang.Integer",
572                 "com.liferay.portal.kernel.util.OrderByComparator"
573             };
574         Object[] finderArgs = new Object[] {
575                 new Long(folderId),
576                 
577                 name,
578                 
579                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
580             };
581 
582         Object result = null;
583 
584         if (finderClassNameCacheEnabled) {
585             result = FinderCache.getResult(finderClassName, finderMethodName,
586                     finderParams, finderArgs, getSessionFactory());
587         }
588 
589         if (result == null) {
590             Session session = null;
591 
592             try {
593                 session = openSession();
594 
595                 StringMaker query = new StringMaker();
596 
597                 query.append(
598                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
599 
600                 query.append("folderId = ?");
601 
602                 query.append(" AND ");
603 
604                 if (name == null) {
605                     query.append("name IS NULL");
606                 }
607                 else {
608                     query.append("name = ?");
609                 }
610 
611                 query.append(" ");
612 
613                 if (obc != null) {
614                     query.append("ORDER BY ");
615                     query.append(obc.getOrderBy());
616                 }
617 
618                 else {
619                     query.append("ORDER BY ");
620 
621                     query.append("createDate DESC");
622                 }
623 
624                 Query q = session.createQuery(query.toString());
625 
626                 int queryPos = 0;
627 
628                 q.setLong(queryPos++, folderId);
629 
630                 if (name != null) {
631                     q.setString(queryPos++, name);
632                 }
633 
634                 List list = QueryUtil.list(q, getDialect(), begin, end);
635 
636                 FinderCache.putResult(finderClassNameCacheEnabled,
637                     finderClassName, finderMethodName, finderParams,
638                     finderArgs, list);
639 
640                 return list;
641             }
642             catch (Exception e) {
643                 throw HibernateUtil.processException(e);
644             }
645             finally {
646                 closeSession(session);
647             }
648         }
649         else {
650             return (List)result;
651         }
652     }
653 
654     public DLFileRank findByF_N_First(long folderId, String name,
655         OrderByComparator obc) throws NoSuchFileRankException, SystemException {
656         List list = findByF_N(folderId, name, 0, 1, obc);
657 
658         if (list.size() == 0) {
659             StringMaker msg = new StringMaker();
660 
661             msg.append("No DLFileRank exists with the key {");
662 
663             msg.append("folderId=" + folderId);
664 
665             msg.append(", ");
666             msg.append("name=" + name);
667 
668             msg.append(StringPool.CLOSE_CURLY_BRACE);
669 
670             throw new NoSuchFileRankException(msg.toString());
671         }
672         else {
673             return (DLFileRank)list.get(0);
674         }
675     }
676 
677     public DLFileRank findByF_N_Last(long folderId, String name,
678         OrderByComparator obc) throws NoSuchFileRankException, SystemException {
679         int count = countByF_N(folderId, name);
680 
681         List list = findByF_N(folderId, name, count - 1, count, obc);
682 
683         if (list.size() == 0) {
684             StringMaker msg = new StringMaker();
685 
686             msg.append("No DLFileRank exists with the key {");
687 
688             msg.append("folderId=" + folderId);
689 
690             msg.append(", ");
691             msg.append("name=" + name);
692 
693             msg.append(StringPool.CLOSE_CURLY_BRACE);
694 
695             throw new NoSuchFileRankException(msg.toString());
696         }
697         else {
698             return (DLFileRank)list.get(0);
699         }
700     }
701 
702     public DLFileRank[] findByF_N_PrevAndNext(long fileRankId, long folderId,
703         String name, OrderByComparator obc)
704         throws NoSuchFileRankException, SystemException {
705         DLFileRank dlFileRank = findByPrimaryKey(fileRankId);
706 
707         int count = countByF_N(folderId, name);
708 
709         Session session = null;
710 
711         try {
712             session = openSession();
713 
714             StringMaker query = new StringMaker();
715 
716             query.append(
717                 "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
718 
719             query.append("folderId = ?");
720 
721             query.append(" AND ");
722 
723             if (name == null) {
724                 query.append("name IS NULL");
725             }
726             else {
727                 query.append("name = ?");
728             }
729 
730             query.append(" ");
731 
732             if (obc != null) {
733                 query.append("ORDER BY ");
734                 query.append(obc.getOrderBy());
735             }
736 
737             else {
738                 query.append("ORDER BY ");
739 
740                 query.append("createDate DESC");
741             }
742 
743             Query q = session.createQuery(query.toString());
744 
745             int queryPos = 0;
746 
747             q.setLong(queryPos++, folderId);
748 
749             if (name != null) {
750                 q.setString(queryPos++, name);
751             }
752 
753             Object[] objArray = QueryUtil.getPrevAndNext(q, count, obc,
754                     dlFileRank);
755 
756             DLFileRank[] array = new DLFileRankImpl[3];
757 
758             array[0] = (DLFileRank)objArray[0];
759             array[1] = (DLFileRank)objArray[1];
760             array[2] = (DLFileRank)objArray[2];
761 
762             return array;
763         }
764         catch (Exception e) {
765             throw HibernateUtil.processException(e);
766         }
767         finally {
768             closeSession(session);
769         }
770     }
771 
772     public DLFileRank findByC_U_F_N(long companyId, long userId, long folderId,
773         String name) throws NoSuchFileRankException, SystemException {
774         DLFileRank dlFileRank = fetchByC_U_F_N(companyId, userId, folderId, name);
775 
776         if (dlFileRank == null) {
777             StringMaker msg = new StringMaker();
778 
779             msg.append("No DLFileRank exists with the key {");
780 
781             msg.append("companyId=" + companyId);
782 
783             msg.append(", ");
784             msg.append("userId=" + userId);
785 
786             msg.append(", ");
787             msg.append("folderId=" + folderId);
788 
789             msg.append(", ");
790             msg.append("name=" + name);
791 
792             msg.append(StringPool.CLOSE_CURLY_BRACE);
793 
794             if (_log.isWarnEnabled()) {
795                 _log.warn(msg.toString());
796             }
797 
798             throw new NoSuchFileRankException(msg.toString());
799         }
800 
801         return dlFileRank;
802     }
803 
804     public DLFileRank fetchByC_U_F_N(long companyId, long userId,
805         long folderId, String name) throws SystemException {
806         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
807         String finderClassName = DLFileRank.class.getName();
808         String finderMethodName = "fetchByC_U_F_N";
809         String[] finderParams = new String[] {
810                 Long.class.getName(), Long.class.getName(), Long.class.getName(),
811                 String.class.getName()
812             };
813         Object[] finderArgs = new Object[] {
814                 new Long(companyId), new Long(userId), new Long(folderId),
815                 
816                 name
817             };
818 
819         Object result = null;
820 
821         if (finderClassNameCacheEnabled) {
822             result = FinderCache.getResult(finderClassName, finderMethodName,
823                     finderParams, finderArgs, getSessionFactory());
824         }
825 
826         if (result == null) {
827             Session session = null;
828 
829             try {
830                 session = openSession();
831 
832                 StringMaker query = new StringMaker();
833 
834                 query.append(
835                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
836 
837                 query.append("companyId = ?");
838 
839                 query.append(" AND ");
840 
841                 query.append("userId = ?");
842 
843                 query.append(" AND ");
844 
845                 query.append("folderId = ?");
846 
847                 query.append(" AND ");
848 
849                 if (name == null) {
850                     query.append("name IS NULL");
851                 }
852                 else {
853                     query.append("name = ?");
854                 }
855 
856                 query.append(" ");
857 
858                 query.append("ORDER BY ");
859 
860                 query.append("createDate DESC");
861 
862                 Query q = session.createQuery(query.toString());
863 
864                 int queryPos = 0;
865 
866                 q.setLong(queryPos++, companyId);
867 
868                 q.setLong(queryPos++, userId);
869 
870                 q.setLong(queryPos++, folderId);
871 
872                 if (name != null) {
873                     q.setString(queryPos++, name);
874                 }
875 
876                 List list = q.list();
877 
878                 FinderCache.putResult(finderClassNameCacheEnabled,
879                     finderClassName, finderMethodName, finderParams,
880                     finderArgs, list);
881 
882                 if (list.size() == 0) {
883                     return null;
884                 }
885                 else {
886                     return (DLFileRank)list.get(0);
887                 }
888             }
889             catch (Exception e) {
890                 throw HibernateUtil.processException(e);
891             }
892             finally {
893                 closeSession(session);
894             }
895         }
896         else {
897             List list = (List)result;
898 
899             if (list.size() == 0) {
900                 return null;
901             }
902             else {
903                 return (DLFileRank)list.get(0);
904             }
905         }
906     }
907 
908     public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer)
909         throws SystemException {
910         Session session = null;
911 
912         try {
913             session = openSession();
914 
915             DynamicQuery query = queryInitializer.initialize(session);
916 
917             return query.list();
918         }
919         catch (Exception e) {
920             throw HibernateUtil.processException(e);
921         }
922         finally {
923             closeSession(session);
924         }
925     }
926 
927     public List findWithDynamicQuery(DynamicQueryInitializer queryInitializer,
928         int begin, int end) throws SystemException {
929         Session session = null;
930 
931         try {
932             session = openSession();
933 
934             DynamicQuery query = queryInitializer.initialize(session);
935 
936             query.setLimit(begin, end);
937 
938             return query.list();
939         }
940         catch (Exception e) {
941             throw HibernateUtil.processException(e);
942         }
943         finally {
944             closeSession(session);
945         }
946     }
947 
948     public List findAll() throws SystemException {
949         return findAll(QueryUtil.ALL_POS, QueryUtil.ALL_POS, null);
950     }
951 
952     public List findAll(int begin, int end) throws SystemException {
953         return findAll(begin, end, null);
954     }
955 
956     public List findAll(int begin, int end, OrderByComparator obc)
957         throws SystemException {
958         boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
959         String finderClassName = DLFileRank.class.getName();
960         String finderMethodName = "findAll";
961         String[] finderParams = new String[] {
962                 "java.lang.Integer", "java.lang.Integer",
963                 "com.liferay.portal.kernel.util.OrderByComparator"
964             };
965         Object[] finderArgs = new Object[] {
966                 String.valueOf(begin), String.valueOf(end), String.valueOf(obc)
967             };
968 
969         Object result = null;
970 
971         if (finderClassNameCacheEnabled) {
972             result = FinderCache.getResult(finderClassName, finderMethodName,
973                     finderParams, finderArgs, getSessionFactory());
974         }
975 
976         if (result == null) {
977             Session session = null;
978 
979             try {
980                 session = openSession();
981 
982                 StringMaker query = new StringMaker();
983 
984                 query.append(
985                     "FROM com.liferay.portlet.documentlibrary.model.DLFileRank ");
986 
987                 if (obc != null) {
988                     query.append("ORDER BY ");
989                     query.append(obc.getOrderBy());
990                 }
991 
992                 else {
993                     query.append("ORDER BY ");
994 
995                     query.append("createDate DESC");
996                 }
997 
998                 Query q = session.createQuery(query.toString());
999 
1000                List list = QueryUtil.list(q, getDialect(), begin, end);
1001
1002                if (obc == null) {
1003                    Collections.sort(list);
1004                }
1005
1006                FinderCache.putResult(finderClassNameCacheEnabled,
1007                    finderClassName, finderMethodName, finderParams,
1008                    finderArgs, list);
1009
1010                return list;
1011            }
1012            catch (Exception e) {
1013                throw HibernateUtil.processException(e);
1014            }
1015            finally {
1016                closeSession(session);
1017            }
1018        }
1019        else {
1020            return (List)result;
1021        }
1022    }
1023
1024    public void removeByUserId(long userId) throws SystemException {
1025        Iterator itr = findByUserId(userId).iterator();
1026
1027        while (itr.hasNext()) {
1028            DLFileRank dlFileRank = (DLFileRank)itr.next();
1029
1030            remove(dlFileRank);
1031        }
1032    }
1033
1034    public void removeByF_N(long folderId, String name)
1035        throws SystemException {
1036        Iterator itr = findByF_N(folderId, name).iterator();
1037
1038        while (itr.hasNext()) {
1039            DLFileRank dlFileRank = (DLFileRank)itr.next();
1040
1041            remove(dlFileRank);
1042        }
1043    }
1044
1045    public void removeByC_U_F_N(long companyId, long userId, long folderId,
1046        String name) throws NoSuchFileRankException, SystemException {
1047        DLFileRank dlFileRank = findByC_U_F_N(companyId, userId, folderId, name);
1048
1049        remove(dlFileRank);
1050    }
1051
1052    public void removeAll() throws SystemException {
1053        Iterator itr = findAll().iterator();
1054
1055        while (itr.hasNext()) {
1056            remove((DLFileRank)itr.next());
1057        }
1058    }
1059
1060    public int countByUserId(long userId) throws SystemException {
1061        boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
1062        String finderClassName = DLFileRank.class.getName();
1063        String finderMethodName = "countByUserId";
1064        String[] finderParams = new String[] { Long.class.getName() };
1065        Object[] finderArgs = new Object[] { new Long(userId) };
1066
1067        Object result = null;
1068
1069        if (finderClassNameCacheEnabled) {
1070            result = FinderCache.getResult(finderClassName, finderMethodName,
1071                    finderParams, finderArgs, getSessionFactory());
1072        }
1073
1074        if (result == null) {
1075            Session session = null;
1076
1077            try {
1078                session = openSession();
1079
1080                StringMaker query = new StringMaker();
1081
1082                query.append("SELECT COUNT(*) ");
1083                query.append(
1084                    "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
1085
1086                query.append("userId = ?");
1087
1088                query.append(" ");
1089
1090                Query q = session.createQuery(query.toString());
1091
1092                int queryPos = 0;
1093
1094                q.setLong(queryPos++, userId);
1095
1096                Long count = null;
1097
1098                Iterator itr = q.list().iterator();
1099
1100                if (itr.hasNext()) {
1101                    count = (Long)itr.next();
1102                }
1103
1104                if (count == null) {
1105                    count = new Long(0);
1106                }
1107
1108                FinderCache.putResult(finderClassNameCacheEnabled,
1109                    finderClassName, finderMethodName, finderParams,
1110                    finderArgs, count);
1111
1112                return count.intValue();
1113            }
1114            catch (Exception e) {
1115                throw HibernateUtil.processException(e);
1116            }
1117            finally {
1118                closeSession(session);
1119            }
1120        }
1121        else {
1122            return ((Long)result).intValue();
1123        }
1124    }
1125
1126    public int countByF_N(long folderId, String name) throws SystemException {
1127        boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
1128        String finderClassName = DLFileRank.class.getName();
1129        String finderMethodName = "countByF_N";
1130        String[] finderParams = new String[] {
1131                Long.class.getName(), String.class.getName()
1132            };
1133        Object[] finderArgs = new Object[] { new Long(folderId), name };
1134
1135        Object result = null;
1136
1137        if (finderClassNameCacheEnabled) {
1138            result = FinderCache.getResult(finderClassName, finderMethodName,
1139                    finderParams, finderArgs, getSessionFactory());
1140        }
1141
1142        if (result == null) {
1143            Session session = null;
1144
1145            try {
1146                session = openSession();
1147
1148                StringMaker query = new StringMaker();
1149
1150                query.append("SELECT COUNT(*) ");
1151                query.append(
1152                    "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
1153
1154                query.append("folderId = ?");
1155
1156                query.append(" AND ");
1157
1158                if (name == null) {
1159                    query.append("name IS NULL");
1160                }
1161                else {
1162                    query.append("name = ?");
1163                }
1164
1165                query.append(" ");
1166
1167                Query q = session.createQuery(query.toString());
1168
1169                int queryPos = 0;
1170
1171                q.setLong(queryPos++, folderId);
1172
1173                if (name != null) {
1174                    q.setString(queryPos++, name);
1175                }
1176
1177                Long count = null;
1178
1179                Iterator itr = q.list().iterator();
1180
1181                if (itr.hasNext()) {
1182                    count = (Long)itr.next();
1183                }
1184
1185                if (count == null) {
1186                    count = new Long(0);
1187                }
1188
1189                FinderCache.putResult(finderClassNameCacheEnabled,
1190                    finderClassName, finderMethodName, finderParams,
1191                    finderArgs, count);
1192
1193                return count.intValue();
1194            }
1195            catch (Exception e) {
1196                throw HibernateUtil.processException(e);
1197            }
1198            finally {
1199                closeSession(session);
1200            }
1201        }
1202        else {
1203            return ((Long)result).intValue();
1204        }
1205    }
1206
1207    public int countByC_U_F_N(long companyId, long userId, long folderId,
1208        String name) throws SystemException {
1209        boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
1210        String finderClassName = DLFileRank.class.getName();
1211        String finderMethodName = "countByC_U_F_N";
1212        String[] finderParams = new String[] {
1213                Long.class.getName(), Long.class.getName(), Long.class.getName(),
1214                String.class.getName()
1215            };
1216        Object[] finderArgs = new Object[] {
1217                new Long(companyId), new Long(userId), new Long(folderId),
1218                
1219                name
1220            };
1221
1222        Object result = null;
1223
1224        if (finderClassNameCacheEnabled) {
1225            result = FinderCache.getResult(finderClassName, finderMethodName,
1226                    finderParams, finderArgs, getSessionFactory());
1227        }
1228
1229        if (result == null) {
1230            Session session = null;
1231
1232            try {
1233                session = openSession();
1234
1235                StringMaker query = new StringMaker();
1236
1237                query.append("SELECT COUNT(*) ");
1238                query.append(
1239                    "FROM com.liferay.portlet.documentlibrary.model.DLFileRank WHERE ");
1240
1241                query.append("companyId = ?");
1242
1243                query.append(" AND ");
1244
1245                query.append("userId = ?");
1246
1247                query.append(" AND ");
1248
1249                query.append("folderId = ?");
1250
1251                query.append(" AND ");
1252
1253                if (name == null) {
1254                    query.append("name IS NULL");
1255                }
1256                else {
1257                    query.append("name = ?");
1258                }
1259
1260                query.append(" ");
1261
1262                Query q = session.createQuery(query.toString());
1263
1264                int queryPos = 0;
1265
1266                q.setLong(queryPos++, companyId);
1267
1268                q.setLong(queryPos++, userId);
1269
1270                q.setLong(queryPos++, folderId);
1271
1272                if (name != null) {
1273                    q.setString(queryPos++, name);
1274                }
1275
1276                Long count = null;
1277
1278                Iterator itr = q.list().iterator();
1279
1280                if (itr.hasNext()) {
1281                    count = (Long)itr.next();
1282                }
1283
1284                if (count == null) {
1285                    count = new Long(0);
1286                }
1287
1288                FinderCache.putResult(finderClassNameCacheEnabled,
1289                    finderClassName, finderMethodName, finderParams,
1290                    finderArgs, count);
1291
1292                return count.intValue();
1293            }
1294            catch (Exception e) {
1295                throw HibernateUtil.processException(e);
1296            }
1297            finally {
1298                closeSession(session);
1299            }
1300        }
1301        else {
1302            return ((Long)result).intValue();
1303        }
1304    }
1305
1306    public int countAll() throws SystemException {
1307        boolean finderClassNameCacheEnabled = DLFileRankModelImpl.CACHE_ENABLED;
1308        String finderClassName = DLFileRank.class.getName();
1309        String finderMethodName = "countAll";
1310        String[] finderParams = new String[] {  };
1311        Object[] finderArgs = new Object[] {  };
1312
1313        Object result = null;
1314
1315        if (finderClassNameCacheEnabled) {
1316            result = FinderCache.getResult(finderClassName, finderMethodName,
1317                    finderParams, finderArgs, getSessionFactory());
1318        }
1319
1320        if (result == null) {
1321            Session session = null;
1322
1323            try {
1324                session = openSession();
1325
1326                Query q = session.createQuery(
1327                        "SELECT COUNT(*) FROM com.liferay.portlet.documentlibrary.model.DLFileRank");
1328
1329                Long count = null;
1330
1331                Iterator itr = q.list().iterator();
1332
1333                if (itr.hasNext()) {
1334                    count = (Long)itr.next();
1335                }
1336
1337                if (count == null) {
1338                    count = new Long(0);
1339                }
1340
1341                FinderCache.putResult(finderClassNameCacheEnabled,
1342                    finderClassName, finderMethodName, finderParams,
1343                    finderArgs, count);
1344
1345                return count.intValue();
1346            }
1347            catch (Exception e) {
1348                throw HibernateUtil.processException(e);
1349            }
1350            finally {
1351                closeSession(session);
1352            }
1353        }
1354        else {
1355            return ((Long)result).intValue();
1356        }
1357    }
1358
1359    protected void initDao() {
1360    }
1361
1362    private static ModelListener _getListener() {
1363        if (Validator.isNotNull(_LISTENER)) {
1364            try {
1365                return (ModelListener)Class.forName(_LISTENER).newInstance();
1366            }
1367            catch (Exception e) {
1368                _log.error(e);
1369            }
1370        }
1371
1372        return null;
1373    }
1374
1375    private static final String _LISTENER = GetterUtil.getString(PropsUtil.get(
1376                "value.object.listener.com.liferay.portlet.documentlibrary.model.DLFileRank"));
1377    private static Log _log = LogFactory.getLog(DLFileRankPersistenceImpl.class);
1378}