From 0749616a1df0f5586fdf8802db467c3f5b81f052 Mon Sep 17 00:00:00 2001 From: wenshao Date: Thu, 4 Jan 2018 09:43:59 +0800 Subject: [PATCH] SQLBetween implements SQLReplaceable. --- .../druid/sql/ast/expr/SQLBetweenExpr.java | 27 +++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLBetweenExpr.java b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLBetweenExpr.java index 01c5ac4983..eed2df5fd6 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLBetweenExpr.java +++ b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLBetweenExpr.java @@ -20,13 +20,10 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; -import com.alibaba.druid.sql.ast.SQLDataType; -import com.alibaba.druid.sql.ast.SQLExpr; -import com.alibaba.druid.sql.ast.SQLExprImpl; -import com.alibaba.druid.sql.ast.SQLObject; +import com.alibaba.druid.sql.ast.*; import com.alibaba.druid.sql.visitor.SQLASTVisitor; -public class SQLBetweenExpr extends SQLExprImpl implements Serializable { +public class SQLBetweenExpr extends SQLExprImpl implements Serializable, SQLReplaceable { private static final long serialVersionUID = 1L; public SQLExpr testExpr; @@ -171,4 +168,24 @@ public class SQLBetweenExpr extends SQLExprImpl implements Serializable { public SQLDataType computeDataType() { return SQLBooleanExpr.DEFAULT_DATA_TYPE; } + + @Override + public boolean replace(SQLExpr expr, SQLExpr target) { + if (expr == testExpr) { + setTestExpr(target); + return true; + } + + if (expr == beginExpr) { + setBeginExpr(target); + return true; + } + + if (expr == endExpr) { + setEndExpr(target); + return true; + } + + return false; + } }