/** * Alipay.com Inc. * Copyright (c) 2004-2012 All Rights Reserved. */ package com.alipay.zdal.parser.sql.dialect.oracle.ast.clause; import java.util.ArrayList; import java.util.List; import com.alipay.zdal.parser.sql.ast.SQLName; import com.alipay.zdal.parser.sql.ast.expr.SQLIdentifierExpr; import com.alipay.zdal.parser.sql.ast.statement.SQLSelectQuery; import com.alipay.zdal.parser.sql.dialect.oracle.ast.OracleSQLObjectImpl; import com.alipay.zdal.parser.sql.dialect.oracle.visitor.OracleASTVisitor; /** * * @author ���� * @version $Id: SubqueryFactoringClause.java, v 0.1 2012-11-17 ����3:42:38 Exp $ */ public class SubqueryFactoringClause extends OracleSQLObjectImpl { private static final long serialVersionUID = 1L; private final List<Entry> entries = new ArrayList<Entry>(); public List<Entry> getEntries() { return entries; } public static class Entry extends OracleSQLObjectImpl { private static final long serialVersionUID = 1L; private SQLIdentifierExpr name; private final List<SQLName> columns = new ArrayList<SQLName>(); private SQLSelectQuery subQuery; private SearchClause searchClause; private CycleClause cycleClause; public CycleClause getCycleClause() { return cycleClause; } public void setCycleClause(CycleClause cycleClause) { this.cycleClause = cycleClause; } public SearchClause getSearchClause() { return searchClause; } public void setSearchClause(SearchClause searchClause) { this.searchClause = searchClause; } public SQLIdentifierExpr getName() { return name; } public void setName(SQLIdentifierExpr name) { this.name = name; } public SQLSelectQuery getSubQuery() { return subQuery; } public void setSubQuery(SQLSelectQuery subQuery) { this.subQuery = subQuery; } public List<SQLName> getColumns() { return columns; } @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, name); acceptChild(visitor, columns); acceptChild(visitor, subQuery); } visitor.endVisit(this); } } @Override public void accept0(OracleASTVisitor visitor) { if (visitor.visit(this)) { acceptChild(visitor, entries); } visitor.endVisit(this); } }