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(double value) {
56          _query.setDouble(_pos++, value);
57      }
58  
59      public void add(Double value) {
60          if (value != null) {
61              _query.setDouble(_pos++, value.doubleValue());
62          }
63          else {
64              addNull();
65          }
66      }
67  
68      public void add(double[] values) {
69          add(values, _DEFAULT_ARRAY_COUNT);
70      }
71  
72      public void add(double[] values, int count) {
73          for (int i = 0; i < values.length; i++) {
74              for (int j = 0; j < count; j++) {
75                  add(values[i]);
76              }
77          }
78      }
79  
80      public void add(float value) {
81          _query.setFloat(_pos++, value);
82      }
83  
84      public void add(Float value) {
85          if (value != null) {
86              _query.setFloat(_pos++, value.intValue());
87          }
88          else {
89              addNull();
90          }
91      }
92  
93      public void add(float[] values) {
94          add(values, _DEFAULT_ARRAY_COUNT);
95      }
96  
97      public void add(float[] values, int count) {
98          for (int i = 0; i < values.length; i++) {
99              for (int j = 0; j < count; j++) {
100                 add(values[i]);
101             }
102         }
103     }
104 
105     public void add(int value) {
106         _query.setInteger(_pos++, value);
107     }
108 
109     public void add(int[] values) {
110         add(values, _DEFAULT_ARRAY_COUNT);
111     }
112 
113     public void add(int[] values, int count) {
114         for (int i = 0; i < values.length; i++) {
115             for (int j = 0; j < count; j++) {
116                 add(values[i]);
117             }
118         }
119     }
120 
121     public void add(Integer value) {
122         if (value != null) {
123             _query.setInteger(_pos++, value.intValue());
124         }
125         else {
126             addNull();
127         }
128     }
129 
130     public void add(long value) {
131         _query.setLong(_pos++, value);
132     }
133 
134     public void add(Long value) {
135         if (value != null) {
136             _query.setLong(_pos++, value.longValue());
137         }
138         else {
139             addNull();
140         }
141     }
142 
143     public void add(long[] values) {
144         add(values, _DEFAULT_ARRAY_COUNT);
145     }
146 
147     public void add(long[] values, int count) {
148         for (int i = 0; i < values.length; i++) {
149             for (int j = 0; j < count; j++) {
150                 add(values[i]);
151             }
152         }
153     }
154 
155     public void add(short value) {
156         _query.setShort(_pos++, value);
157     }
158 
159     public void add(Short value) {
160         if (value != null) {
161             _query.setShort(_pos++, value.shortValue());
162         }
163         else {
164             addNull();
165         }
166     }
167 
168     public void add(short[] values) {
169         add(values, _DEFAULT_ARRAY_COUNT);
170     }
171 
172     public void add(short[] values, int count) {
173         for (int i = 0; i < values.length; i++) {
174             for (int j = 0; j < count; j++) {
175                 add(values[i]);
176             }
177         }
178     }
179 
180     public void add(String value) {
181         _query.setString(_pos++, value);
182     }
183 
184     public void add(String[] values) {
185         add(values, _DEFAULT_ARRAY_COUNT);
186     }
187 
188     public void add(String[] values, int count) {
189         for (int i = 0; i < values.length; i++) {
190             for (int j = 0; j < count; j++) {
191                 add(values[i]);
192             }
193         }
194     }
195 
196     public void add(Timestamp value) {
197         _query.setTimestamp(_pos++, value);
198     }
199 
200     public int getPos() {
201         return _pos;
202     }
203 
204     private void addNull() {
205         _query.setSerializable(_pos++, null);
206     }
207 
208     private QueryPos(Query query) {
209         _query = query;
210     }
211 
212     private static final int _DEFAULT_ARRAY_COUNT = 1;
213 
214     private int _pos;
215     private Query _query;
216 
217 }