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