/* 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.annotation.Since; import org.teiid.designer.query.sql.lang.ITextTable; import org.teiid.designer.runtime.version.spi.ITeiidServerVersion; import org.teiid.designer.runtime.version.spi.TeiidServerVersion.Version; 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; @Since(Version.TEIID_8_10) 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 */ @Since(Version.TEIID_8_10) public Character getRowDelimiter() { if (getTeiidVersion().isLessThan(Version.TEIID_8_10)) return null; return rowDelimiter; } /** * @param rowDelimiter */ @Since(Version.TEIID_8_10) public void setRowDelimiter(Character rowDelimiter) { if (getTeiidVersion().isLessThan(Version.TEIID_8_10)) return; 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 */ @Since(Version.TEIID_8_10) public void setNoTrim() { if (getTeiidVersion().isLessThan(Version.TEIID_8_10)) return; for (TextColumn col : columns) { col.setNoTrim(true); } } /** * @return if all columns are no trim */ @Since(Version.TEIID_8_10) public boolean isNoTrim() { if (getTeiidVersion().isLessThan(Version.TEIID_8_10)) return false; 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 (getTeiidVersion().isGreaterThanOrEqualTo(Version.TEIID_8_10)) { 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(isMakeInd()); 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) */