/* Generated By:JJTree: Do not edit this line. SubquerySetCriteria.java Version 4.3 */ /* JavaCCOptions:MULTI=true,NODE_USES_PARSER=true,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=,NODE_EXTENDS=,NODE_FACTORY=TeiidNodeFactory,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */ package org.teiid.query.sql.lang; import org.teiid.designer.query.sql.lang.ISubquerySetCriteria; import org.teiid.designer.runtime.version.spi.ITeiidServerVersion; import org.teiid.query.parser.LanguageVisitor; import org.teiid.query.sql.symbol.Expression; /** * */ public class SubquerySetCriteria extends AbstractSetCriteria implements SubqueryContainer<QueryCommand>, ISubquerySetCriteria<Expression, LanguageVisitor, QueryCommand>{ private QueryCommand command; private SubqueryHint subqueryHint = new SubqueryHint(); /** * @param p * @param id */ public SubquerySetCriteria(ITeiidServerVersion p, int id) { super(p, id); } /** * Set the subquery command (either a SELECT or a procedure execution). * @param command Command to execute to get the values for the criteria */ @Override public void setCommand(QueryCommand command) { this.command = command; } /** * @return subquery hint */ public SubqueryHint getSubqueryHint() { return subqueryHint; } /** * @param subqueryHint */ public void setSubqueryHint(SubqueryHint subqueryHint) { this.subqueryHint = subqueryHint; } /** * Get the subquery command used to produce the values for this SetCriteria. * @return Command Command to execute */ @Override public QueryCommand getCommand() { return this.command; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((this.command == null) ? 0 : this.command.hashCode()); result = prime * result + ((this.subqueryHint == null) ? 0 : this.subqueryHint.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SubquerySetCriteria other = (SubquerySetCriteria)obj; if (this.command == null) { if (other.command != null) return false; } else if (!this.command.equals(other.command)) return false; if (this.subqueryHint == null) { if (other.subqueryHint != null) return false; } else if (!this.subqueryHint.equals(other.subqueryHint)) return false; return true; } /** Accept the visitor. **/ @Override public void acceptVisitor(LanguageVisitor visitor) { visitor.visit(this); } @Override public SubquerySetCriteria clone() { SubquerySetCriteria clone = new SubquerySetCriteria(getTeiidVersion(), this.id); if(getCommand() != null) clone.setCommand(getCommand().clone()); if(getSubqueryHint() != null) clone.setSubqueryHint(getSubqueryHint().clone()); if(getExpression() != null) clone.setExpression(getExpression().clone()); clone.setNegated(isNegated()); return clone; } } /* JavaCC - OriginalChecksum=089107c07c615436629d5cb75f0cd12d (do not edit this line) */