/* Generated By:JJTree: Do not edit this line. WithQueryCommand.java Version 4.3 */ /* JavaCCOptions:MULTI=true,NODE_USES_PARSER=true,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ package org.teiid.query.sql.lang; import java.util.List; import org.teiid.designer.annotation.Since; import org.teiid.designer.query.sql.lang.IWithQueryCommand; import org.teiid.designer.runtime.version.spi.ITeiidServerVersion; import org.teiid.designer.runtime.version.spi.TeiidServerVersion.Version; import org.teiid.query.parser.LanguageVisitor; import org.teiid.query.sql.symbol.ElementSymbol; import org.teiid.query.sql.symbol.GroupSymbol; /** * */ public class WithQueryCommand extends SimpleNode implements SubqueryContainer<QueryCommand>, IWithQueryCommand<LanguageVisitor, QueryCommand> { private GroupSymbol groupSymbol; private List<ElementSymbol> columns; private QueryCommand queryExpression; @Since(Version.TEIID_8_10) private boolean recursive; /** * @param p * @param id */ public WithQueryCommand(ITeiidServerVersion p, int id) { super(p, id); } /** * @return group symbol */ public GroupSymbol getGroupSymbol() { return groupSymbol; } /** * @param groupSymbol the groupSymbol to set */ public void setGroupSymbol(GroupSymbol groupSymbol) { this.groupSymbol = groupSymbol; } /** * @return columns */ public List<ElementSymbol> getColumns() { return columns; } /** * @param columns */ public void setColumns(List<ElementSymbol> columns) { this.columns = columns; } /** * @return the queryExpression */ public QueryCommand getQueryExpression() { return this.queryExpression; } /** * @param queryExpression the queryExpression to set */ public void setQueryExpression(QueryCommand queryExpression) { this.queryExpression = queryExpression; } @Override public QueryCommand getCommand() { return getQueryExpression(); } @Override public void setCommand(QueryCommand command) { setQueryExpression(command); } @Since(Version.TEIID_8_10) public boolean isRecursive() { return recursive; } @Since(Version.TEIID_8_10) public void setRecursive(boolean recursive) { this.recursive = recursive; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((this.columns == null) ? 0 : this.columns.hashCode()); result = prime * result + ((this.groupSymbol == null) ? 0 : this.groupSymbol.hashCode()); result = prime * result + ((this.queryExpression == null) ? 0 : this.queryExpression.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; WithQueryCommand other = (WithQueryCommand)obj; if (this.columns == null) { if (other.columns != null) return false; } else if (!this.columns.equals(other.columns)) return false; if (this.groupSymbol == null) { if (other.groupSymbol != null) return false; } else if (!this.groupSymbol.equals(other.groupSymbol)) return false; if (this.queryExpression == null) { if (other.queryExpression != null) return false; } else if (!this.queryExpression.equals(other.queryExpression)) return false; return true; } /** Accept the visitor. **/ @Override public void acceptVisitor(LanguageVisitor visitor) { visitor.visit(this); } @Override public WithQueryCommand clone() { WithQueryCommand clone = new WithQueryCommand(getTeiidVersion(), this.id); if(getColumns() != null) clone.setColumns(cloneList(getColumns())); if(getGroupSymbol() != null) clone.setGroupSymbol(getGroupSymbol().clone()); if(getQueryExpression() != null) clone.setQueryExpression(getQueryExpression().clone()); clone.setRecursive(clone.isRecursive()); return clone; } } /* JavaCC - OriginalChecksum=78388b507c1605f75762901f62007b34 (do not edit this line) */