1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * This library is free software; you can redistribute it and/or modify it under
5    * the terms of the GNU Lesser General Public License as published by the Free
6    * Software Foundation; either version 2.1 of the License, or (at your option)
7    * any later version.
8    *
9    * This library is distributed in the hope that it will be useful, but WITHOUT
10   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11   * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
12   * details.
13   */
14  
15  package com.liferay.portal.kernel.dao.orm;
16  
17  import java.sql.Timestamp;
18  
19  /**
20   * <a href="QueryPos.java.html"><b><i>View Source</i></b></a>
21   *
22   * @author Brian Wing Shun Chan
23   */
24  public class QueryPos {
25  
26      public static QueryPos getInstance(Query query) {
27          return new QueryPos(query);
28      }
29  
30      public void add(boolean value) {
31          _query.setBoolean(_pos++, value);
32      }
33  
34      public void add(Boolean value) {
35          if (value != null) {
36              _query.setBoolean(_pos++, value.booleanValue());
37          }
38          else {
39              addNull();
40          }
41      }
42  
43      public void add(boolean[] values) {
44          add(values, _DEFAULT_ARRAY_COUNT);
45      }
46  
47      public void add(boolean[] values, int count) {
48          for (int i = 0; i < values.length; i++) {
49              for (int j = 0; j < count; j++) {
50                  add(values[i]);
51              }
52          }
53      }
54  
55      public void add(Boolean[] values) {
56          add(values, _DEFAULT_ARRAY_COUNT);
57      }
58  
59      public void add(Boolean[] values, int count) {
60          for (int i = 0; i < values.length; i++) {
61              for (int j = 0; j < count; j++) {
62                  add(values[i]);
63              }
64          }
65      }
66  
67      public void add(double value) {
68          _query.setDouble(_pos++, value);
69      }
70  
71      public void add(Double value) {
72          if (value != null) {
73              _query.setDouble(_pos++, value.doubleValue());
74          }
75          else {
76              addNull();
77          }
78      }
79  
80      public void add(double[] values) {
81          add(values, _DEFAULT_ARRAY_COUNT);
82      }
83  
84      public void add(double[] values, int count) {
85          for (int i = 0; i < values.length; i++) {
86              for (int j = 0; j < count; j++) {
87                  add(values[i]);
88              }
89          }
90      }
91  
92      public void add(Double[] values) {
93          add(values, _DEFAULT_ARRAY_COUNT);
94      }
95  
96      public void add(Double[] values, int count) {
97          for (int i = 0; i < values.length; i++) {
98              for (int j = 0; j < count; j++) {
99                  add(values[i]);
100             }
101         }
102     }
103 
104     public void add(float value) {
105         _query.setFloat(_pos++, value);
106     }
107 
108     public void add(Float value) {
109         if (value != null) {
110             _query.setFloat(_pos++, value.intValue());
111         }
112         else {
113             addNull();
114         }
115     }
116 
117     public void add(float[] values) {
118         add(values, _DEFAULT_ARRAY_COUNT);
119     }
120 
121     public void add(float[] values, int count) {
122         for (int i = 0; i < values.length; i++) {
123             for (int j = 0; j < count; j++) {
124                 add(values[i]);
125             }
126         }
127     }
128 
129     public void add(Float[] values) {
130         add(values, _DEFAULT_ARRAY_COUNT);
131     }
132 
133     public void add(Float[] values, int count) {
134         for (int i = 0; i < values.length; i++) {
135             for (int j = 0; j < count; j++) {
136                 add(values[i]);
137             }
138         }
139     }
140 
141     public void add(int value) {
142         _query.setInteger(_pos++, value);
143     }
144 
145     public void add(int[] values) {
146         add(values, _DEFAULT_ARRAY_COUNT);
147     }
148 
149     public void add(int[] values, int count) {
150         for (int i = 0; i < values.length; i++) {
151             for (int j = 0; j < count; j++) {
152                 add(values[i]);
153             }
154         }
155     }
156 
157     public void add(Integer value) {
158         if (value != null) {
159             _query.setInteger(_pos++, value.intValue());
160         }
161         else {
162             addNull();
163         }
164     }
165 
166     public void add(Integer[] values) {
167         add(values, _DEFAULT_ARRAY_COUNT);
168     }
169 
170     public void add(Integer[] values, int count) {
171         for (int i = 0; i < values.length; i++) {
172             for (int j = 0; j < count; j++) {
173                 add(values[i]);
174             }
175         }
176     }
177 
178     public void add(long value) {
179         _query.setLong(_pos++, value);
180     }
181 
182     public void add(Long value) {
183         if (value != null) {
184             _query.setLong(_pos++, value.longValue());
185         }
186         else {
187             addNull();
188         }
189     }
190 
191     public void add(long[] values) {
192         add(values, _DEFAULT_ARRAY_COUNT);
193     }
194 
195     public void add(long[] values, int count) {
196         for (int i = 0; i < values.length; i++) {
197             for (int j = 0; j < count; j++) {
198                 add(values[i]);
199             }
200         }
201     }
202 
203     public void add(Long[] values) {
204         add(values, _DEFAULT_ARRAY_COUNT);
205     }
206 
207     public void add(Long[] values, int count) {
208         for (int i = 0; i < values.length; i++) {
209             for (int j = 0; j < count; j++) {
210                 add(values[i]);
211             }
212         }
213     }
214 
215     public void add(short value) {
216         _query.setShort(_pos++, value);
217     }
218 
219     public void add(Short value) {
220         if (value != null) {
221             _query.setShort(_pos++, value.shortValue());
222         }
223         else {
224             addNull();
225         }
226     }
227 
228     public void add(short[] values) {
229         add(values, _DEFAULT_ARRAY_COUNT);
230     }
231 
232     public void add(short[] values, int count) {
233         for (int i = 0; i < values.length; i++) {
234             for (int j = 0; j < count; j++) {
235                 add(values[i]);
236             }
237         }
238     }
239 
240     public void add(Short[] values) {
241         add(values, _DEFAULT_ARRAY_COUNT);
242     }
243 
244     public void add(Short[] values, int count) {
245         for (int i = 0; i < values.length; i++) {
246             for (int j = 0; j < count; j++) {
247                 add(values[i]);
248             }
249         }
250     }
251 
252     public void add(String value) {
253         _query.setString(_pos++, value);
254     }
255 
256     public void add(String[] values) {
257         add(values, _DEFAULT_ARRAY_COUNT);
258     }
259 
260     public void add(String[] values, int count) {
261         for (int i = 0; i < values.length; i++) {
262             for (int j = 0; j < count; j++) {
263                 add(values[i]);
264             }
265         }
266     }
267 
268     public void add(Timestamp value) {
269         _query.setTimestamp(_pos++, value);
270     }
271 
272     public void add(Timestamp[] values) {
273         add(values, _DEFAULT_ARRAY_COUNT);
274     }
275 
276     public void add(Timestamp[] 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 int getPos() {
285         return _pos;
286     }
287 
288     private void addNull() {
289         _query.setSerializable(_pos++, null);
290     }
291 
292     private QueryPos(Query query) {
293         _query = query;
294     }
295 
296     private static final int _DEFAULT_ARRAY_COUNT = 1;
297 
298     private int _pos;
299     private Query _query;
300 
301 }