001package gudusoft.gsqlparser.nodes.functions;
002
003
004import gudusoft.gsqlparser.nodes.*;
005
006
007import java.util.ArrayList;
008
009public class TUnpackOption extends TParseTreeNode {
010
011        public static final int UNPACK_TARGETCOLUMN = 1;
012        public static final int UNPACK_DELIMITER = 2;
013        public static final int UNPACK_OUTPUTCOLUMNS = 3;
014        public static final int UNPACK_OUTPUTDATATYPES = 4;
015        public static final int UNPACK_COLUMNLENTH = 5;
016        public static final int UNPACK_REGEX = 6;
017        public static final int UNPACK_REGEXSET = 7;
018        public static final int UNPACK_IGNOREINVALID = 8;
019        public static final int UNPACK_ACCUMULATE = 9;
020        public static final int PACK_TARGETCOLUMNS = 10; // for pack function
021        public static final int PACK_INCLUDECOLUMNNAME = 11; // for pack function
022        public static final int PACK_OUTPUTCOLUMN = 12;   // for pack function
023        public static final int PACK_COLCAST = 13; // for pack function
024
025        private int optionType = UNPACK_TARGETCOLUMN;
026
027    private TConstant targetColumn;
028    private ArrayList<TConstant> targetColumns;
029    private TConstant delimiter;
030    private ArrayList<TConstant> outputColumns;
031    private ArrayList<TConstant> outputDataTypes;
032    private ArrayList<TConstant> columnLengths;
033
034    private TConstant includeColumnName;
035    private TConstant outputColumn;
036    private TConstant colCast;
037
038    public void setTargetColumns(ArrayList<TConstant> targetColumns) {
039        this.targetColumns = targetColumns;
040    }
041
042    public void setIncludeColumnName(TConstant includeColumnName) {
043        this.includeColumnName = includeColumnName;
044    }
045
046    public void setOutputColumn(TConstant outputColumn) {
047        this.outputColumn = outputColumn;
048    }
049
050    public void setColCast(TConstant colCast) {
051        this.colCast = colCast;
052    }
053
054    public ArrayList<TConstant> getTargetColumns() {
055        return targetColumns;
056    }
057
058    public TConstant getIncludeColumnName() {
059        return includeColumnName;
060    }
061
062    public TConstant getOutputColumn() {
063        return outputColumn;
064    }
065
066    public TConstant getColCast() {
067        return colCast;
068    }
069
070    private TConstant regex;
071    private TConstant regexSet;
072    private TConstant ignoreInvalid;
073
074    public void setRegex(TConstant regex) {
075        this.regex = regex;
076    }
077
078    public void setRegexSet(TConstant regexSet) {
079        this.regexSet = regexSet;
080    }
081
082    public void setIgnoreInvalid(TConstant ignoreInvalid) {
083        this.ignoreInvalid = ignoreInvalid;
084    }
085
086    public void setAccumulate(ArrayList<TConstant> accumulate) {
087        this.accumulate = accumulate;
088    }
089
090    public TConstant getRegex() {
091        return regex;
092    }
093
094    public TConstant getRegexSet() {
095        return regexSet;
096    }
097
098    public TConstant getIgnoreInvalid() {
099        return ignoreInvalid;
100    }
101
102    public ArrayList<TConstant> getAccumulate() {
103        return accumulate;
104    }
105
106    private ArrayList<TConstant> accumulate;
107
108    public void setOptionType(int optionType) {
109        this.optionType = optionType;
110    }
111
112
113
114    public void setTargetColumn(TConstant targetColumn) {
115        this.targetColumn = targetColumn;
116    }
117
118    public void setDelimiter(TConstant delimiter) {
119        this.delimiter = delimiter;
120    }
121
122    public void setOutputColumns(ArrayList<TConstant> outputColumns) {
123        this.outputColumns = outputColumns;
124    }
125
126    public void setOutputDataTypes(ArrayList<TConstant> outputDataTypes) {
127        this.outputDataTypes = outputDataTypes;
128    }
129
130    public int getOptionType() {
131        return optionType;
132    }
133
134    public TConstant getTargetColumn() {
135        return targetColumn;
136    }
137
138    public TConstant getDelimiter() {
139        return delimiter;
140    }
141
142    public ArrayList<TConstant> getOutputColumns() {
143        return outputColumns;
144    }
145
146    public ArrayList<TConstant> getOutputDataTypes() {
147        return outputDataTypes;
148    }
149
150
151
152    public void setColumnLengths(ArrayList<TConstant> columnLengths) {
153        this.columnLengths = columnLengths;
154    }
155
156    public ArrayList<TConstant> getColumnLengths() {
157        return columnLengths;
158    }
159
160    public void accept(TParseTreeVisitor v){
161            v.preVisit(this);
162            v.postVisit(this);
163        }
164
165        public void acceptChildren(TParseTreeVisitor v) {
166            v.preVisit(this);
167            v.postVisit(this);
168        }
169}