クラス SqlParser
- java.lang.Object
-
- com.github.mygreen.splate.parser.SqlParser
-
public class SqlParser extends Object
SQLを解析してNode
のツリーにするクラスです。- 作成者:
- higa
-
-
メソッドの概要
すべてのメソッド staticメソッド インスタンス・メソッド concreteメソッド 修飾子とタイプ メソッド 説明 protected static boolean
isBeginComment(String comment)
BEGIN コメントかどうか判定します。protected boolean
isElseMode()
ELSE
モード(ELSE句の中の)かどうかを返します。protected static boolean
isEndComment(String comment)
END コメントかどうか判定します。protected static boolean
isHintComment(String comment)
Oracle のヒントコメントかどうか判定します。protected static boolean
isIfComment(String comment)
IF コメントかどうか判定します。protected static boolean
isTargetComment(String comment)
対象とするコメントかどうかを返します。protected String
normalizeSql(String sql)
パース対象のSQLをトリムなど行い正規化します。Node
parse()
protected void
parseBegin()
BEGIN
句を解析します。protected void
parseBindVariable()
バインド変数を解析します。protected void
parseComment()
コメントを解析します。protected void
parseCommentBindVariable()
バインド変数コメントを解析します。protected void
parseElse()
ELSE
句を解析します。protected void
parseEnd()
END
句を解析します。protected void
parseIf()
IF
句を解析します。protected void
parseSql()
SQLを解析します。protected void
parseToken()
トークンを解析します。protected Node
peek()
一番上のノードを返します。protected Node
pop()
一番上のノードをポップ(スタックからも取り出す)します。protected void
push(Node node)
ノードを一番上に追加します。
-
-
-
メソッドの詳細
-
normalizeSql
protected String normalizeSql(String sql)
パース対象のSQLをトリムなど行い正規化します。- パラメータ:
sql
- パース対象のSQL- 戻り値:
- 正規化したSQL
-
parse
public Node parse()
- 戻り値:
- SQLを解析して
Node
のツリーを返します。
-
parseToken
protected void parseToken()
トークンを解析します。
-
parseSql
protected void parseSql()
SQLを解析します。
-
parseComment
protected void parseComment()
コメントを解析します。
-
parseIf
protected void parseIf()
IF
句を解析します。
-
parseBegin
protected void parseBegin()
BEGIN
句を解析します。
-
parseEnd
protected void parseEnd()
END
句を解析します。
-
parseElse
protected void parseElse()
ELSE
句を解析します。
-
parseCommentBindVariable
protected void parseCommentBindVariable()
バインド変数コメントを解析します。
-
parseBindVariable
protected void parseBindVariable()
バインド変数を解析します。
-
pop
protected Node pop()
一番上のノードをポップ(スタックからも取り出す)します。- 戻り値:
- 一番上のノード
-
peek
protected Node peek()
一番上のノードを返します。- 戻り値:
- 一番上のノード
-
push
protected void push(Node node)
ノードを一番上に追加します。- パラメータ:
node
- ノード
-
isElseMode
protected boolean isElseMode()
ELSE
モード(ELSE句の中の)かどうかを返します。- 戻り値:
ELSE
モードのとき true を返します。
-
isTargetComment
protected static boolean isTargetComment(String comment)
対象とするコメントかどうかを返します。 バインド変数のコメントかどうかの判定に使用します。- パラメータ:
comment
- コメント- 戻り値:
- 対象とするコメントのとき true を返します。
-
isIfComment
protected static boolean isIfComment(String comment)
IF コメントかどうか判定します。- パラメータ:
comment
- コメント- 戻り値:
- IF コメントのとき true を返します。
-
isBeginComment
protected static boolean isBeginComment(String comment)
BEGIN コメントかどうか判定します。- パラメータ:
comment
- コメント- 戻り値:
- BEGIN コメントのとき true を返します。
-
isEndComment
protected static boolean isEndComment(String comment)
END コメントかどうか判定します。- パラメータ:
comment
- コメント- 戻り値:
- END コメントのとき true を返します。
-
isHintComment
protected static boolean isHintComment(String comment)
Oracle のヒントコメントかどうか判定します。- パラメータ:
comment
- コメント- 戻り値:
- Oracle のヒントコメントのとき true を返します。
-
-