/* * Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License, * Version 1.0, and under the Eclipse Public License, Version 1.0 * (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package com.alibaba.garuda.parser.ast.statement; import com.alibaba.druid.sql.ast.SQLExpr; import com.alibaba.druid.sql.ast.SQLObjectImpl; import com.alibaba.druid.sql.ast.SQLOrderBy; import com.alibaba.druid.sql.ast.statement.SQLSelectQueryBlock; import com.alibaba.druid.sql.visitor.SQLASTVisitor; import com.alibaba.garuda.parser.visitor.GarudaASTVisitor; /** * @author Min Zhou (coderplay@gmail.com) */ @SuppressWarnings("serial") public class GarudaSelectQueryBlock extends SQLSelectQueryBlock { private SQLOrderBy orderBy; private Limit limit; public SQLOrderBy getOrderBy() { return orderBy; } public void setOrderBy(SQLOrderBy orderBy) { this.orderBy = orderBy; } public Limit getLimit() { return limit; } public void setLimit(Limit limit) { this.limit = limit; } @Override protected void accept0(SQLASTVisitor visitor) { if (visitor instanceof GarudaASTVisitor) { accept0((GarudaASTVisitor) visitor); return; } if (visitor.visit(this)) { acceptChild(visitor, this.selectList); acceptChild(visitor, this.from); acceptChild(visitor, this.where); acceptChild(visitor, this.groupBy); acceptChild(visitor, this.orderBy); acceptChild(visitor, this.limit); acceptChild(visitor, this.into); } visitor.endVisit(this); } public void accept0(GarudaASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, this.selectList); acceptChild(visitor, this.from); acceptChild(visitor, this.where); acceptChild(visitor, this.groupBy); acceptChild(visitor, this.orderBy); acceptChild(visitor, this.limit); acceptChild(visitor, this.into); } visitor.endVisit(this); } public static class Limit extends SQLObjectImpl { public Limit(){ } private SQLExpr rowCount; private SQLExpr offset; public SQLExpr getRowCount() { return rowCount; } public void setRowCount(SQLExpr rowCount) { this.rowCount = rowCount; } public SQLExpr getOffset() { return offset; } public void setOffset(SQLExpr offset) { this.offset = offset; } @Override protected void accept0(SQLASTVisitor visitor) { if (visitor instanceof GarudaASTVisitor) { GarudaASTVisitor garudaVisitor = (GarudaASTVisitor) visitor; if (garudaVisitor.visit(this)) { acceptChild(visitor, offset); acceptChild(visitor, rowCount); } } } } }