• R/O
  • SSH
  • HTTPS

amateras: 提交


Commit MetaInfo

修订版614 (tree)
时间2011-11-12 09:02:53
作者daisuke_m

Log Message

avoid numeric constant fields.
Instead using enum.

更改概述

差异

--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManagerImpl.java (revision 613)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManagerImpl.java (revision 614)
@@ -362,6 +362,14 @@
362362 }
363363 return result.intValue();
364364 }
365+
366+ public int getCountBySql(String sql) {
367+ return getCountBySql(sql, new Object[0]);
368+ }
369+
370+ public int getCountBySql(String sql, Object... params) {
371+ return getSingleResultBySql(Integer.class, sql, params);
372+ }
365373
366374 // @Override
367375 public <T, R> R iterate(Class<T> clazz, IterationCallback<T, R> callback, String sqlPath) {
--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlTokenizerImpl.java (revision 613)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlTokenizerImpl.java (revision 614)
@@ -32,9 +32,9 @@
3232
3333 private String token;
3434
35- private int tokenType = SQL;
35+ private TokenType tokenType = TokenType.SQL;
3636
37- private int nextTokenType = SQL;
37+ private TokenType nextTokenType = TokenType.SQL;
3838
3939 private int bindVariableNum = 0;
4040
@@ -73,21 +73,21 @@
7373 }
7474
7575 // @Override
76- public int getTokenType() {
76+ public TokenType getTokenType() {
7777 return tokenType;
7878 }
7979
8080 // @Override
81- public int getNextTokenType() {
81+ public TokenType getNextTokenType() {
8282 return nextTokenType;
8383 }
8484
8585 // @Override
86- public int next() {
86+ public TokenType next() {
8787 if (position >= sql.length()) {
8888 token = null;
89- tokenType = EOF;
90- nextTokenType = EOF;
89+ tokenType = TokenType.EOF;
90+ nextTokenType = TokenType.EOF;
9191 return tokenType;
9292 }
9393 switch (nextTokenType) {
@@ -135,21 +135,21 @@
135135 elseCommentStartPos, bindVariableStartPos);
136136 if (nextStartPos < 0) {
137137 token = sql.substring(position);
138- nextTokenType = EOF;
138+ nextTokenType = TokenType.EOF;
139139 position = sql.length();
140- tokenType = SQL;
140+ tokenType = TokenType.SQL;
141141 } else {
142142 token = sql.substring(position, nextStartPos);
143- tokenType = SQL;
143+ tokenType = TokenType.SQL;
144144 boolean needNext = nextStartPos == position;
145145 if (nextStartPos == commentStartPos) {
146- nextTokenType = COMMENT;
146+ nextTokenType = TokenType.COMMENT;
147147 position = commentStartPos + 2;
148148 } else if (nextStartPos == elseCommentStartPos) {
149- nextTokenType = ELSE;
149+ nextTokenType = TokenType.ELSE;
150150 position = elseCommentStartPos + elseCommentLength;
151151 } else if (nextStartPos == bindVariableStartPos) {
152- nextTokenType = BIND_VARIABLE;
152+ nextTokenType = TokenType.BIND_VARIABLE;
153153 position = bindVariableStartPos;
154154 }
155155 if (needNext) {
@@ -201,9 +201,9 @@
201201 "%s is not closed with %s.", sql.substring(position), "*/"));
202202 }
203203 token = sql.substring(position, commentEndPos);
204- nextTokenType = SQL;
204+ nextTokenType = TokenType.SQL;
205205 position = commentEndPos + 2;
206- tokenType = COMMENT;
206+ tokenType = TokenType.COMMENT;
207207 }
208208
209209 /**
@@ -211,9 +211,9 @@
211211 */
212212 protected void parseBindVariable() {
213213 token = nextBindVariableName();
214- nextTokenType = SQL;
214+ nextTokenType = TokenType.SQL;
215215 position += 1;
216- tokenType = BIND_VARIABLE;
216+ tokenType = TokenType.BIND_VARIABLE;
217217 }
218218
219219 /**
@@ -221,8 +221,8 @@
221221 */
222222 protected void parseElse() {
223223 token = null;
224- nextTokenType = SQL;
225- tokenType = ELSE;
224+ nextTokenType = TokenType.SQL;
225+ tokenType = TokenType.ELSE;
226226 }
227227
228228 /**
@@ -230,8 +230,8 @@
230230 */
231231 protected void parseEof() {
232232 token = null;
233- tokenType = EOF;
234- nextTokenType = EOF;
233+ tokenType = TokenType.EOF;
234+ nextTokenType = TokenType.EOF;
235235 }
236236
237237 /**
@@ -275,8 +275,8 @@
275275 }
276276 }
277277 token = sql.substring(position, index);
278- tokenType = SQL;
279- nextTokenType = SQL;
278+ tokenType = TokenType.SQL;
279+ nextTokenType = TokenType.SQL;
280280 position = index;
281281 return token;
282282 }
--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlTokenizer.java (revision 613)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlTokenizer.java (revision 614)
@@ -25,27 +25,42 @@
2525
2626 /**
2727 * SQL
28+ *
29+ * @deprecated use {@link TokenType#SQL}
2830 */
31+ @Deprecated
2932 int SQL = 1;
3033
3134 /**
3235 * COMMENT
36+ *
37+ * @deprecated use {@link TokenType#COMMENT}
3338 */
39+ @Deprecated
3440 int COMMENT = 2;
3541
3642 /**
3743 * ELSE
44+ *
45+ * @deprecated use {@link TokenType#ELSE}
3846 */
47+ @Deprecated
3948 int ELSE = 3;
4049
4150 /**
4251 * BIND_VARIABLE
52+ *
53+ * @deprecated use {@link TokenType#BIND_VARIABLE}
4354 */
55+ @Deprecated
4456 int BIND_VARIABLE = 4;
4557
4658 /**
4759 * EOF
60+ *
61+ * @deprecated use {@link TokenType#EOF}
4862 */
63+ @Deprecated
4964 int EOF = 99;
5065
5166 /**
@@ -88,7 +103,7 @@
88103 *
89104 * @return
90105 */
91- int getTokenType();
106+ TokenType getTokenType();
92107
93108 /**
94109 * 次のトークン種別を返します。
@@ -95,7 +110,7 @@
95110 *
96111 * @return
97112 */
98- int getNextTokenType();
113+ TokenType getNextTokenType();
99114
100115 /**
101116 * 次のトークンに進みます。
@@ -102,7 +117,7 @@
102117 *
103118 * @return
104119 */
105- int next();
120+ TokenType next();
106121
107122 /**
108123 * トークンをスキップします。
@@ -117,4 +132,16 @@
117132 * @return
118133 */
119134 String skipWhitespace();
135+
136+ public enum TokenType {
137+ SQL,
138+
139+ COMMENT,
140+
141+ ELSE,
142+
143+ BIND_VARIABLE,
144+
145+ EOF
146+ }
120147 }
\ No newline at end of file
--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlParserImpl.java (revision 613)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/parser/SqlParserImpl.java (revision 614)
@@ -18,6 +18,7 @@
1818 import java.util.Stack;
1919
2020 import jp.sf.amateras.mirage.exception.TwoWaySQLException;
21+import jp.sf.amateras.mirage.parser.SqlTokenizer.TokenType;
2122 import jp.sf.amateras.mirage.util.StringUtil;
2223
2324 /**
@@ -48,7 +49,7 @@
4849 // @Override
4950 public Node parse() {
5051 push(new ContainerNode());
51- while (SqlTokenizer.EOF != tokenizer.next()) {
52+ while (TokenType.EOF != tokenizer.next()) {
5253 parseToken();
5354 }
5455 return pop();
@@ -59,16 +60,16 @@
5960 */
6061 protected void parseToken() {
6162 switch (tokenizer.getTokenType()) {
62- case SqlTokenizer.SQL:
63+ case SQL:
6364 parseSql();
6465 break;
65- case SqlTokenizer.COMMENT:
66+ case COMMENT:
6667 parseComment();
6768 break;
68- case SqlTokenizer.ELSE:
69+ case ELSE:
6970 parseElse();
7071 break;
71- case SqlTokenizer.BIND_VARIABLE:
72+ case BIND_VARIABLE:
7273 parseBindVariable();
7374 break;
7475 }
@@ -155,8 +156,8 @@
155156 * ENDを解析します。
156157 */
157158 protected void parseEnd() {
158- while (SqlTokenizer.EOF != tokenizer.next()) {
159- if (tokenizer.getTokenType() == SqlTokenizer.COMMENT
159+ while (TokenType.EOF != tokenizer.next()) {
160+ if (tokenizer.getTokenType() == TokenType.COMMENT
160161 && isEndComment(tokenizer.getToken())) {
161162
162163 pop();
--- mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManager.java (revision 613)
+++ mirage/trunk/mirage/src/main/java/jp/sf/amateras/mirage/SqlManager.java (revision 614)
@@ -69,7 +69,11 @@
6969 * @return the row count
7070 */
7171 public int getCount(String sqlPath, Object param);
72+
73+ public int getCountBySql(String sql);
7274
75+ public int getCountBySql(String sql, Object... params);
76+
7377 public <T> List<T> getResultList(Class<T> clazz, String sqlPath);
7478
7579 public <T> List<T> getResultList(Class<T> clazz, String sqlPath, Object param);
Show on old repository browser