1
22
23 package com.liferay.portlet.tags.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.QueryUtil;
28 import com.liferay.portal.kernel.dao.orm.SQLQuery;
29 import com.liferay.portal.kernel.dao.orm.Session;
30 import com.liferay.portal.kernel.dao.orm.Type;
31 import com.liferay.portal.service.persistence.impl.BasePersistenceImpl;
32 import com.liferay.portlet.tags.model.TagsProperty;
33 import com.liferay.portlet.tags.model.impl.TagsPropertyImpl;
34 import com.liferay.util.dao.orm.CustomSQLUtil;
35
36 import java.util.ArrayList;
37 import java.util.Iterator;
38 import java.util.List;
39
40
46 public class TagsPropertyFinderImpl
47 extends BasePersistenceImpl implements TagsPropertyFinder {
48
49 public static String COUNT_BY_G_K =
50 TagsPropertyFinder.class.getName() + ".countByG_K";
51
52 public static String FIND_BY_G_K =
53 TagsPropertyFinder.class.getName() + ".findByG_K";
54
55 public int countByG_K(long groupId, String key) throws SystemException {
56 Session session = null;
57
58 try {
59 session = openSession();
60
61 String sql = CustomSQLUtil.get(COUNT_BY_G_K);
62
63 SQLQuery q = session.createSQLQuery(sql);
64
65 q.addScalar(COUNT_COLUMN_NAME, Type.LONG);
66
67 QueryPos qPos = QueryPos.getInstance(q);
68
69 qPos.add(groupId);
70 qPos.add(key);
71
72 Iterator<Long> itr = q.list().iterator();
73
74 if (itr.hasNext()) {
75 Long count = itr.next();
76
77 if (count != null) {
78 return count.intValue();
79 }
80 }
81
82 return 0;
83 }
84 catch (Exception e) {
85 throw new SystemException(e);
86 }
87 finally {
88 closeSession(session);
89 }
90 }
91
92 public List<TagsProperty> findByG_K(long groupId, String key)
93 throws SystemException {
94
95 return findByG_K(groupId, key, QueryUtil.ALL_POS, QueryUtil.ALL_POS);
96 }
97
98 public List<TagsProperty> findByG_K(
99 long groupId, String key, int start, int end)
100 throws SystemException {
101
102 Session session = null;
103
104 try {
105 session = openSession();
106
107 String sql = CustomSQLUtil.get(FIND_BY_G_K);
108
109 SQLQuery q = session.createSQLQuery(sql);
110
111 q.addScalar("propertyValue", Type.STRING);
112
113 QueryPos qPos = QueryPos.getInstance(q);
114
115 qPos.add(groupId);
116 qPos.add(key);
117
118 List<TagsProperty> properties = new ArrayList<TagsProperty>();
119
120 Iterator<String> itr = (Iterator<String>)QueryUtil.iterate(
121 q, getDialect(), start, end);
122
123 while (itr.hasNext()) {
124 String value = itr.next();
125
126 TagsProperty property = new TagsPropertyImpl();
127
128 property.setKey(key);
129 property.setValue(value);
130
131 properties.add(property);
132 }
133
134 return properties;
135 }
136 catch (Exception e) {
137 throw new SystemException(e);
138 }
139 finally {
140 closeSession(session);
141 }
142 }
143
144 }