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: | 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% |

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 |  |
     }