001package gudusoft.gsqlparser.nodes;
002/*
003 * Date: 13-2-18
004 */
005
006import gudusoft.gsqlparser.EExpressionType;
007
008public class TUnpivotInClauseItem extends TParseTreeNode {
009
010    private TExpression constantExpr;
011
012    public TExpression getConstantExpr() {
013        return constantExpr;
014    }
015
016    private TObjectName column;
017    private TObjectNameList columnList;
018    private TConstant constant;
019    private TPTNodeList <TConstant> constantList;
020
021    public TObjectName getColumn() {
022        return column;
023    }
024
025    public TObjectNameList getColumnList() {
026        return columnList;
027    }
028
029    public TConstant getConstant() {
030        return constant;
031    }
032
033    public TPTNodeList<TConstant> getConstantList() {
034        return constantList;
035    }
036
037    public void init(Object arg1){
038        if (arg1 instanceof  TObjectName){
039            column = (TObjectName)arg1;
040        }else if (arg1 instanceof TObjectNameList){
041            columnList   = (TObjectNameList)arg1;
042        }
043    }
044
045    public void init(Object arg1,Object arg2){
046        init(arg1);
047
048        if (arg2 != null){
049            TDummy dummy = (TDummy)arg2;
050            if (dummy.node1 instanceof TConstant){
051                constant = (TConstant)dummy.node1;
052            }else if (dummy.node1 instanceof  TPTNodeList){
053                constantList = (TPTNodeList)dummy.node1;
054            }else if (dummy.node1 instanceof TExpression){
055                this.constantExpr = (TExpression)dummy.node1;
056                if (this.constantExpr.getExpressionType() == EExpressionType.simple_constant_t){
057                    this.constant = this.constantExpr.getConstantOperand();
058                }
059            }
060        }
061    }
062
063    public void accept(TParseTreeVisitor v){
064        v.preVisit(this);
065        v.postVisit(this);
066    }
067
068    public void acceptChildren(TParseTreeVisitor v){
069        v.preVisit(this);
070        v.postVisit(this);
071    }
072
073    public void setColumn(TObjectName column) {
074        this.column = column;
075    }
076
077    public void setColumnList(TObjectNameList columnList) {
078        this.columnList = columnList;
079    }
080
081    public void setConstant(TConstant constant) {
082        this.constant = constant;
083    }
084
085    public void setConstantList(TPTNodeList<TConstant> constantList) {
086        this.constantList = constantList;
087    }
088}