1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    *
5    *
6    *
7    * The contents of this file are subject to the terms of the Liferay Enterprise
8    * Subscription License ("License"). You may not use this file except in
9    * compliance with the License. You can obtain a copy of the License by
10   * contacting Liferay, Inc. See the License for the specific language governing
11   * permissions and limitations under the License, including but not limited to
12   * distribution rights of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.portal.kernel.dao.orm;
24  
25  import java.sql.Timestamp;
26  
27  /**
28   * <a href="QueryPos.java.html"><b><i>View Source</i></b></a>
29   *
30   * @author Brian Wing Shun Chan
31   */
32  public class QueryPos {
33  
34      public static QueryPos getInstance(Query query) {
35          return new QueryPos(query);
36      }
37  
38      public void add(boolean value) {
39          _query.setBoolean(_pos++, value);
40      }
41  
42      public void add(Boolean value) {
43          if (value != null) {
44              _query.setBoolean(_pos++, value.booleanValue());
45          }
46          else {
47              addNull();
48          }
49      }
50  
51      public void add(boolean[] values) {
52          add(values, _DEFAULT_ARRAY_COUNT);
53      }
54  
55      public void add(boolean[] values, int count) {
56          for (int i = 0; i < values.length; i++) {
57              for (int j = 0; j < count; j++) {
58                  add(values[i]);
59              }
60          }
61      }
62  
63      public void add(double value) {
64          _query.setDouble(_pos++, value);
65      }
66  
67      public void add(Double value) {
68          if (value != null) {
69              _query.setDouble(_pos++, value.doubleValue());
70          }
71          else {
72              addNull();
73          }
74      }
75  
76      public void add(double[] values) {
77          add(values, _DEFAULT_ARRAY_COUNT);
78      }
79  
80      public void add(double[] values, int count) {
81          for (int i = 0; i < values.length; i++) {
82              for (int j = 0; j < count; j++) {
83                  add(values[i]);
84              }
85          }
86      }
87  
88      public void add(float value) {
89          _query.setFloat(_pos++, value);
90      }
91  
92      public void add(Float value) {
93          if (value != null) {
94              _query.setFloat(_pos++, value.intValue());
95          }
96          else {
97              addNull();
98          }
99      }
100 
101     public void add(float[] values) {
102         add(values, _DEFAULT_ARRAY_COUNT);
103     }
104 
105     public void add(float[] values, int count) {
106         for (int i = 0; i < values.length; i++) {
107             for (int j = 0; j < count; j++) {
108                 add(values[i]);
109             }
110         }
111     }
112 
113     public void add(int value) {
114         _query.setInteger(_pos++, value);
115     }
116 
117     public void add(int[] values) {
118         add(values, _DEFAULT_ARRAY_COUNT);
119     }
120 
121     public void add(int[] 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(Integer value) {
130         if (value != null) {
131             _query.setInteger(_pos++, value.intValue());
132         }
133         else {
134             addNull();
135         }
136     }
137 
138     public void add(long value) {
139         _query.setLong(_pos++, value);
140     }
141 
142     public void add(Long value) {
143         if (value != null) {
144             _query.setLong(_pos++, value.longValue());
145         }
146         else {
147             addNull();
148         }
149     }
150 
151     public void add(long[] values) {
152         add(values, _DEFAULT_ARRAY_COUNT);
153     }
154 
155     public void add(long[] values, int count) {
156         for (int i = 0; i < values.length; i++) {
157             for (int j = 0; j < count; j++) {
158                 add(values[i]);
159             }
160         }
161     }
162 
163     public void add(short value) {
164         _query.setShort(_pos++, value);
165     }
166 
167     public void add(Short value) {
168         if (value != null) {
169             _query.setShort(_pos++, value.shortValue());
170         }
171         else {
172             addNull();
173         }
174     }
175 
176     public void add(short[] values) {
177         add(values, _DEFAULT_ARRAY_COUNT);
178     }
179 
180     public void add(short[] values, int count) {
181         for (int i = 0; i < values.length; i++) {
182             for (int j = 0; j < count; j++) {
183                 add(values[i]);
184             }
185         }
186     }
187 
188     public void add(String value) {
189         _query.setString(_pos++, value);
190     }
191 
192     public void add(String[] values) {
193         add(values, _DEFAULT_ARRAY_COUNT);
194     }
195 
196     public void add(String[] values, int count) {
197         for (int i = 0; i < values.length; i++) {
198             for (int j = 0; j < count; j++) {
199                 add(values[i]);
200             }
201         }
202     }
203 
204     public void add(Timestamp value) {
205         _query.setTimestamp(_pos++, value);
206     }
207 
208     public int getPos() {
209         return _pos;
210     }
211 
212     private void addNull() {
213         _query.setSerializable(_pos++, null);
214     }
215 
216     private QueryPos(Query query) {
217         _query = query;
218     }
219 
220     private static final int _DEFAULT_ARRAY_COUNT = 1;
221 
222     private int _pos;
223     private Query _query;
224 
225 }