Clover coverage report - brownies library - 1.0-beta-1 Coverage timestamp: 月 8 16 2004 17:14:42 GMT+09:00 FRAMES NO FRAMES |
file stats: | LOC: | 275 |  | Methods: | 22
| NCLOC: | 98 |  | Classes: | 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
Source file | Conditionals | Statements | Methods | TOTAL
Conditions.java | 0% | 28.9% | 31.8% | 23.7% |

1 |  |
     /*
2 |  |
      * Joey and its relative products are published under the terms
3 |  |
      * of the Apache Software License.
4 |  |
      */
5 |  |
     /*
6 |  |
      * Created on 2004/02/21
7 |  |
      */
8 |  |
     package org.asyrinx.brownie.core.sql;
9 |  |
10 |  |
     import java.text.DateFormat;
11 |  |
     import java.text.SimpleDateFormat;
12 |  |
     import java.util.Date;
13 |  |
14 |  |
     import org.asyrinx.brownie.core.lang.StringUtils;
15 |  |
     import org.asyrinx.brownie.core.util.DateRange;
16 |  |
     import org.asyrinx.brownie.core.util.DateUtils;
17 |  |
18 |  |
     /**
19 |  |
      * @author akima
20 |  |
      */
21 |  |
     public class Conditions extends Elements {
22 |  |
23 |  |
         /**
24 |  |
          *
25 |  |
          */
26 | 8 |
         public Conditions(IBuilder builder) {
27 | 8 |
             super(builder);
28 |  |
         }
29 |  |
30 |  |
         private Operator connection = Operator.AND;
31 |  |
32 |  |
         /**
33 |  |
          * @return
34 |  |
          */
35 | 5 |
         public Operator getConnection() {
36 | 5 |
             return connection;
37 |  |
         }
38 |  |
39 |  |
         /**
40 |  |
          * @param operator
41 |  |
          */
42 | 2 |
         public void setConnection(Operator operator) {
43 | 2 |
             connection = operator;
44 |  |
         }
45 |  |
46 |  |
         /**
47 |  |
          * 条件群を追加します。
48 |  |
          */
49 | 0 |
         public Conditions addNewCondition() {
50 | 0 |
             return addNewCondition(this.getConnection());
51 |  |
         }
52 |  |
53 |  |
         /**
54 |  |
          * 条件群を追加します。
55 |  |
          */
56 | 2 |
         public Conditions addNewCondition(Operator conn) {
57 | 2 |
             final Conditions result = new Conditions(this.builder);
58 | 2 |
             result.setConnection(conn);
59 | 2 |
             super.addImpl(result);
60 | 2 |
             return result;
61 |  |
         }
62 |  |
63 |  |
         /**
64 |  |
          * 条件文を追加します。
65 |  |
          *
66 |  |
          * @param condition
67 |  |
          */
68 | 0 |
         public Conditions add(String condition) {
69 | 0 |
             super.addImpl(condition);
70 | 0 |
             return this;
71 |  |
         }
72 |  |
73 |  |
         /**
74 |  |
          * 文字列が同じかどうかという条件を追加します。 <br>
75 |  |
          * 指定された比較する値は、シングルクォートで囲まれます。
76 |  |
          *
77 |  |
          * @param field
78 |  |
          *            比較されるフィールド名
79 |  |
          * @param value
80 |  |
          *            比較する値
81 |  |
          */
82 | 0 |
         public Conditions addAsString(String field, String value) {
83 | 0 |
             return add(field, value, Operator.EQUAL);
84 |  |
         }
85 |  |
86 |  |
         /**
87 |  |
          * 文字列比較の条件を追加します。 <br>
88 |  |
          * 指定された比較する値は、シングルクォートで囲まれます。
89 |  |
          *
90 |  |
          * @param field
91 |  |
          *            比較されるフィールド名
92 |  |
          * @param value
93 |  |
          *            比較する値
94 |  |
          * @param operater
95 |  |
          *            比較演算子
96 |  |
          */
97 | 0 |
         public Conditions add(String field, String value, Operator operater) {
98 | 0 |
             return add(field, value, operater, true);
99 |  |
         }
100 |  |
101 |  |
         /**
102 |  |
          * 文字列比較の条件を追加します。 <br>
103 |  |
          *
104 |  |
          * @param field
105 |  |
          *            比較されるフィールド名
106 |  |
          * @param value
107 |  |
          *            比較する値
108 |  |
          * @param operater
109 |  |
          *            比較演算子
110 |  |
          * @param quote
111 |  |
          *            比較する値をシングルクォートに囲むかどうか
112 |  |
          */
113 | 8 |
         public Conditions add(String field, String value, Operator operater,
114 |  |
                 boolean quote) {
115 | 8 |
             super.addImpl(builder.buildCondition(field, value, operater, quote));
116 | 8 |
             return this;
117 |  |
         }
118 |  |
119 |  |
         /**
120 |  |
          * フィールドの整数（int）として同じかどうかという条件を追加します。
121 |  |
          *
122 |  |
          * @param field
123 |  |
          *            比較されるフィールド名
124 |  |
          * @param value
125 |  |
          *            比較する値
126 |  |
          */
127 | 8 |
         public Conditions add(String field, int value) {
128 | 8 |
             return add(field, value, Operator.EQUAL);
129 |  |
         }
130 |  |
131 |  |
         /**
132 |  |
          * フィールドの整数（int）として比較する条件を追加します。
133 |  |
          *
134 |  |
          * @param field
135 |  |
          *            比較されるフィールド名
136 |  |
          * @param value
137 |  |
          *            比較する値
138 |  |
          * @param operater
139 |  |
          *            比較演算子
140 |  |
          */
141 | 8 |
         public Conditions add(String field, int value, Operator operater) {
142 | 8 |
             return add(field, String.valueOf(value), operater, false);
143 |  |
         }
144 |  |
145 |  |
         /**
146 |  |
          * フィールドの整数（long）として同じかどうかという条件を追加します。
147 |  |
          *
148 |  |
          * @param field
149 |  |
          *            比較されるフィールド名
150 |  |
          * @param value
151 |  |
          *            比較する値
152 |  |
          */
153 | 0 |
         public Conditions add(String field, long value) {
154 | 0 |
             return add(field, value, Operator.EQUAL);
155 |  |
         }
156 |  |
157 |  |
         /**
158 |  |
          * フィールドの整数（long）として比較する条件を追加します。
159 |  |
          *
160 |  |
          * @param field
161 |  |
          *            比較されるフィールド名
162 |  |
          * @param value
163 |  |
          *            比較する値
164 |  |
          * @param operater
165 |  |
          *            比較演算子
166 |  |
          */
167 | 0 |
         public Conditions add(String field, long value, Operator operater) {
168 | 0 |
             return add(field, String.valueOf(value), operater, false);
169 |  |
         }
170 |  |
171 |  |
         private DateFormat defaultDateFormat = new SimpleDateFormat();
172 |  |
173 | 0 |
         public Conditions add(String field, Date value) {
174 | 0 |
             return add(field, value, Operator.EQUAL);
175 |  |
         }
176 |  |
177 | 0 |
         public Conditions add(String field, Date value, Operator operater) {
178 | 0 |
             return add(field, value, operater, defaultDateFormat);
179 |  |
         }
180 |  |
181 | 0 |
         public Conditions add(String field, Date value, DateFormat dateFormat) {
182 | 0 |
             return add(field, value, Operator.EQUAL, dateFormat);
183 |  |
         }
184 |  |
185 | 0 |
         public Conditions add(String field, Date value, Operator operater,
186 |  |
                 DateFormat dateFormat) {
187 | 0 |
             return add(field, dateFormat.format(value), operater);
188 |  |
         }
189 |  |
190 |  |
         /**
191 |  |
          * 日付の期間を条件として追加する。 <br>
192 |  |
          * もしも期間の開始/終了のどちらかがnullあるいはヌル文字列ならば、 指定していないものとして扱われます。
193 |  |
          *
194 |  |
          * @param field
195 |  |
          *            条件の対象となるフィールド名
196 |  |
          * @param period
197 |  |
          *            期間を表すオブジェクト
198 |  |
          */
199 | 0 |
         public Conditions addPeriod(String field, DateRange period) {
200 | 0 |
             return addPeriod(field, period.getFrom(), period.getTo());
201 |  |
         }
202 |  |
203 |  |
         /**
204 |  |
          * 日付の期間を条件として追加する。 <br>
205 |  |
          * もしも期間の開始/終了のどちらかがnullあるいはヌル文字列ならば、 指定していないものとして扱われます。
206 |  |
          *
207 |  |
          * @param field
208 |  |
          *            条件の対象となるフィールド名
209 |  |
          * @param period
210 |  |
          *            期間を表すオブジェクト
211 |  |
          */
212 | 0 |
         public Conditions addPeriod(String field, Date from, Date to) {
213 | 0 |
             return addPeriod(field, from, to, true);
214 |  |
         }
215 |  |
216 |  |
         /**
217 |  |
          * 日付の期間を条件として追加する。 <br>
218 |  |
          * もしも期間の開始/終了のどちらかがnullあるいはヌル文字列ならば、 指定していないものとして扱われます。
219 |  |
          *
220 |  |
          * @param field
221 |  |
          *            条件の対象となるフィールド名
222 |  |
          * @param from
223 |  |
          * @param to
224 |  |
          * @param adust
225 |  |
          */
226 | 0 |
         public Conditions addPeriod(String field, Date from, Date to, boolean adust) {
227 | 0 |
             return addPeriod(field, from, to, adust, defaultDateFormat);
228 |  |
         }
229 |  |
230 |  |
         /**
231 |  |
          * 日付の期間を条件として追加する。 <br>
232 |  |
          * もしも期間の開始/終了のどちらかがnullあるいはヌル文字列ならば、 指定していないものとして扱われます。
233 |  |
          *
234 |  |
          * @param field
235 |  |
          *            条件の対象となるフィールド名
236 |  |
          * @param from
237 |  |
          * @param to
238 |  |
          * @param adust
239 |  |
          */
240 | 0 |
         public Conditions addPeriod(String field, Date from, Date to,
241 |  |
                 boolean adust, DateFormat dateFormat) {
242 | 0 |
             if (adust) {
243 | 0 |
                 if (from != null)
244 | 0 |
                     from = DateUtils.adjustDateBegin(from);
245 | 0 |
                 if (to != null)
246 | 0 |
                     to = DateUtils.adjustDateEnd(to);
247 |  |
             }
248 | 0 |
             return addPeriod(field,
249 | 0 |
                     (from == null) ? null : dateFormat.format(from),
250 | 0 |
                     (to == null) ? null : dateFormat.format(to));
251 |  |
         }
252 |  |
253 |  |
         /**
254 |  |
          * 日付の期間を条件として追加する。 <br>
255 |  |
          * もしも期間の開始/終了のどちらかがnullあるいはヌル文字列ならば、 指定していないものとして扱われます。 <br>
256 |  |
          * adjustフラグにtrueを指定した場合、期間の開始の時刻の部分は0時0分0秒に、 期間の終了の時刻の部分はは23時59分59秒に調整されます。
257 |  |
          *
258 |  |
          * @param field
259 |  |
          *            条件の対象となるフィールド名
260 |  |
          * @param from
261 |  |
          *            期間の開始を表す文字列
262 |  |
          * @param to
263 |  |
          *            期間の終了を表す文字列
264 |  |
          */
265 | 0 |
         public Conditions addPeriod(String field, String from, String to) {
266 | 0 |
             if (StringUtils.isEmpty(field))
267 | 0 |
                 return this;
268 | 0 |
             if (!StringUtils.isEmpty(from))
269 | 0 |
                 this.add(field, from, Operator.GREATER_EQUAL);
270 | 0 |
             if (!StringUtils.isEmpty(to))
271 | 0 |
                 this.add(field, to, Operator.LESS_EQUAL);
272 | 0 |
             return this;
273 |  |
         }
274 |  |
275 |  |
     }