From d3a2ac1c683eaf5b358689e9bb7d5f5fa4fd1dae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Thu, 22 Mar 2012 18:55:08 +0800 Subject: [PATCH] refactor --- .../mysql/visitor/MySqlExportParameterVisitor.java | 5 +++++ .../oracle/visitor/OracleExportParameterVisitor.java | 5 +++++ .../visitor/MSSQLServerExportParameterVisitor.java | 5 +++++ .../java/com/alibaba/druid/wall/WallProvider.java | 3 +++ .../alibaba/druid/wall/spi/MySqlWallProvider.java | 7 +++++++ .../alibaba/druid/wall/spi/OracleWallProvider.java | 6 ++++++ .../alibaba/druid/wall/spi/SQLServerProvider.java | 12 ++++++++---- 7 files changed, 39 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlExportParameterVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlExportParameterVisitor.java index b9d67df5a7..63d4b64737 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlExportParameterVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlExportParameterVisitor.java @@ -1,5 +1,6 @@ package com.alibaba.druid.sql.dialect.mysql.visitor; +import java.util.ArrayList; import java.util.List; import com.alibaba.druid.mapping.spi.ExportParameterVisitorUtils; @@ -16,6 +17,10 @@ import com.alibaba.druid.sql.visitor.ExportParameterVisitor; public class MySqlExportParameterVisitor extends MySqlASTVisitorAdapter implements ExportParameterVisitor { private final List parameters; + + public MySqlExportParameterVisitor() { + this(new ArrayList()); + } public MySqlExportParameterVisitor(List parameters){ this.parameters = parameters; diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleExportParameterVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleExportParameterVisitor.java index 9934764ac1..17767990aa 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleExportParameterVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleExportParameterVisitor.java @@ -1,5 +1,6 @@ package com.alibaba.druid.sql.dialect.oracle.visitor; +import java.util.ArrayList; import java.util.List; import com.alibaba.druid.mapping.spi.ExportParameterVisitorUtils; @@ -16,6 +17,10 @@ public class OracleExportParameterVisitor extends OracleASTVIsitorAdapter implem private final List parameters; + public OracleExportParameterVisitor() { + this(new ArrayList()); + } + public OracleExportParameterVisitor(List parameters){ this.parameters = parameters; } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/visitor/MSSQLServerExportParameterVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/visitor/MSSQLServerExportParameterVisitor.java index 7f3e5b1928..d66fbeca67 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/visitor/MSSQLServerExportParameterVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/sqlserver/visitor/MSSQLServerExportParameterVisitor.java @@ -1,5 +1,6 @@ package com.alibaba.druid.sql.dialect.sqlserver.visitor; +import java.util.ArrayList; import java.util.List; import com.alibaba.druid.mapping.spi.ExportParameterVisitorUtils; @@ -15,6 +16,10 @@ import com.alibaba.druid.sql.visitor.ExportParameterVisitor; public class MSSQLServerExportParameterVisitor extends SQLServerASTVisitorAdapter implements ExportParameterVisitor { private final List parameters; + + public MSSQLServerExportParameterVisitor() { + this(new ArrayList()); + } public MSSQLServerExportParameterVisitor(List parameters){ this.parameters = parameters; diff --git a/src/main/java/com/alibaba/druid/wall/WallProvider.java b/src/main/java/com/alibaba/druid/wall/WallProvider.java index dff31e7b9d..1de4db4049 100644 --- a/src/main/java/com/alibaba/druid/wall/WallProvider.java +++ b/src/main/java/com/alibaba/druid/wall/WallProvider.java @@ -13,6 +13,7 @@ import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.parser.ParserException; import com.alibaba.druid.sql.parser.SQLStatementParser; import com.alibaba.druid.sql.parser.Token; +import com.alibaba.druid.sql.visitor.ExportParameterVisitor; import com.alibaba.druid.wall.violation.IllegalSQLObjectViolation; import com.alibaba.druid.wall.violation.SyntaxErrorViolation; @@ -95,6 +96,8 @@ public abstract class WallProvider { public abstract SQLStatementParser createParser(String sql); public abstract WallVisitor createWallVisitor(); + + public abstract ExportParameterVisitor createExportParameterVisitor(); public boolean checkValid(String sql) { return check(sql).size() == 0; diff --git a/src/main/java/com/alibaba/druid/wall/spi/MySqlWallProvider.java b/src/main/java/com/alibaba/druid/wall/spi/MySqlWallProvider.java index 7ab5292964..d5abdec753 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/MySqlWallProvider.java +++ b/src/main/java/com/alibaba/druid/wall/spi/MySqlWallProvider.java @@ -1,7 +1,9 @@ package com.alibaba.druid.wall.spi; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; +import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlExportParameterVisitor; import com.alibaba.druid.sql.parser.SQLStatementParser; +import com.alibaba.druid.sql.visitor.ExportParameterVisitor; import com.alibaba.druid.wall.WallConfig; import com.alibaba.druid.wall.WallProvider; import com.alibaba.druid.wall.WallVisitor; @@ -28,4 +30,9 @@ public class MySqlWallProvider extends WallProvider { return new MySqlWallVisitor(config); } + @Override + public ExportParameterVisitor createExportParameterVisitor() { + return new MySqlExportParameterVisitor(); + } + } diff --git a/src/main/java/com/alibaba/druid/wall/spi/OracleWallProvider.java b/src/main/java/com/alibaba/druid/wall/spi/OracleWallProvider.java index 9b827a2fb4..d41f972b9e 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/OracleWallProvider.java +++ b/src/main/java/com/alibaba/druid/wall/spi/OracleWallProvider.java @@ -1,7 +1,9 @@ package com.alibaba.druid.wall.spi; import com.alibaba.druid.sql.dialect.oracle.parser.OracleStatementParser; +import com.alibaba.druid.sql.dialect.oracle.visitor.OracleExportParameterVisitor; import com.alibaba.druid.sql.parser.SQLStatementParser; +import com.alibaba.druid.sql.visitor.ExportParameterVisitor; import com.alibaba.druid.wall.WallConfig; import com.alibaba.druid.wall.WallProvider; import com.alibaba.druid.wall.WallVisitor; @@ -28,4 +30,8 @@ public class OracleWallProvider extends WallProvider { return new OracleWallVisitor(config); } + @Override + public ExportParameterVisitor createExportParameterVisitor() { + return new OracleExportParameterVisitor(); + } } diff --git a/src/main/java/com/alibaba/druid/wall/spi/SQLServerProvider.java b/src/main/java/com/alibaba/druid/wall/spi/SQLServerProvider.java index 18cef9e7d2..7188dc6cb8 100644 --- a/src/main/java/com/alibaba/druid/wall/spi/SQLServerProvider.java +++ b/src/main/java/com/alibaba/druid/wall/spi/SQLServerProvider.java @@ -1,14 +1,16 @@ package com.alibaba.druid.wall.spi; import com.alibaba.druid.sql.dialect.sqlserver.parser.SQLServerStatementParser; +import com.alibaba.druid.sql.dialect.sqlserver.visitor.MSSQLServerExportParameterVisitor; import com.alibaba.druid.sql.parser.SQLStatementParser; +import com.alibaba.druid.sql.visitor.ExportParameterVisitor; import com.alibaba.druid.wall.WallConfig; import com.alibaba.druid.wall.WallProvider; import com.alibaba.druid.wall.WallVisitor; /** * SQLServerProvider - * + * * @author RaymondXiu * @version 1.0, 2012-3-17 * @see @@ -20,11 +22,10 @@ public class SQLServerProvider extends WallProvider { /** * @param config */ - public SQLServerProvider() { + public SQLServerProvider(){ this(new WallConfig(DEFAULT_CONFIG_DIR)); } - public SQLServerProvider(WallConfig config){ super(config); } @@ -38,6 +39,9 @@ public class SQLServerProvider extends WallProvider { public WallVisitor createWallVisitor() { return new SQLServerWallVisitor(config); } - + @Override + public ExportParameterVisitor createExportParameterVisitor() { + return new MSSQLServerExportParameterVisitor(); + } }