Clover coverage report - brownies library - 1.0-beta-1
Coverage timestamp: 月 8 16 2004 17:14:42 GMT+09:00
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%
coverage coverage
 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   
 }