001
014
015 package com.liferay.portal.kernel.dao.orm;
016
017 import com.liferay.portal.kernel.util.CalendarUtil;
018
019 import java.sql.Timestamp;
020
021 import java.util.Date;
022
023
027 public class QueryPos {
028
029 public static QueryPos getInstance(Query query) {
030 return new QueryPos(query);
031 }
032
033 public void add(boolean value) {
034 _query.setBoolean(_pos++, value);
035 }
036
037 public void add(Boolean value) {
038 if (value != null) {
039 _query.setBoolean(_pos++, value.booleanValue());
040 }
041 else {
042 _addNull();
043 }
044 }
045
046 public void add(boolean[] values) {
047 add(values, _DEFAULT_ARRAY_COUNT);
048 }
049
050 public void add(boolean[] values, int count) {
051 for (int i = 0; i < values.length; i++) {
052 for (int j = 0; j < count; j++) {
053 add(values[i]);
054 }
055 }
056 }
057
058 public void add(Boolean[] values) {
059 add(values, _DEFAULT_ARRAY_COUNT);
060 }
061
062 public void add(Boolean[] values, int count) {
063 for (int i = 0; i < values.length; i++) {
064 for (int j = 0; j < count; j++) {
065 add(values[i]);
066 }
067 }
068 }
069
070 public void add(Date value) {
071 add(CalendarUtil.getTimestamp(value));
072 }
073
074 public void add(Date[] values) {
075 add(values, _DEFAULT_ARRAY_COUNT);
076 }
077
078 public void add(Date[] values, int count) {
079 for (int i = 0; i < values.length; i++) {
080 for (int j = 0; j < count; j++) {
081 add(CalendarUtil.getTimestamp(values[i]));
082 }
083 }
084 }
085
086 public void add(double value) {
087 _query.setDouble(_pos++, value);
088 }
089
090 public void add(Double value) {
091 if (value != null) {
092 _query.setDouble(_pos++, value.doubleValue());
093 }
094 else {
095 _addNull();
096 }
097 }
098
099 public void add(double[] values) {
100 add(values, _DEFAULT_ARRAY_COUNT);
101 }
102
103 public void add(double[] values, int count) {
104 for (int i = 0; i < values.length; i++) {
105 for (int j = 0; j < count; j++) {
106 add(values[i]);
107 }
108 }
109 }
110
111 public void add(Double[] values) {
112 add(values, _DEFAULT_ARRAY_COUNT);
113 }
114
115 public void add(Double[] values, int count) {
116 for (int i = 0; i < values.length; i++) {
117 for (int j = 0; j < count; j++) {
118 add(values[i]);
119 }
120 }
121 }
122
123 public void add(float value) {
124 _query.setFloat(_pos++, value);
125 }
126
127 public void add(Float value) {
128 if (value != null) {
129 _query.setFloat(_pos++, value.intValue());
130 }
131 else {
132 _addNull();
133 }
134 }
135
136 public void add(float[] values) {
137 add(values, _DEFAULT_ARRAY_COUNT);
138 }
139
140 public void add(float[] values, int count) {
141 for (int i = 0; i < values.length; i++) {
142 for (int j = 0; j < count; j++) {
143 add(values[i]);
144 }
145 }
146 }
147
148 public void add(Float[] values) {
149 add(values, _DEFAULT_ARRAY_COUNT);
150 }
151
152 public void add(Float[] values, int count) {
153 for (int i = 0; i < values.length; i++) {
154 for (int j = 0; j < count; j++) {
155 add(values[i]);
156 }
157 }
158 }
159
160 public void add(int value) {
161 _query.setInteger(_pos++, value);
162 }
163
164 public void add(int[] values) {
165 add(values, _DEFAULT_ARRAY_COUNT);
166 }
167
168 public void add(int[] values, int count) {
169 for (int i = 0; i < values.length; i++) {
170 for (int j = 0; j < count; j++) {
171 add(values[i]);
172 }
173 }
174 }
175
176 public void add(Integer value) {
177 if (value != null) {
178 _query.setInteger(_pos++, value.intValue());
179 }
180 else {
181 _addNull();
182 }
183 }
184
185 public void add(Integer[] values) {
186 add(values, _DEFAULT_ARRAY_COUNT);
187 }
188
189 public void add(Integer[] values, int count) {
190 for (int i = 0; i < values.length; i++) {
191 for (int j = 0; j < count; j++) {
192 add(values[i]);
193 }
194 }
195 }
196
197 public void add(long value) {
198 _query.setLong(_pos++, value);
199 }
200
201 public void add(Long value) {
202 if (value != null) {
203 _query.setLong(_pos++, value.longValue());
204 }
205 else {
206 _addNull();
207 }
208 }
209
210 public void add(long[] values) {
211 add(values, _DEFAULT_ARRAY_COUNT);
212 }
213
214 public void add(long[] values, int count) {
215 for (int i = 0; i < values.length; i++) {
216 for (int j = 0; j < count; j++) {
217 add(values[i]);
218 }
219 }
220 }
221
222 public void add(Long[] values) {
223 add(values, _DEFAULT_ARRAY_COUNT);
224 }
225
226 public void add(Long[] values, int count) {
227 for (int i = 0; i < values.length; i++) {
228 for (int j = 0; j < count; j++) {
229 add(values[i]);
230 }
231 }
232 }
233
234 public void add(Object obj) {
235 if (obj == null) {
236 _addNull();
237
238 return;
239 }
240
241 Class<?> clazz = obj.getClass();
242
243 if (clazz == Boolean.class) {
244 add(((Boolean)obj).booleanValue());
245 }
246 else if (clazz == Date.class) {
247 add(CalendarUtil.getTimestamp((Date)obj));
248 }
249 else if (clazz == Double.class) {
250 add(((Double)obj).doubleValue());
251 }
252 else if (clazz == Float.class) {
253 add(((Float)obj).floatValue());
254 }
255 else if (clazz == Integer.class) {
256 add(((Integer)obj).intValue());
257 }
258 else if (clazz == Long.class) {
259 add(((Long)obj).longValue());
260 }
261 else if (clazz == Short.class) {
262 add(((Short)obj).shortValue());
263 }
264 else if (clazz == String.class) {
265 add((String)obj);
266 }
267 else if (clazz == Timestamp.class) {
268 add((Timestamp)obj);
269 }
270 else {
271 throw new RuntimeException("Unsupport type " + clazz.getName());
272 }
273 }
274
275 public void add(short value) {
276 _query.setShort(_pos++, value);
277 }
278
279 public void add(Short value) {
280 if (value != null) {
281 _query.setShort(_pos++, value.shortValue());
282 }
283 else {
284 _addNull();
285 }
286 }
287
288 public void add(short[] values) {
289 add(values, _DEFAULT_ARRAY_COUNT);
290 }
291
292 public void add(short[] values, int count) {
293 for (int i = 0; i < values.length; i++) {
294 for (int j = 0; j < count; j++) {
295 add(values[i]);
296 }
297 }
298 }
299
300 public void add(Short[] values) {
301 add(values, _DEFAULT_ARRAY_COUNT);
302 }
303
304 public void add(Short[] values, int count) {
305 for (int i = 0; i < values.length; i++) {
306 for (int j = 0; j < count; j++) {
307 add(values[i]);
308 }
309 }
310 }
311
312 public void add(String value) {
313 _query.setString(_pos++, value);
314 }
315
316 public void add(String[] values) {
317 add(values, _DEFAULT_ARRAY_COUNT);
318 }
319
320 public void add(String[] values, int count) {
321 for (int i = 0; i < values.length; i++) {
322 for (int j = 0; j < count; j++) {
323 add(values[i]);
324 }
325 }
326 }
327
328 public void add(Timestamp value) {
329 _query.setTimestamp(_pos++, value);
330 }
331
332 public void add(Timestamp[] values) {
333 add(values, _DEFAULT_ARRAY_COUNT);
334 }
335
336 public void add(Timestamp[] values, int count) {
337 for (int i = 0; i < values.length; i++) {
338 for (int j = 0; j < count; j++) {
339 add(values[i]);
340 }
341 }
342 }
343
344 public int getPos() {
345 return _pos;
346 }
347
348 private QueryPos(Query query) {
349 _query = query;
350 }
351
352 private void _addNull() {
353 _query.setSerializable(_pos++, null);
354 }
355
356 private static final int _DEFAULT_ARRAY_COUNT = 1;
357
358 private int _pos;
359 private Query _query;
360
361 }