From 6a493d1e3b0a3b0550f311aaf3c48ff14f2f5892 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=A9=E5=B0=91?= Date: Mon, 12 Mar 2012 13:43:54 +0800 Subject: [PATCH] refactor --- .../com/alibaba/druid/mapping/Entity.java | 46 +++++++++++++++++++ .../mapping/EntityMapingMySqlVisitor.java | 18 ++++++++ .../com/alibaba/druid/mapping/Property.java | 24 ++++++++++ .../druid/sql/ast/expr/SQLAggregateExpr.java | 12 ++--- .../mysql/visitor/MySqlMappingVisitor.java | 16 +++++++ .../oracle/ast/expr/OracleAggregateExpr.java | 7 --- .../oracle/visitor/OracleOutputVisitor.java | 2 +- .../sql/visitor/SQLASTOutputVisitor.java | 2 +- 8 files changed, 111 insertions(+), 16 deletions(-) create mode 100644 src/main/java/com/alibaba/druid/mapping/Entity.java create mode 100644 src/main/java/com/alibaba/druid/mapping/EntityMapingMySqlVisitor.java create mode 100644 src/main/java/com/alibaba/druid/mapping/Property.java create mode 100644 src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlMappingVisitor.java diff --git a/src/main/java/com/alibaba/druid/mapping/Entity.java b/src/main/java/com/alibaba/druid/mapping/Entity.java new file mode 100644 index 0000000000..6156dab3ab --- /dev/null +++ b/src/main/java/com/alibaba/druid/mapping/Entity.java @@ -0,0 +1,46 @@ +package com.alibaba.druid.mapping; + +import java.util.ArrayList; +import java.util.List; + +public class Entity { + + private String name; + private String description; + private String tableName; + + private List properties = new ArrayList(); + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public List getProperties() { + return properties; + } + + public void setProperties(List properties) { + this.properties = properties; + } + +} diff --git a/src/main/java/com/alibaba/druid/mapping/EntityMapingMySqlVisitor.java b/src/main/java/com/alibaba/druid/mapping/EntityMapingMySqlVisitor.java new file mode 100644 index 0000000000..432058adf6 --- /dev/null +++ b/src/main/java/com/alibaba/druid/mapping/EntityMapingMySqlVisitor.java @@ -0,0 +1,18 @@ +package com.alibaba.druid.mapping; + +import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitorAdapter; + +public class EntityMapingMySqlVisitor extends MySqlASTVisitorAdapter { + + private final Entity entity; + + public EntityMapingMySqlVisitor(Entity entity){ + super(); + this.entity = entity; + } + + public Entity getEntity() { + return entity; + } + +} diff --git a/src/main/java/com/alibaba/druid/mapping/Property.java b/src/main/java/com/alibaba/druid/mapping/Property.java new file mode 100644 index 0000000000..9446b5b844 --- /dev/null +++ b/src/main/java/com/alibaba/druid/mapping/Property.java @@ -0,0 +1,24 @@ +package com.alibaba.druid.mapping; + +public class Property { + + private String name; + private String dbColumnName; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDbColumnName() { + return dbColumnName; + } + + public void setDbColumnName(String dbColumnName) { + this.dbColumnName = dbColumnName; + } + +} diff --git a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLAggregateExpr.java b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLAggregateExpr.java index be02aab5e3..a840ec553f 100644 --- a/src/main/java/com/alibaba/druid/sql/ast/expr/SQLAggregateExpr.java +++ b/src/main/java/com/alibaba/druid/sql/ast/expr/SQLAggregateExpr.java @@ -26,27 +26,26 @@ import com.alibaba.druid.sql.visitor.SQLASTVisitor; public class SQLAggregateExpr extends SQLExprImpl implements Serializable { private static final long serialVersionUID = 1L; - protected SQLIdentifierExpr methodName; + protected String methodName; protected int option; protected final List arguments = new ArrayList(); public SQLAggregateExpr(String methodName){ - this.methodName = new SQLIdentifierExpr(methodName); + this.methodName = methodName; this.option = 1; } public SQLAggregateExpr(String methodName, int option){ - - this.methodName = new SQLIdentifierExpr(methodName); + this.methodName = methodName; this.option = option; } - public SQLIdentifierExpr getMethodName() { + public String getMethodName() { return this.methodName; } - public void setMethodName(SQLIdentifierExpr methodName) { + public void setMethodName(String methodName) { this.methodName = methodName; } @@ -75,7 +74,6 @@ public class SQLAggregateExpr extends SQLExprImpl implements Serializable { @Override protected void accept0(SQLASTVisitor visitor) { if (visitor.visit(this)) { - acceptChild(visitor, this.methodName); acceptChild(visitor, this.arguments); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlMappingVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlMappingVisitor.java new file mode 100644 index 0000000000..d4859c4628 --- /dev/null +++ b/src/main/java/com/alibaba/druid/sql/dialect/mysql/visitor/MySqlMappingVisitor.java @@ -0,0 +1,16 @@ +package com.alibaba.druid.sql.dialect.mysql.visitor; + +import java.util.HashMap; +import java.util.Map; + +import com.alibaba.druid.sql.ast.SQLExpr; + +public class MySqlMappingVisitor extends MySqlASTVisitorAdapter { + + private final Map mapping = new HashMap(); + + public void addMapping(String column, String targetExpr) { + + } + +} diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleAggregateExpr.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleAggregateExpr.java index 70f1d581a4..974c92f0fe 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleAggregateExpr.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/ast/expr/OracleAggregateExpr.java @@ -19,7 +19,6 @@ import java.io.Serializable; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.expr.SQLAggregateExpr; -import com.alibaba.druid.sql.ast.expr.SQLIdentifierExpr; import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor; import com.alibaba.druid.sql.visitor.SQLASTVisitor; @@ -54,10 +53,6 @@ public class OracleAggregateExpr extends SQLAggregateExpr implements Serializabl super(methodName, option); } - public SQLIdentifierExpr getMethodName() { - return this.methodName; - } - public OracleAnalytic getOver() { return this.over; } @@ -87,7 +82,6 @@ public class OracleAggregateExpr extends SQLAggregateExpr implements Serializabl this.accept0((OracleASTVisitor) visitor); } else { if (visitor.visit(this)) { - acceptChild(visitor, this.methodName); acceptChild(visitor, this.arguments); acceptChild(visitor, this.over); } @@ -97,7 +91,6 @@ public class OracleAggregateExpr extends SQLAggregateExpr implements Serializabl public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { - acceptChild(visitor, this.methodName); acceptChild(visitor, this.arguments); acceptChild(visitor, this.over); } diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java index eae1dd8e75..f238ab4e5c 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/visitor/OracleOutputVisitor.java @@ -195,7 +195,7 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS } public boolean visit(OracleAggregateExpr expr) { - expr.getMethodName().accept(this); + print(expr.getMethodName()); print("("); if (expr.isUnique()) { print("UNIQUE "); diff --git a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java index 94ec3bddab..22c41c8f37 100644 --- a/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java +++ b/src/main/java/com/alibaba/druid/sql/visitor/SQLASTOutputVisitor.java @@ -387,7 +387,7 @@ public class SQLASTOutputVisitor extends SQLASTVisitorAdapter { } public boolean visit(SQLAggregateExpr x) { - x.getMethodName().accept(this); + print(x.getMethodName()); print("("); printAndAccept(x.getArguments(), ", "); print(")");