/* Generated By:JJTree: Do not edit this line. XMLColumn.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.IXMLColumn;
import org.teiid.designer.runtime.version.spi.ITeiidServerVersion;
import org.teiid.query.parser.LanguageVisitor;
import org.teiid.query.sql.symbol.Expression;
import net.sf.saxon.sxpath.XPathExpression;
/**
*
*/
public class XMLColumn extends ProjectedColumn implements IXMLColumn<LanguageVisitor> {
private String path;
private Expression defaultExpression;
private boolean ordinal;
private XPathExpression pathExpression;
/**
* @param p
* @param id
*/
public XMLColumn(ITeiidServerVersion p, int id) {
super(p, id);
}
/**
* @return the path
*/
public String getPath() {
return this.path;
}
/**
* @param path the path to set
*/
public void setPath(String path) {
this.path = path;
}
/**
* @return the defaultExpression
*/
public Expression getDefaultExpression() {
return this.defaultExpression;
}
/**
* @param defaultExpression the defaultExpression to set
*/
public void setDefaultExpression(Expression defaultExpression) {
this.defaultExpression = defaultExpression;
}
/**
* @return ordinal
*/
public boolean isOrdinal() {
return ordinal;
}
/**
* @param ordinal
*/
public void setOrdinal(boolean ordinal) {
this.ordinal = ordinal;
}
/**
* @return xpath expression
*/
public XPathExpression getPathExpression() {
return pathExpression;
}
/**
* @param pathExpression
*/
public void setPathExpression(XPathExpression pathExpression) {
this.pathExpression = pathExpression;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((this.defaultExpression == null) ? 0 : this.defaultExpression.hashCode());
result = prime * result + ((this.pathExpression == null) ? 0 : this.pathExpression.hashCode());
result = prime * result + (this.ordinal ? 1231 : 1237);
result = prime * result + ((this.path == null) ? 0 : this.path.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;
XMLColumn other = (XMLColumn)obj;
if (this.defaultExpression == null) {
if (other.defaultExpression != null) return false;
} else if (!this.defaultExpression.equals(other.defaultExpression)) return false;
if (this.pathExpression == null) {
if (other.pathExpression != null) return false;
} else if (!this.pathExpression.equals(other.pathExpression)) return false;
if (this.ordinal != other.ordinal) return false;
if (this.path == null) {
if (other.path != null) return false;
} else if (!this.path.equals(other.path)) return false;
return true;
}
/** Accept the visitor. **/
@Override
public void acceptVisitor(LanguageVisitor visitor) {
visitor.visit(this);
}
@Override
public XMLColumn clone() {
XMLColumn clone = new XMLColumn(getTeiidVersion(), this.id);
if(getPath() != null)
clone.setPath(getPath());
if(getDefaultExpression() != null)
clone.setDefaultExpression(getDefaultExpression().clone());
if(getPathExpression() != null)
clone.setPathExpression(getPathExpression());
clone.setOrdinal(isOrdinal());
if(getName() != null)
clone.setName(getName());
if(getType() != null)
clone.setType(getType());
return clone;
}
}
/* JavaCC - OriginalChecksum=2ac7d3dfcbd0e5f01fce2573443ce51f (do not edit this line) */