/* Generated By:JJTree: Do not edit this line. ArrayTable.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.ArrayList;
import java.util.List;
import org.teiid.designer.query.sql.lang.IArrayTable;
import org.teiid.designer.runtime.version.spi.ITeiidServerVersion;
import org.teiid.query.parser.LanguageVisitor;
import org.teiid.query.sql.symbol.Expression;
/**
*
*/
public class ArrayTable extends TableFunctionReference implements IArrayTable<LanguageVisitor> {
private Expression arrayValue;
private List<ProjectedColumn> columns = new ArrayList<ProjectedColumn>();
/**
* @param p
* @param id
*/
public ArrayTable(ITeiidServerVersion p, int id) {
super(p, id);
}
/**
* @return columns
*/
public List<ProjectedColumn> getColumns() {
return columns;
}
/**
* @param columns
*/
public void setColumns(List<ProjectedColumn> columns) {
this.columns = columns;
}
/**
* @return array value
*/
public Expression getArrayValue() {
return arrayValue;
}
/**
* @param arrayValue
*/
public void setArrayValue(Expression arrayValue) {
this.arrayValue = arrayValue;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((this.arrayValue == null) ? 0 : this.arrayValue.hashCode());
result = prime * result + ((this.columns == null) ? 0 : this.columns.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;
ArrayTable other = (ArrayTable)obj;
if (this.arrayValue == null) {
if (other.arrayValue != null)
return false;
} else if (!this.arrayValue.equals(other.arrayValue))
return false;
if (this.columns == null) {
if (other.columns != null)
return false;
} else if (!this.columns.equals(other.columns))
return false;
return true;
}
/** Accept the visitor. **/
@Override
public void acceptVisitor(LanguageVisitor visitor) {
visitor.visit(this);
}
@Override
public ArrayTable clone() {
ArrayTable clone = new ArrayTable(getTeiidVersion(), this.id);
if(getColumns() != null)
clone.setColumns(cloneList(getColumns()));
if(getArrayValue() != null)
clone.setArrayValue(getArrayValue().clone());
if(getName() != null)
clone.setName(getName());
clone.setOptional(isOptional());
clone.setMakeInd(isMakeInd());
clone.setMakeInd(getMakeInd());
clone.setNoUnnest(isNoUnnest());
clone.setMakeDep(isMakeDep());
clone.setMakeNotDep(isMakeNotDep());
clone.setPreserve(isPreserve());
return clone;
}
}
/* JavaCC - OriginalChecksum=f81b782039749259c07b9501cb43adbf (do not edit this line) */