1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
12   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
13   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
14   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
15   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
16   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
17   * SOFTWARE.
18   */
19  
20  package com.liferay.portal.kernel.dao.orm;
21  
22  import java.sql.Timestamp;
23  
24  /**
25   * <a href="QueryPos.java.html"><b><i>View Source</i></b></a>
26   *
27   * @author Brian Wing Shun Chan
28   *
29   */
30  public class QueryPos {
31  
32      public static QueryPos getInstance(Query query) {
33          return new QueryPos(query);
34      }
35  
36      public int getPos() {
37          return _pos;
38      }
39  
40      public void add(boolean value) {
41          _query.setBoolean(_pos++, value);
42      }
43  
44      public void add(Boolean value) {
45          if (value != null) {
46              _query.setBoolean(_pos++, value.booleanValue());
47          }
48          else {
49              addNull();
50          }
51      }
52  
53      public void add(double value) {
54          _query.setDouble(_pos++, value);
55      }
56  
57      public void add(Double value) {
58          if (value != null) {
59              _query.setDouble(_pos++, value.doubleValue());
60          }
61          else {
62              addNull();
63          }
64      }
65  
66      public void add(float value) {
67          _query.setFloat(_pos++, value);
68      }
69  
70      public void add(Float value) {
71          if (value != null) {
72              _query.setFloat(_pos++, value.intValue());
73          }
74          else {
75              addNull();
76          }
77      }
78  
79      public void add(int value) {
80          _query.setInteger(_pos++, value);
81      }
82  
83      public void add(Integer value) {
84          if (value != null) {
85              _query.setInteger(_pos++, value.intValue());
86          }
87          else {
88              addNull();
89          }
90      }
91  
92      public void add(long value) {
93          _query.setLong(_pos++, value);
94      }
95  
96      public void add(Long value) {
97          if (value != null) {
98              _query.setLong(_pos++, value.longValue());
99          }
100         else {
101             addNull();
102         }
103     }
104 
105     public void add(short value) {
106         _query.setShort(_pos++, value);
107     }
108 
109     public void add(Short value) {
110         if (value != null) {
111             _query.setShort(_pos++, value.shortValue());
112         }
113         else {
114             addNull();
115         }
116     }
117 
118     public void add(String value) {
119         _query.setString(_pos++, value);
120     }
121 
122     public void add(String[] values) {
123         add(values, 1);
124     }
125 
126     public void add(String[] values, int count) {
127         for (int i = 0; i < values.length; i++) {
128             for (int j = 0; j < count; j++) {
129                 add(values[i]);
130             }
131         }
132     }
133 
134     public void add(Timestamp value) {
135         _query.setTimestamp(_pos++, value);
136     }
137 
138     private QueryPos(Query query) {
139         _query = query;
140     }
141 
142     private void addNull() {
143         _query.setSerializable(_pos++, null);
144     }
145 
146     private Query _query;
147     private int _pos;
148 
149 }