Clover coverage report - brownies library - 1.0-beta-1
Coverage timestamp: 月 8 16 2004 17:14:42 GMT+09:00
file stats: LOC: 192   Methods: 18
NCLOC: 73   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
DynamicSelectUnion.java 0% 0% 0% 0%
coverage
 1   
 /*
 2   
  * Joey and its relative products are published under the terms
 3   
  * of the Apache Software License.
 4   
  */
 5   
 package org.asyrinx.brownie.core.sql;
 6   
 
 7   
 import java.util.ArrayList;
 8   
 import java.util.Iterator;
 9   
 import java.util.List;
 10   
 
 11   
 import org.asyrinx.brownie.core.lang.StringUtils;
 12   
 
 13   
 /**
 14   
  * DynamicSQLを用いて動的にSQLを生成する場合に、 unionやunion allを使用する場合には、このクラスを使用してください。
 15   
  * 
 16   
  * @author Akima
 17   
  */
 18   
 public class DynamicSelectUnion {
 19   
 
 20   
     /**
 21   
      *  
 22   
      */
 23  0
     public DynamicSelectUnion() {
 24  0
         super();
 25   
     }
 26   
 
 27   
     /** 連結されるDynamicSQLを保持するリスト */
 28   
     final List sqlList = new ArrayList();
 29   
 
 30   
     /** 結合の種類:union */
 31   
     public static final String TYPE_UNION = "union";
 32   
 
 33   
     /** 結合の種類:union all */
 34   
     public static final String TYPE_UNION_ALL = "union all";
 35   
 
 36   
     /**
 37   
      * 結合の種類 <br>
 38   
      * TYPE_UNIONか、TYPE_UNION_ALLを使用する。
 39   
      */
 40   
     private String type = TYPE_UNION_ALL;
 41   
 
 42   
     /**
 43   
      * 結合されたSQLをバッファに出力する。
 44   
      * 
 45   
      * @param dest
 46   
      *               出力先バッファ
 47   
      */
 48  0
     public void build(StringBuffer dest) {
 49  0
         dest.append(StringUtils.join(sqlList.iterator(), " \n" + type + "\n "));
 50  0
         if ((orderByFields != null) && (!orderByFields.isEmpty())) {
 51  0
             dest.append("\n order by \n");
 52  0
             dest.append(StringUtils.join(orderByFields.iterator(), ", "));
 53   
         }
 54   
     }
 55   
 
 56   
     /**
 57   
      * 結合されたSQLをバッファに出力する。
 58   
      * 
 59   
      * @param dest
 60   
      *               出力先バッファ
 61   
      */
 62  0
     public String build() {
 63  0
         final StringBuffer result = new StringBuffer();
 64  0
         build(result);
 65  0
         return result.toString();
 66   
     }
 67   
 
 68   
     /**
 69   
      * @return @see java.lang.Object#toString()
 70   
      */
 71  0
     public String toString() {
 72  0
         return this.build();
 73   
     }
 74   
 
 75   
     /** order by句で順序を示すフィールド名を保持するリスト */
 76   
     private final List orderByFields = new ArrayList();
 77   
 
 78   
     /**
 79   
      * order by句のフィールドを追加します。
 80   
      * 
 81   
      * @param field
 82   
      */
 83  0
     public void addOrderBy(String field) {
 84  0
         orderByFields.add(field);
 85   
     }
 86   
 
 87   
     /**
 88   
      * order by句のフィールドのListを返します。
 89   
      * 
 90   
      * @return List
 91   
      */
 92  0
     public List getOrderByFields() {
 93  0
         return orderByFields;
 94   
     }
 95   
 
 96   
     /**
 97   
      * DynamicSQLを追加します。 <br>
 98   
      * 追加時に追加されるDynamicSQLのorder by句はクリアされます。ご注意ください。
 99   
      * 
 100   
      * @param sql
 101   
      * @return
 102   
      */
 103  0
     public boolean add(DynamicSelect sql) {
 104  0
         if (sql == null)
 105  0
             return false;
 106   
         //sql.getOrderByFields().clear();
 107  0
         return sqlList.add(sql);
 108   
     }
 109   
 
 110   
     /**
 111   
      *  
 112   
      */
 113  0
     public void clear() {
 114  0
         sqlList.clear();
 115   
     }
 116   
 
 117   
     /**
 118   
      * @param sql
 119   
      * @return
 120   
      */
 121  0
     public boolean contains(DynamicSelect sql) {
 122  0
         return sqlList.contains(sql);
 123   
     }
 124   
 
 125   
     /**
 126   
      * @param index
 127   
      * @return
 128   
      */
 129  0
     public DynamicSelect get(int index) {
 130  0
         return (DynamicSelect) sqlList.get(index);
 131   
     }
 132   
 
 133   
     /**
 134   
      * @param sql
 135   
      * @return
 136   
      */
 137  0
     public int indexOf(DynamicSelect sql) {
 138  0
         return sqlList.indexOf(sql);
 139   
     }
 140   
 
 141   
     /**
 142   
      * @return
 143   
      */
 144  0
     public boolean isEmpty() {
 145  0
         return sqlList.isEmpty();
 146   
     }
 147   
 
 148   
     /**
 149   
      * @return
 150   
      */
 151  0
     public Iterator iterator() {
 152  0
         return sqlList.iterator();
 153   
     }
 154   
 
 155   
     /**
 156   
      * @param index
 157   
      * @return
 158   
      */
 159  0
     public DynamicSelect remove(int index) {
 160  0
         return (DynamicSelect) sqlList.remove(index);
 161   
     }
 162   
 
 163   
     /**
 164   
      * @param sql
 165   
      * @return
 166   
      */
 167  0
     public boolean remove(DynamicSelect sql) {
 168  0
         return sqlList.remove(sql);
 169   
     }
 170   
 
 171   
     /**
 172   
      * @return
 173   
      */
 174  0
     public int size() {
 175  0
         return sqlList.size();
 176   
     }
 177   
 
 178   
     /**
 179   
      * @return
 180   
      */
 181  0
     public String getType() {
 182  0
         return type;
 183   
     }
 184   
 
 185   
     /**
 186   
      * @param string
 187   
      */
 188  0
     public void setType(String string) {
 189  0
         type = string;
 190   
     }
 191   
 
 192   
 }