/* Generated By:JJTree: Do not edit this line. TextTable.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.ITextTable;
import org.teiid.designer.runtime.version.spi.ITeiidServerVersion;
import org.teiid.query.parser.LanguageVisitor;
import org.teiid.query.sql.symbol.Expression;
/**
*
*/
public class TextTable extends TableFunctionReference implements ITextTable<LanguageVisitor> {
private Expression file;
private List<TextColumn> columns = new ArrayList<TextColumn>();
private Character delimiter;
private Character rowDelimiter;
private Character quote;
private boolean escape;
private Integer header;
private Integer skip;
private boolean usingRowDelimiter = true;
private String selector;
private boolean fixedWidth;
/**
* @param p
* @param id
*/
public TextTable(ITeiidServerVersion p, int id) {
super(p, id);
}
/**
* @return the file
*/
public Expression getFile() {
return this.file;
}
/**
* @param file the file to set
*/
public void setFile(Expression file) {
this.file = file;
}
/**
* @return the columns
*/
@Override
public List<TextColumn> getColumns() {
return this.columns;
}
/**
* @param columns the columns to set
*/
public void setColumns(List<TextColumn> columns) {
this.columns = columns;
}
/**
* @return row delimiter
*/
public Character getRowDelimiter() {
return rowDelimiter;
}
/**
* @param rowDelimiter
*/
public void setRowDelimiter(Character rowDelimiter) {
this.rowDelimiter = rowDelimiter;
}
/**
* @return the delimiter
*/
public Character getDelimiter() {
return this.delimiter;
}
/**
* @param delimiter the delimiter to set
*/
public void setDelimiter(Character delimiter) {
this.delimiter = delimiter;
}
/**
* @return the quote
*/
public Character getQuote() {
return this.quote;
}
/**
* @param quote the quote to set
*/
public void setQuote(Character quote) {
this.quote = quote;
}
/**
* @return the escape
*/
public boolean isEscape() {
return this.escape;
}
/**
* @param escape the escape to set
*/
public void setEscape(boolean escape) {
this.escape = escape;
}
/**
* @return the header
*/
public Integer getHeader() {
return this.header;
}
/**
* @param header the header to set
*/
public void setHeader(Integer header) {
this.header = header;
}
/**
* @return the skip
*/
public Integer getSkip() {
return this.skip;
}
/**
* @param skip the skip to set
*/
public void setSkip(Integer skip) {
this.skip = skip;
}
/**
* @return the usingRowDelimiter
*/
public boolean isUsingRowDelimiter() {
return this.usingRowDelimiter;
}
/**
* @param usingRowDelimiter the usingRowDelimiter to set
*/
public void setUsingRowDelimiter(boolean usingRowDelimiter) {
this.usingRowDelimiter = usingRowDelimiter;
}
/**
* Set no trim on columns
*/
public void setNoTrim() {
for (TextColumn col : columns) {
col.setNoTrim(true);
}
}
/**
* @return if all columns are no trim
*/
public boolean isNoTrim() {
for (TextColumn col : columns) {
if (!col.isNoTrim()) {
return false;
}
}
return true;
}
/**
* @return the selector
*/
public String getSelector() {
return this.selector;
}
/**
* @param selector the selector to set
*/
public void setSelector(String selector) {
this.selector = selector;
}
/**
* @return the fixedWidth
*/
public boolean isFixedWidth() {
return this.fixedWidth;
}
/**
* @param fixedWidth the fixedWidth to set
*/
public void setFixedWidth(boolean fixedWidth) {
this.fixedWidth = fixedWidth;
}
@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.delimiter == null) ? 0 : this.delimiter.hashCode());
result = prime * result + (this.escape ? 1231 : 1237);
result = prime * result + ((this.file == null) ? 0 : this.file.hashCode());
result = prime * result + (this.fixedWidth ? 1231 : 1237);
result = prime * result + ((this.header == null) ? 0 : this.header.hashCode());
result = prime * result + ((this.quote == null) ? 0 : this.quote.hashCode());
result = prime * result + ((this.selector == null) ? 0 : this.selector.hashCode());
result = prime * result + ((this.skip == null) ? 0 : this.skip.hashCode());
result = prime * result + (this.usingRowDelimiter ? 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;
TextTable other = (TextTable)obj;
if (this.columns == null) {
if (other.columns != null)
return false;
} else if (!this.columns.equals(other.columns))
return false;
if (this.delimiter == null) {
if (other.delimiter != null)
return false;
} else if (!this.delimiter.equals(other.delimiter))
return false;
if (this.escape != other.escape)
return false;
if (this.file == null) {
if (other.file != null)
return false;
} else if (!this.file.equals(other.file))
return false;
if (this.fixedWidth != other.fixedWidth)
return false;
if (this.header == null) {
if (other.header != null)
return false;
} else if (!this.header.equals(other.header))
return false;
if (this.quote == null) {
if (other.quote != null)
return false;
} else if (!this.quote.equals(other.quote))
return false;
if (this.selector == null) {
if (other.selector != null)
return false;
} else if (!this.selector.equals(other.selector))
return false;
if (this.skip == null) {
if (other.skip != null)
return false;
} else if (!this.skip.equals(other.skip))
return false;
if (this.usingRowDelimiter != other.usingRowDelimiter)
return false;
if (this.delimiter == null) {
if (other.delimiter != null)
return false;
} else if (!this.delimiter.equals(other.delimiter))
return false;
return true;
}
/** Accept the visitor. **/
@Override
public void acceptVisitor(LanguageVisitor visitor) {
visitor.visit(this);
}
@Override
public TextTable clone() {
TextTable clone = new TextTable(getTeiidVersion(), this.id);
if(getColumns() != null)
clone.setColumns(cloneList(getColumns()));
if(getSelector() != null)
clone.setSelector(getSelector());
if(getDelimiter() != null)
clone.setDelimiter(getDelimiter());
if(getQuote() != null)
clone.setQuote(getQuote());
if(getFile() != null)
clone.setFile(getFile().clone());
clone.setEscape(isEscape());
if(getHeader() != null)
clone.setHeader(getHeader());
if(getSkip() != null)
clone.setSkip(getSkip());
clone.setUsingRowDelimiter(isUsingRowDelimiter());
clone.setRowDelimiter(getDelimiter());
clone.setFixedWidth(isFixedWidth());
if(getName() != null)
clone.setName(getName());
clone.setOptional(isOptional());
clone.setMakeInd(getMakeInd());
clone.setNoUnnest(isNoUnnest());
clone.setMakeDep(isMakeDep());
clone.setMakeNotDep(isMakeNotDep());
clone.setPreserve(isPreserve());
return clone;
}
}
/* JavaCC - OriginalChecksum=ebe49b0b200a80db8dbb7c673231856d (do not edit this line) */