1
22
23 package com.liferay.portlet.documentlibrary.service.persistence;
24
25 import com.liferay.portal.SystemException;
26 import com.liferay.portal.kernel.dao.orm.QueryPos;
27 import com.liferay.portal.kernel.dao.orm.SQLQuery;
28 import com.liferay.portal.kernel.dao.orm.Session;
29 import com.liferay.portal.kernel.dao.orm.Type;
30 import com.liferay.portal.kernel.util.StringUtil;
31 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
32 import com.liferay.portlet.documentlibrary.model.DLFileEntry;
33 import com.liferay.portlet.documentlibrary.model.impl.DLFileEntryImpl;
34 import com.liferay.util.dao.orm.CustomSQLUtil;
35
36 import java.util.Iterator;
37 import java.util.List;
38
39
45 public class DLFileEntryFinderImpl
46 extends BasePersistenceImpl implements DLFileEntryFinder {
47
48 public static String COUNT_BY_FOLDER_IDS =
49 DLFileEntryFinder.class.getName() + ".countByFolderIds";
50
51 public static String FIND_BY_NO_ASSETS =
52 DLFileEntryFinder.class.getName() + ".findByNoAssets";
53
54 public int countByFolderIds(List<Long> folderIds) throws SystemException {
55 Session session = null;
56
57 try {
58 session = openSession();
59
60 String sql = CustomSQLUtil.get(COUNT_BY_FOLDER_IDS);
61
62 sql = StringUtil.replace(
63 sql, "[$FOLDER_ID$]", getFolderIds(folderIds));
64
65 SQLQuery q = session.createSQLQuery(sql);
66
67 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
68
69 QueryPos qPos = QueryPos.getInstance(q);
70
71 for (int i = 0; i < folderIds.size(); i++) {
72 Long folderId = folderIds.get(i);
73
74 qPos.add(folderId);
75 }
76
77 Iterator<Long> itr = q.list().iterator();
78
79 if (itr.hasNext()) {
80 Long count = itr.next();
81
82 if (count != null) {
83 return count.intValue();
84 }
85 }
86
87 return 0;
88 }
89 catch (Exception e) {
90 throw new SystemException(e);
91 }
92 finally {
93 closeSession(session);
94 }
95 }
96
97 public List<DLFileEntry> findByNoAssets() throws SystemException {
98 Session session = null;
99
100 try {
101 session = openSession();
102
103 String sql = CustomSQLUtil.get(FIND_BY_NO_ASSETS);
104
105 SQLQuery q = session.createSQLQuery(sql);
106
107 q.addEntity("DLFileEntry", DLFileEntryImpl.class);
108
109 return q.list();
110 }
111 catch (Exception e) {
112 throw new SystemException(e);
113 }
114 finally {
115 closeSession(session);
116 }
117 }
118
119 protected String getFolderIds(List<Long> folderIds) {
120 StringBuilder sb = new StringBuilder();
121
122 for (int i = 0; i < folderIds.size(); i++) {
123 sb.append("folderId = ? ");
124
125 if ((i + 1) != folderIds.size()) {
126 sb.append("OR ");
127 }
128 }
129
130 return sb.toString();
131 }
132
133 }