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(double value) {
071 _query.setDouble(_pos++, value);
072 }
073
074 public void add(Double value) {
075 if (value != null) {
076 _query.setDouble(_pos++, value.doubleValue());
077 }
078 else {
079 _addNull();
080 }
081 }
082
083 public void add(double[] values) {
084 add(values, _DEFAULT_ARRAY_COUNT);
085 }
086
087 public void add(double[] values, int count) {
088 for (int i = 0; i < values.length; i++) {
089 for (int j = 0; j < count; j++) {
090 add(values[i]);
091 }
092 }
093 }
094
095 public void add(Double[] values) {
096 add(values, _DEFAULT_ARRAY_COUNT);
097 }
098
099 public void add(Double[] values, int count) {
100 for (int i = 0; i < values.length; i++) {
101 for (int j = 0; j < count; j++) {
102 add(values[i]);
103 }
104 }
105 }
106
107 public void add(float value) {
108 _query.setFloat(_pos++, value);
109 }
110
111 public void add(Float value) {
112 if (value != null) {
113 _query.setFloat(_pos++, value.intValue());
114 }
115 else {
116 _addNull();
117 }
118 }
119
120 public void add(float[] values) {
121 add(values, _DEFAULT_ARRAY_COUNT);
122 }
123
124 public void add(float[] values, int count) {
125 for (int i = 0; i < values.length; i++) {
126 for (int j = 0; j < count; j++) {
127 add(values[i]);
128 }
129 }
130 }
131
132 public void add(Float[] values) {
133 add(values, _DEFAULT_ARRAY_COUNT);
134 }
135
136 public void add(Float[] values, int count) {
137 for (int i = 0; i < values.length; i++) {
138 for (int j = 0; j < count; j++) {
139 add(values[i]);
140 }
141 }
142 }
143
144 public void add(int value) {
145 _query.setInteger(_pos++, value);
146 }
147
148 public void add(int[] values) {
149 add(values, _DEFAULT_ARRAY_COUNT);
150 }
151
152 public void add(int[] 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(Integer value) {
161 if (value != null) {
162 _query.setInteger(_pos++, value.intValue());
163 }
164 else {
165 _addNull();
166 }
167 }
168
169 public void add(Integer[] values) {
170 add(values, _DEFAULT_ARRAY_COUNT);
171 }
172
173 public void add(Integer[] values, int count) {
174 for (int i = 0; i < values.length; i++) {
175 for (int j = 0; j < count; j++) {
176 add(values[i]);
177 }
178 }
179 }
180
181 public void add(long value) {
182 _query.setLong(_pos++, value);
183 }
184
185 public void add(Long value) {
186 if (value != null) {
187 _query.setLong(_pos++, value.longValue());
188 }
189 else {
190 _addNull();
191 }
192 }
193
194 public void add(long[] values) {
195 add(values, _DEFAULT_ARRAY_COUNT);
196 }
197
198 public void add(long[] values, int count) {
199 for (int i = 0; i < values.length; i++) {
200 for (int j = 0; j < count; j++) {
201 add(values[i]);
202 }
203 }
204 }
205
206 public void add(Long[] values) {
207 add(values, _DEFAULT_ARRAY_COUNT);
208 }
209
210 public void add(Long[] values, int count) {
211 for (int i = 0; i < values.length; i++) {
212 for (int j = 0; j < count; j++) {
213 add(values[i]);
214 }
215 }
216 }
217
218 public void add(Object obj) {
219 if (obj == null) {
220 _addNull();
221
222 return;
223 }
224
225 Class<?> classObj = obj.getClass();
226
227 if (classObj == Boolean.class) {
228 add(((Boolean)obj).booleanValue());
229 }
230 else if (classObj == Date.class) {
231 add(CalendarUtil.getTimestamp((Date)obj));
232 }
233 else if (classObj == Double.class) {
234 add(((Double)obj).doubleValue());
235 }
236 else if (classObj == Float.class) {
237 add(((Float)obj).floatValue());
238 }
239 else if (classObj == Integer.class) {
240 add(((Integer)obj).intValue());
241 }
242 else if (classObj == Long.class) {
243 add(((Long)obj).longValue());
244 }
245 else if (classObj == Short.class) {
246 add(((Short)obj).shortValue());
247 }
248 else if (classObj == String.class) {
249 add((String)obj);
250 }
251 else if (classObj == Timestamp.class) {
252 add((Timestamp)obj);
253 }
254 else {
255 throw new RuntimeException("Unsupport type " + classObj.getName());
256 }
257 }
258
259 public void add(short value) {
260 _query.setShort(_pos++, value);
261 }
262
263 public void add(Short value) {
264 if (value != null) {
265 _query.setShort(_pos++, value.shortValue());
266 }
267 else {
268 _addNull();
269 }
270 }
271
272 public void add(short[] values) {
273 add(values, _DEFAULT_ARRAY_COUNT);
274 }
275
276 public void add(short[] values, int count) {
277 for (int i = 0; i < values.length; i++) {
278 for (int j = 0; j < count; j++) {
279 add(values[i]);
280 }
281 }
282 }
283
284 public void add(Short[] values) {
285 add(values, _DEFAULT_ARRAY_COUNT);
286 }
287
288 public void add(Short[] values, int count) {
289 for (int i = 0; i < values.length; i++) {
290 for (int j = 0; j < count; j++) {
291 add(values[i]);
292 }
293 }
294 }
295
296 public void add(String value) {
297 _query.setString(_pos++, value);
298 }
299
300 public void add(String[] values) {
301 add(values, _DEFAULT_ARRAY_COUNT);
302 }
303
304 public void add(String[] 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(Timestamp value) {
313 _query.setTimestamp(_pos++, value);
314 }
315
316 public void add(Timestamp[] values) {
317 add(values, _DEFAULT_ARRAY_COUNT);
318 }
319
320 public void add(Timestamp[] 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 int getPos() {
329 return _pos;
330 }
331
332 private QueryPos(Query query) {
333 _query = query;
334 }
335
336 private void _addNull() {
337 _query.setSerializable(_pos++, null);
338 }
339
340 private static final int _DEFAULT_ARRAY_COUNT = 1;
341
342 private int _pos;
343 private Query _query;
344
345 }