/* Generated By:JJTree: Do not edit this line. DerivedColumn.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.symbol; import org.teiid.designer.query.sql.symbol.IDerivedColumn; import org.teiid.designer.runtime.version.spi.ITeiidServerVersion; import org.teiid.query.parser.LanguageVisitor; import org.teiid.query.sql.lang.SimpleNode; /** * */ public class DerivedColumn extends SimpleNode implements IDerivedColumn<LanguageVisitor> { private String alias; private Expression expression; private boolean propagateName = true; /** * @param p * @param id */ public DerivedColumn(ITeiidServerVersion p, int id) { super(p, id); } /** * @return propogate name flag */ public boolean isPropagateName() { return propagateName; } /** * @param propagateName */ public void setPropagateName(boolean propagateName) { this.propagateName = propagateName; } /** * @return alias */ public String getAlias() { return alias; } /** * @return expression */ public Expression getExpression() { return expression; } /** * @param name */ public void setAlias(String name) { this.alias = name; } /** * @param expression */ public void setExpression(Expression expression) { this.expression = expression; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((this.alias == null) ? 0 : this.alias.hashCode()); result = prime * result + ((this.expression == null) ? 0 : this.expression.hashCode()); result = prime * result + (this.propagateName ? 1231 : 1237); 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; DerivedColumn other = (DerivedColumn)obj; if (this.alias == null) { if (other.alias != null) return false; } else if (!this.alias.equals(other.alias)) return false; if (this.expression == null) { if (other.expression != null) return false; } else if (!this.expression.equals(other.expression)) return false; if (this.propagateName != other.propagateName) return false; return true; } /** Accept the visitor. **/ @Override public void acceptVisitor(LanguageVisitor visitor) { visitor.visit(this); } @Override public DerivedColumn clone() { DerivedColumn clone = new DerivedColumn(getTeiidVersion(), this.id); if(getExpression() != null) clone.setExpression(getExpression().clone()); clone.setPropagateName(isPropagateName()); if(getAlias() != null) clone.setAlias(getAlias()); return clone; } } /* JavaCC - OriginalChecksum=b8c0cc1023777a56f0a24e4cb9eb6b4a (do not edit this line) */