1
+ /*
2
+ * Copyright 1999-2019 Seata.io Group.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ package io .seata .sqlparser .antlr .mysql ;
17
+
18
+ import io .seata .sqlparser .ParametersHolder ;
19
+ import io .seata .sqlparser .SQLDeleteRecognizer ;
20
+ import io .seata .sqlparser .SQLType ;
21
+ import io .seata .sqlparser .antlr .mysql .listener .DeleteSpecificationSqlListener ;
22
+ import io .seata .sqlparser .antlr .mysql .parser .MySqlLexer ;
23
+ import io .seata .sqlparser .antlr .mysql .parser .MySqlParser ;
24
+ import io .seata .sqlparser .antlr .mysql .stream .ANTLRNoCaseStringStream ;
25
+ import org .antlr .v4 .runtime .CommonTokenStream ;
26
+ import org .antlr .v4 .runtime .tree .ParseTreeWalker ;
27
+
28
+ import java .util .ArrayList ;
29
+ import java .util .List ;
30
+
31
+ /**
32
+ * AntlrMySQLDeleteRecognizer
33
+ *
34
+ * @author zhihou
35
+ */
36
+ public class AntlrMySQLDeleteRecognizer implements SQLDeleteRecognizer {
37
+
38
+ private MySqlContext sqlContext ;
39
+
40
+ public AntlrMySQLDeleteRecognizer (String sql ) {
41
+ MySqlLexer mySqlLexer = new MySqlLexer (new ANTLRNoCaseStringStream (sql ));
42
+ CommonTokenStream commonTokenStream = new CommonTokenStream (mySqlLexer );
43
+ MySqlParser parser2 = new MySqlParser (commonTokenStream );
44
+ MySqlParser .RootContext root = parser2 .root ();
45
+ ParseTreeWalker walker2 = new ParseTreeWalker ();
46
+ sqlContext = new MySqlContext ();
47
+ sqlContext .setOriginalSQL (sql );
48
+ walker2 .walk (new DeleteSpecificationSqlListener (sqlContext ), root );
49
+ }
50
+
51
+
52
+ @ Override
53
+ public String getWhereCondition (ParametersHolder parametersHolder , ArrayList <List <Object >> paramAppenderList ) {
54
+ return sqlContext .getWhereCondition ();
55
+ }
56
+
57
+ @ Override
58
+ public String getWhereCondition () {
59
+ return sqlContext .getWhereCondition ();
60
+ }
61
+
62
+ @ Override
63
+ public SQLType getSQLType () {
64
+ return SQLType .DELETE ;
65
+ }
66
+
67
+ @ Override
68
+ public String getTableAlias () {
69
+ return sqlContext .tableAlias ;
70
+ }
71
+
72
+ @ Override
73
+ public String getTableName () {
74
+ return sqlContext .tableName ;
75
+ }
76
+
77
+ @ Override
78
+ public String getOriginalSQL () {
79
+
80
+ return sqlContext .getOriginalSQL ();
81
+ }
82
+ }
0 commit comments