1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions 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   */
33  public class QueryPos {
34  
35      public static QueryPos getInstance(Query query) {
36          return new QueryPos(query);
37      }
38  
39      public void add(boolean value) {
40          _query.setBoolean(_pos++, value);
41      }
42  
43      public void add(Boolean value) {
44          if (value != null) {
45              _query.setBoolean(_pos++, value.booleanValue());
46          }
47          else {
48              addNull();
49          }
50      }
51  
52      public void add(boolean[] values) {
53          add(values, _DEFAULT_ARRAY_COUNT);
54      }
55  
56      public void add(boolean[] values, int count) {
57          for (int i = 0; i < values.length; i++) {
58              for (int j = 0; j < count; j++) {
59                  add(values[i]);
60              }
61          }
62      }
63  
64      public void add(double value) {
65          _query.setDouble(_pos++, value);
66      }
67  
68      public void add(Double value) {
69          if (value != null) {
70              _query.setDouble(_pos++, value.doubleValue());
71          }
72          else {
73              addNull();
74          }
75      }
76  
77      public void add(double[] values) {
78          add(values, _DEFAULT_ARRAY_COUNT);
79      }
80  
81      public void add(double[] values, int count) {
82          for (int i = 0; i < values.length; i++) {
83              for (int j = 0; j < count; j++) {
84                  add(values[i]);
85              }
86          }
87      }
88  
89      public void add(float value) {
90          _query.setFloat(_pos++, value);
91      }
92  
93      public void add(Float value) {
94          if (value != null) {
95              _query.setFloat(_pos++, value.intValue());
96          }
97          else {
98              addNull();
99          }
100     }
101 
102     public void add(float[] values) {
103         add(values, _DEFAULT_ARRAY_COUNT);
104     }
105 
106     public void add(float[] values, int count) {
107         for (int i = 0; i < values.length; i++) {
108             for (int j = 0; j < count; j++) {
109                 add(values[i]);
110             }
111         }
112     }
113 
114     public void add(int value) {
115         _query.setInteger(_pos++, value);
116     }
117 
118     public void add(int[] values) {
119         add(values, _DEFAULT_ARRAY_COUNT);
120     }
121 
122     public void add(int[] values, int count) {
123         for (int i = 0; i < values.length; i++) {
124             for (int j = 0; j < count; j++) {
125                 add(values[i]);
126             }
127         }
128     }
129 
130     public void add(Integer value) {
131         if (value != null) {
132             _query.setInteger(_pos++, value.intValue());
133         }
134         else {
135             addNull();
136         }
137     }
138 
139     public void add(long value) {
140         _query.setLong(_pos++, value);
141     }
142 
143     public void add(Long value) {
144         if (value != null) {
145             _query.setLong(_pos++, value.longValue());
146         }
147         else {
148             addNull();
149         }
150     }
151 
152     public void add(long[] values) {
153         add(values, _DEFAULT_ARRAY_COUNT);
154     }
155 
156     public void add(long[] values, int count) {
157         for (int i = 0; i < values.length; i++) {
158             for (int j = 0; j < count; j++) {
159                 add(values[i]);
160             }
161         }
162     }
163 
164     public void add(short value) {
165         _query.setShort(_pos++, value);
166     }
167 
168     public void add(Short value) {
169         if (value != null) {
170             _query.setShort(_pos++, value.shortValue());
171         }
172         else {
173             addNull();
174         }
175     }
176 
177     public void add(short[] values) {
178         add(values, _DEFAULT_ARRAY_COUNT);
179     }
180 
181     public void add(short[] values, int count) {
182         for (int i = 0; i < values.length; i++) {
183             for (int j = 0; j < count; j++) {
184                 add(values[i]);
185             }
186         }
187     }
188 
189     public void add(String value) {
190         _query.setString(_pos++, value);
191     }
192 
193     public void add(String[] values) {
194         add(values, _DEFAULT_ARRAY_COUNT);
195     }
196 
197     public void add(String[] values, int count) {
198         for (int i = 0; i < values.length; i++) {
199             for (int j = 0; j < count; j++) {
200                 add(values[i]);
201             }
202         }
203     }
204 
205     public void add(Timestamp value) {
206         _query.setTimestamp(_pos++, value);
207     }
208 
209     public int getPos() {
210         return _pos;
211     }
212 
213     private void addNull() {
214         _query.setSerializable(_pos++, null);
215     }
216 
217     private QueryPos(Query query) {
218         _query = query;
219     }
220 
221     private static final int _DEFAULT_ARRAY_COUNT = 1;
222 
223     private int _pos;
224     private Query _query;
225 
226 }