git-svn-id: http://code.alibabatech.com/svn/druid/trunk@2 b9813039-fb51-4c41-a8b9-e21c2acb5095
This commit is contained in:
wenshao
2011-05-11 01:35:21 +00:00
parent 239363b62e
commit 0e60b7d988
524 changed files with 67045 additions and 0 deletions
@@ -0,0 +1,18 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
@SuppressWarnings("serial")
public class NotNullConstraint extends SQLConstaintImpl implements SQLColumnConstraint {
public NotNullConstraint() {
}
@Override
protected void accept0(SQLASTVisitor visitor) {
visitor.visit(this);
visitor.endVisit(this);
}
}
@@ -0,0 +1,37 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLCallStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLName procedureName;
private final List<SQLExpr> parameters = new ArrayList<SQLExpr>();
public SQLName getProcedureName() {
return procedureName;
}
public void setProcedureName(SQLName procedureName) {
this.procedureName = procedureName;
}
public List<SQLExpr> getParameters() {
return parameters;
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.procedureName);
acceptChild(visitor, this.parameters);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,30 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLDataTypeImpl;
@SuppressWarnings("serial")
public class SQLCharactorDataType extends SQLDataTypeImpl {
private String charSetName;
private String collate;
public SQLCharactorDataType(String name) {
super(name);
}
public String getCharSetName() {
return charSetName;
}
public void setCharSetName(String charSetName) {
this.charSetName = charSetName;
}
public String getCollate() {
return collate;
}
public void setCollate(String collate) {
this.collate = collate;
}
}
@@ -0,0 +1,5 @@
package com.alibaba.druid.sql.ast.statement;
public interface SQLColumnConstraint extends SQLConstaint {
}
@@ -0,0 +1,82 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLDataType;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
@SuppressWarnings("serial")
public class SQLColumnDefinition extends SQLObjectImpl implements SQLTableElement {
private SQLName name;
private SQLDataType dataType;
private SQLExpr defaultExpr;
private final List<SQLColumnConstraint> constaints = new ArrayList<SQLColumnConstraint>(0);
private String comment;
public SQLColumnDefinition() {
}
public SQLName getName() {
return name;
}
public void setName(SQLName name) {
this.name = name;
}
public SQLDataType getDataType() {
return dataType;
}
public void setDataType(SQLDataType dataType) {
this.dataType = dataType;
}
public SQLExpr getDefaultExpr() {
return defaultExpr;
}
public void setDefaultExpr(SQLExpr defaultExpr) {
this.defaultExpr = defaultExpr;
}
public List<SQLColumnConstraint> getConstaints() {
return constaints;
}
@Override
public void output(StringBuffer buf) {
name.output(buf);
buf.append(' ');
this.dataType.output(buf);
if (defaultExpr != null) {
buf.append(" DEFAULT ");
this.defaultExpr.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
this.acceptChild(visitor, name);
this.acceptChild(visitor, dataType);
this.acceptChild(visitor, defaultExpr);
this.acceptChild(visitor, constaints);
}
visitor.endVisit(this);
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
@@ -0,0 +1,10 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObject;
public interface SQLConstaint extends SQLObject {
SQLName getName();
void setName(SQLName value);
}
@@ -0,0 +1,22 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
@SuppressWarnings("serial")
public abstract class SQLConstaintImpl extends SQLObjectImpl implements SQLConstaint {
private SQLName name;
public SQLConstaintImpl() {
}
public SQLName getName() {
return name;
}
public void setName(SQLName name) {
this.name = name;
}
}
@@ -0,0 +1,77 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
@SuppressWarnings("serial")
public class SQLCreateTableStatement extends SQLStatementImpl {
protected Type type;
protected SQLName name;
protected List<SQLTableElement> tableElementList = new ArrayList<SQLTableElement>();
public SQLCreateTableStatement() {
}
public SQLName getName() {
return name;
}
public void setName(SQLName name) {
this.name = name;
}
public Type getType() {
return type;
}
public void setType(Type type) {
this.type = type;
}
public static enum Type {
GLOBAL_TEMPORARY,
LOCAL_TEMPORARY
}
public List<SQLTableElement> getTableElementList() {
return tableElementList;
}
@Override
public void output(StringBuffer buf) {
buf.append("CREATE TABLE ");
if (Type.GLOBAL_TEMPORARY.equals(this.type)) {
buf.append("GLOBAL TEMPORARY ");
} else if (Type.LOCAL_TEMPORARY.equals(this.type)) {
buf.append("LOCAL TEMPORARY ");
}
this.name.output(buf);
buf.append(" ");
buf.append("(");
for (int i = 0, size = tableElementList.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
tableElementList.get(i).output(buf);
}
buf.append(")");
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
this.acceptChild(visitor, name);
this.acceptChild(visitor, tableElementList);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,90 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLCreateViewStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
protected SQLName name;
protected SQLSelect subQuery;
protected final List<SQLExpr> columns = new ArrayList<SQLExpr>();
private Level with;
public SQLCreateViewStatement() {
}
public SQLName getName() {
return name;
}
public void setName(SQLName name) {
this.name = name;
}
public Level getWith() {
return with;
}
public void setWith(Level with) {
this.with = with;
}
public SQLSelect getSubQuery() {
return subQuery;
}
public void setSubQuery(SQLSelect subQuery) {
this.subQuery = subQuery;
}
public List<SQLExpr> getColumns() {
return columns;
}
public void output(StringBuffer buf) {
buf.append("CREATE VIEW ");
this.name.output(buf);
if (this.columns.size() > 0) {
buf.append(" (");
for (int i = 0, size = this.columns.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
this.columns.get(i).output(buf);
}
buf.append(")");
}
buf.append(" AS ");
this.subQuery.output(buf);
if (this.with != null) {
buf.append(" WITH ");
buf.append(this.with.name());
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.name);
acceptChild(visitor, this.columns);
acceptChild(visitor, this.subQuery);
}
visitor.endVisit(this);
}
public static enum Level {
CASCADED,
LOCAL
}
}
@@ -0,0 +1,52 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLDeleteStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLName tableName;
private SQLExpr where;
public SQLDeleteStatement() {
}
public SQLName getTableName() {
return tableName;
}
public void setTableName(SQLName tableName) {
this.tableName = tableName;
}
public SQLExpr getWhere() {
return where;
}
public void setWhere(SQLExpr where) {
this.where = where;
}
public void output(StringBuffer buf) {
buf.append("DELETE FROM ");
this.tableName.output(buf);
if (this.where != null) {
buf.append(" WHERE ");
this.where.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, tableName);
acceptChild(visitor, where);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,42 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLDropTableStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLName name;
public SQLDropTableStatement() {
}
public SQLDropTableStatement(SQLName name) {
this.name = name;
}
public SQLName getName() {
return name;
}
public void setName(SQLName name) {
this.name = name;
}
@Override
public void output(StringBuffer buf) {
buf.append("DROP TABLE ");
this.name.output(buf);
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
this.acceptChild(visitor, name);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,34 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLExprTableSource extends SQLTableSource {
private static final long serialVersionUID = 1L;
protected SQLExpr expr;
public SQLExprTableSource() {
}
public SQLExpr getExpr() {
return this.expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.expr);
}
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
this.expr.output(buf);
}
}
@@ -0,0 +1,15 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLName;
public interface SQLForeignKeyConstraint extends SQLConstaint {
List<SQLName> getReferencingColumns();
SQLName getReferencedTableName();
void setReferencedTableName(SQLName value);
List<SQLName> getReferencedColumns();
}
@@ -0,0 +1,115 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.ast.expr.SQLQueryExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLInsertStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLName tableName;
private final List<SQLExpr> columns = new ArrayList<SQLExpr>();
private ValuesClause values;
private SQLQueryExpr query;
public SQLInsertStatement() {
}
public SQLName getTableName() {
return tableName;
}
public void setTableName(SQLName tableName) {
this.tableName = tableName;
}
public SQLQueryExpr getQuery() {
return query;
}
public void setQuery(SQLQueryExpr query) {
this.query = query;
}
public List<SQLExpr> getColumns() {
return columns;
}
public ValuesClause getValues() {
return values;
}
public void setValues(ValuesClause values) {
this.values = values;
}
public void output(StringBuffer buf) {
buf.append("INSERT INTO ");
this.tableName.output(buf);
if (columns.size() > 0) {
buf.append(" (");
for (int i = 0, size = columns.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
columns.get(i).output(buf);
}
buf.append(")");
}
if (values != null) {
values.output(buf);
} else {
buf.append(" ");
this.query.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
this.acceptChild(visitor, tableName);
this.acceptChild(visitor, columns);
this.acceptChild(visitor, values);
this.acceptChild(visitor, query);
}
visitor.endVisit(this);
}
public static class ValuesClause extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
private final List<SQLExpr> values = new ArrayList<SQLExpr>();
public List<SQLExpr> getValues() {
return values;
}
public void output(StringBuffer buf) {
buf.append(" VALUES (");
for (int i = 0, size = values.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
values.get(i).output(buf);
}
buf.append(")");
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
this.acceptChild(visitor, values);
}
visitor.endVisit(this);
}
}
}
@@ -0,0 +1,105 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLJoinTableSource extends SQLTableSource {
private static final long serialVersionUID = 1L;
protected SQLTableSource left;
protected JoinType joinType;
protected SQLTableSource right;
protected SQLExpr condition;
public SQLJoinTableSource(String alias) {
super(alias);
}
public SQLJoinTableSource() {
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.left);
acceptChild(visitor, this.right);
acceptChild(visitor, this.condition);
}
visitor.endVisit(this);
}
public JoinType getJoinType() {
return this.joinType;
}
public void setJoinType(JoinType joinType) {
this.joinType = joinType;
}
public SQLTableSource getLeft() {
return this.left;
}
public void setLeft(SQLTableSource left) {
this.left = left;
}
public SQLTableSource getRight() {
return this.right;
}
public void setRight(SQLTableSource right) {
this.right = right;
}
public SQLExpr getCondition() {
return this.condition;
}
public void setCondition(SQLExpr condition) {
this.condition = condition;
}
public void output(StringBuffer buf) {
this.left.output(buf);
buf.append(' ');
buf.append(JoinType.toString(this.joinType));
buf.append(' ');
this.right.output(buf);
if (this.condition != null) {
buf.append(" ON ");
this.condition.output(buf);
}
}
public static enum JoinType {
COMMA,
JOIN,
INNER_JOIN,
CROSS_JOIN,
NATURAL_JOIN,
NATURAL_INNER_JOIN,
LEFT_OUTER_JOIN,
RIGHT_OUTER_JOIN,
FULL_OUTER_JOIN;
public static String toString(JoinType joinType) {
if (JOIN.equals(joinType)) return "JOIN";
if (INNER_JOIN.equals(joinType)) return "INNER JOIN";
if (CROSS_JOIN.equals(joinType)) return "CROSS JOIN";
if (NATURAL_JOIN.equals(joinType)) return "NATURAL JOIN";
if (NATURAL_INNER_JOIN.equals(joinType)) return "NATURAL INNER JOIN";
if (LEFT_OUTER_JOIN.equals(joinType)) return "LEFT JOIN";
if (RIGHT_OUTER_JOIN.equals(joinType)) return "RIGHT JOIN";
if (FULL_OUTER_JOIN.equals(joinType)) {
return "FULL JOIN";
}
if (COMMA.equals(joinType)) {
return ",";
}
throw new IllegalStateException("not supported join " + joinType);
}
}
}
@@ -0,0 +1,5 @@
package com.alibaba.druid.sql.ast.statement;
public interface SQLPrimaryKey extends SQLUniqueConstraint {
}
@@ -0,0 +1,49 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLOrderBy;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelect extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
protected SQLSelectQuery query;
protected SQLOrderBy orderBy;
public SQLSelect() {
}
public SQLSelectQuery getQuery() {
return this.query;
}
public void setQuery(SQLSelectQuery query) {
this.query = query;
}
public SQLOrderBy getOrderBy() {
return this.orderBy;
}
public void setOrderBy(SQLOrderBy orderBy) {
this.orderBy = orderBy;
}
public void output(StringBuffer buf) {
this.query.output(buf);
buf.append(" ");
if (this.orderBy != null) this.orderBy.output(buf);
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.query);
acceptChild(visitor, this.orderBy);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,40 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectGroupByClause extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
private final List<SQLExpr> items = new ArrayList<SQLExpr>();
private SQLExpr having;
public SQLSelectGroupByClause() {
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.items);
acceptChild(visitor, this.having);
}
visitor.endVisit(this);
}
public SQLExpr getHaving() {
return this.having;
}
public void setHaving(SQLExpr having) {
this.having = having;
}
public List<SQLExpr> getItems() {
return this.items;
}
}
@@ -0,0 +1,53 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectItem extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
private SQLExpr expr;
private String alias;
public SQLSelectItem() {
}
public SQLSelectItem(SQLExpr expr, String alias) {
this.expr = expr;
this.alias = alias;
}
public SQLExpr getExpr() {
return this.expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
public String getAlias() {
return this.alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public void output(StringBuffer buf) {
this.expr.output(buf);
if ((this.alias != null) && (this.alias.length() != 0)) {
buf.append(" AS ");
buf.append(this.alias);
}
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.expr);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,50 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLOrderingSpecification;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectOrderByItem extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
protected SQLExpr expr;
protected String collate;
protected SQLOrderingSpecification type;
public SQLSelectOrderByItem() {
}
public SQLExpr getExpr() {
return this.expr;
}
public void setExpr(SQLExpr expr) {
this.expr = expr;
}
public String getCollate() {
return collate;
}
public void setCollate(String collate) {
this.collate = collate;
}
public SQLOrderingSpecification getType() {
return this.type;
}
public void setType(SQLOrderingSpecification type) {
this.type = type;
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.expr);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,11 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
public abstract class SQLSelectQuery extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
public SQLSelectQuery() {
}
}
@@ -0,0 +1,105 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLSetQuantifier;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectQueryBlock extends SQLSelectQuery {
private static final long serialVersionUID = 1L;
protected int distionOption;
protected final List<SQLSelectItem> selectList = new ArrayList<SQLSelectItem>();
protected SQLTableSource from;;
protected SQLExpr where;
protected SQLSelectGroupByClause groupBy;
public SQLSelectQueryBlock() {
}
public SQLSelectGroupByClause getGroupBy() {
return this.groupBy;
}
public void setGroupBy(SQLSelectGroupByClause groupBy) {
this.groupBy = groupBy;
}
public SQLExpr getWhere() {
return this.where;
}
public void setWhere(SQLExpr where) {
this.where = where;
}
public int getDistionOption() {
return this.distionOption;
}
public void setDistionOption(int distionOption) {
this.distionOption = distionOption;
}
public List<SQLSelectItem> getSelectList() {
return this.selectList;
}
public SQLTableSource getFrom() {
return this.from;
}
public void setFrom(SQLTableSource from) {
this.from = from;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.selectList);
acceptChild(visitor, this.from);
acceptChild(visitor, this.where);
acceptChild(visitor, this.groupBy);
}
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
buf.append("SELECT ");
if (SQLSetQuantifier.ALL == this.distionOption) buf.append("ALL ");
else if (SQLSetQuantifier.DISTINCT == this.distionOption) buf.append("DISTINCT ");
else if (SQLSetQuantifier.UNIQUE == this.distionOption) {
buf.append("UNIQUE ");
}
int i = 0;
for (int size = this.selectList.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
((SQLSelectItem) this.selectList.get(i)).output(buf);
}
buf.append(" FROM ");
if (this.from == null) {
buf.append("DUAL");
} else {
this.from.output(buf);
}
if (this.where != null) {
buf.append(" WHERE ");
this.where.output(buf);
}
if (this.groupBy != null) {
buf.append(" ");
this.groupBy.output(buf);
}
}
}
@@ -0,0 +1,38 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSelectStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLSelect select;
public SQLSelectStatement() {
}
public SQLSelectStatement(SQLSelect select) {
this.select = select;
}
public SQLSelect getSelect() {
return this.select;
}
public void setSelect(SQLSelect select) {
this.select = select;
}
public void output(StringBuffer buf) {
this.select.output(buf);
}
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.select);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,6 @@
package com.alibaba.druid.sql.ast.statement;
public class SQLSelectUnionType {
public final static int ALL = 0;
public final static int DISTINCT = 1;
}
@@ -0,0 +1,94 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSetStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private List<Item> items = new ArrayList<Item>();
public SQLSetStatement() {
}
public List<Item> getItems() {
return items;
}
public void setItems(List<Item> items) {
this.items = items;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.items);
}
visitor.endVisit(this);
}
public void output(StringBuffer buf) {
buf.append("SET ");
for (int i = 0; i < items.size(); ++i) {
if (i != 0) {
buf.append(", ");
}
Item item = items.get(i);
item.output(buf);
}
}
public static class Item extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
private SQLExpr target;
private SQLExpr value;
public Item() {
}
public Item(SQLExpr target, SQLExpr value) {
this.target = target;
this.value = value;
}
public SQLExpr getTarget() {
return target;
}
public void setTarget(SQLExpr target) {
this.target = target;
}
public SQLExpr getValue() {
return value;
}
public void setValue(SQLExpr value) {
this.value = value;
}
public void output(StringBuffer buf) {
target.output(buf);
buf.append(" = ");
value.output(buf);
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.target);
acceptChild(visitor, this.value);
}
visitor.endVisit(this);
}
}
}
@@ -0,0 +1,46 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLSubqueryTableSource extends SQLTableSource {
private static final long serialVersionUID = 1L;
protected SQLSelect select;
public SQLSubqueryTableSource() {
}
public SQLSubqueryTableSource(String alias) {
super(alias);
}
public SQLSubqueryTableSource(SQLSelect select, String alias) {
super(alias);
this.select = select;
}
public SQLSubqueryTableSource(SQLSelect select) {
this.select = select;
}
public SQLSelect getSelect() {
return this.select;
}
public void setSelect(SQLSelect select) {
this.select = select;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
throw new UnsupportedOperationException();
}
public void output(StringBuffer buf) {
buf.append("(");
this.select.output(buf);
buf.append(")");
}
}
@@ -0,0 +1,5 @@
package com.alibaba.druid.sql.ast.statement;
public interface SQLTableConstaint extends SQLConstaint, SQLTableElement {
}
@@ -0,0 +1,17 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
@SuppressWarnings("serial")
public class SQLTableConstaintImpl extends SQLConstaintImpl implements SQLTableConstaint {
public SQLTableConstaintImpl() {
}
@Override
protected void accept0(SQLASTVisitor visitor) {
}
}
@@ -0,0 +1,7 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLObject;
public interface SQLTableElement extends SQLObject {
}
@@ -0,0 +1,26 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
public abstract class SQLTableSource extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
protected String alias;
public SQLTableSource() {
}
public SQLTableSource(String alias) {
this.alias = alias;
}
public String getAlias() {
return this.alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
}
@@ -0,0 +1,49 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLUnionQuery extends SQLSelectQuery {
private static final long serialVersionUID = 1L;
private SQLSelectQuery left;
private SQLSelectQuery right;
private boolean all;
public SQLUnionQuery() {
}
public SQLSelectQuery getLeft() {
return left;
}
public void setLeft(SQLSelectQuery left) {
this.left = left;
}
public SQLSelectQuery getRight() {
return right;
}
public void setRight(SQLSelectQuery right) {
this.right = right;
}
public boolean isAll() {
return all;
}
public void setAll(boolean all) {
this.all = all;
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, left);
acceptChild(visitor, right);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,10 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
public interface SQLUniqueConstraint extends SQLConstaint {
List<SQLExpr> getColumns();
}
@@ -0,0 +1,30 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
@SuppressWarnings("serial")
public class SQLUniqueConstraintImpl extends SQLConstaintImpl implements SQLUniqueConstraint {
public SQLUniqueConstraintImpl() {
}
private List<SQLExpr> columns = new ArrayList<SQLExpr>();
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, this.getName());
acceptChild(visitor, columns);
}
visitor.endVisit(this);
}
@Override
public List<SQLExpr> getColumns() {
return columns;
}
}
@@ -0,0 +1,50 @@
package com.alibaba.druid.sql.ast.statement;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLObjectImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLUpdateSetItem extends SQLObjectImpl {
private static final long serialVersionUID = 1L;
private SQLName column;
private SQLExpr value;
public SQLUpdateSetItem() {
}
public SQLName getColumn() {
return column;
}
public void setColumn(SQLName column) {
this.column = column;
}
public SQLExpr getValue() {
return value;
}
public void setValue(SQLExpr value) {
this.value = value;
}
public void output(StringBuffer buf) {
column.output(buf);
buf.append(" = ");
value.output(buf);
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, column);
acceptChild(visitor, value);
}
visitor.endVisit(this);
}
}
@@ -0,0 +1,72 @@
package com.alibaba.druid.sql.ast.statement;
import java.util.ArrayList;
import java.util.List;
import com.alibaba.druid.sql.ast.SQLExpr;
import com.alibaba.druid.sql.ast.SQLName;
import com.alibaba.druid.sql.ast.SQLStatementImpl;
import com.alibaba.druid.sql.visitor.SQLASTVisitor;
public class SQLUpdateStatement extends SQLStatementImpl {
private static final long serialVersionUID = 1L;
private SQLName tableName;
private final List<SQLUpdateSetItem> items = new ArrayList<SQLUpdateSetItem>();
private SQLExpr where;
public SQLUpdateStatement() {
}
public SQLName getTableName() {
return tableName;
}
public void setTableName(SQLName tableName) {
this.tableName = tableName;
}
public SQLExpr getWhere() {
return where;
}
public void setWhere(SQLExpr where) {
this.where = where;
}
public List<SQLUpdateSetItem> getItems() {
return items;
}
@Override
public void output(StringBuffer buf) {
buf.append("UPDATE ");
this.tableName.output(buf);
buf.append(" SET ");
for (int i = 0, size = items.size(); i < size; ++i) {
if (i != 0) {
buf.append(", ");
}
items.get(i).output(buf);
}
if (this.where != null) {
buf.append(" WHERE ");
this.where.output(buf);
}
}
@Override
protected void accept0(SQLASTVisitor visitor) {
if (visitor.visit(this)) {
acceptChild(visitor, tableName);
acceptChild(visitor, items);
acceptChild(visitor, where);
}
visitor.endVisit(this);
}
}