From 91e1592d9dcde32312f313a0147f1cd582a76b83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Sun, 3 Oct 2021 00:59:01 +0800 Subject: [PATCH] refactor parser --- .../sql/ast/statement/SQLSelectQuery.java | 2 +- .../sql/ast/statement/SQLSelectQueryBase.java | 19 +++++++++++++++++++ .../ast/statement/SQLSelectQueryBlock.java | 13 +------------ .../sql/ast/statement/SQLUnionQuery.java | 13 +------------ .../sql/ast/statement/SQLValuesQuery.java | 14 +------------- 5 files changed, 23 insertions(+), 38 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBase.java diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQuery.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQuery.java index 1841bc013e..cab77ce321 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQuery.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQuery.java @@ -19,7 +19,7 @@ import com.alibaba.druid.sql.ast.SQLObject; public interface SQLSelectQuery extends SQLObject { boolean isParenthesized(); - void setParenthesized(boolean paren); + void setParenthesized(boolean parenthesized); SQLSelectQuery clone(); } diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBase.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBase.java new file mode 100644 index 0000000000..91d5e63776 --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBase.java @@ -0,0 +1,19 @@ +package com.alibaba.druid.sql.ast.statement; + +import com.alibaba.druid.sql.ast.SQLObjectImpl; + +public abstract class SQLSelectQueryBase extends SQLObjectImpl implements SQLSelectQuery { + protected boolean parenthesized; + + @Override + public boolean isParenthesized() { + return parenthesized; + } + + @Override + public void setParenthesized(boolean parenthesized) { + this.parenthesized = parenthesized; + } + + public abstract SQLSelectQueryBase clone(); +} diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock.java index e4e6b46e70..8dcb8fa2c3 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLSelectQueryBlock.java @@ -29,7 +29,7 @@ import java.util.Collections; import java.util.List; import java.util.TreeSet; -public class SQLSelectQueryBlock extends SQLObjectImpl implements SQLSelectQuery, SQLReplaceable, SQLDbTypedObject { +public class SQLSelectQueryBlock extends SQLSelectQueryBase implements SQLReplaceable, SQLDbTypedObject { protected int distionOption; protected final List selectList = new ArrayList(); @@ -47,7 +47,6 @@ public class SQLSelectQueryBlock extends SQLObjectImpl implements SQLSelectQuery protected SQLSelectGroupByClause groupBy; protected List windows; protected SQLOrderBy orderBy; - protected boolean parenthesized = false; protected boolean forUpdate = false; protected boolean noWait = false; protected boolean skipLocked = false; @@ -1004,16 +1003,6 @@ public class SQLSelectQueryBlock extends SQLObjectImpl implements SQLSelectQuery } } - @Override - public boolean isParenthesized() { - return parenthesized; - } - - @Override - public void setParenthesized(boolean paren) { - this.parenthesized = paren; - } - public SQLTableSource findTableSource(String alias) { if (from == null) { return null; diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnionQuery.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnionQuery.java index 0a7c026175..5445c9c0ab 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnionQuery.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLUnionQuery.java @@ -27,10 +27,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -public class SQLUnionQuery extends SQLObjectImpl implements SQLSelectQuery, SQLDbTypedObject { - - private boolean parenthesized = false; - +public class SQLUnionQuery extends SQLSelectQueryBase implements SQLDbTypedObject { private List relations = new ArrayList(); private SQLUnionOperator operator = SQLUnionOperator.UNION; private SQLOrderBy orderBy; @@ -168,14 +165,6 @@ public class SQLUnionQuery extends SQLObjectImpl implements SQLSelectQuery, SQLD this.limit = limit; } - public boolean isParenthesized() { - return parenthesized; - } - - public void setParenthesized(boolean paren) { - this.parenthesized = paren; - } - public SQLUnionQuery clone() { SQLUnionQuery x = new SQLUnionQuery(); diff --git a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLValuesQuery.java b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLValuesQuery.java index c477e3ff4c..8339493214 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/statement/SQLValuesQuery.java +++ b/src/main/java/com/alibaba/druid/sql/ast/statement/SQLValuesQuery.java @@ -23,9 +23,7 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor; import java.util.ArrayList; import java.util.List; -public class SQLValuesQuery extends SQLObjectImpl implements SQLSelectQuery { - private boolean parenthesized = false; - +public class SQLValuesQuery extends SQLSelectQueryBase { private List values = new ArrayList(); public List getValues() { @@ -45,16 +43,6 @@ public class SQLValuesQuery extends SQLObjectImpl implements SQLSelectQuery { visitor.endVisit(this); } - @Override - public boolean isParenthesized() { - return parenthesized; - } - - @Override - public void setParenthesized(boolean paren) { - this.parenthesized = paren; - } - public SQLValuesQuery clone() { SQLValuesQuery x = new SQLValuesQuery(); x.parenthesized = parenthesized;