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    private TObjectName alias;
021
022    public TObjectName getColumn() {
023        return column;
024    }
025
026    public TObjectNameList getColumnList() {
027        return columnList;
028    }
029
030    public TConstant getConstant() {
031        return constant;
032    }
033
034    public TPTNodeList<TConstant> getConstantList() {
035        return constantList;
036    }
037
038    public void init(Object arg1){
039        if (arg1 instanceof  TObjectName){
040            column = (TObjectName)arg1;
041        }else if (arg1 instanceof TObjectNameList){
042            columnList   = (TObjectNameList)arg1;
043        }
044    }
045
046    public void init(Object arg1,Object arg2){
047        init(arg1);
048
049        if (arg2 != null){
050            TDummy dummy = (TDummy)arg2;
051            if (dummy.node1 instanceof TConstant){
052                constant = (TConstant)dummy.node1;
053            }else if (dummy.node1 instanceof  TPTNodeList){
054                constantList = (TPTNodeList)dummy.node1;
055            }else if (dummy.node1 instanceof TExpression){
056                this.constantExpr = (TExpression)dummy.node1;
057                if (this.constantExpr.getExpressionType() == EExpressionType.simple_constant_t){
058                    this.constant = this.constantExpr.getConstantOperand();
059                }
060            }
061        }
062    }
063
064    public void accept(TParseTreeVisitor v){
065        v.preVisit(this);
066        v.postVisit(this);
067    }
068
069    public void acceptChildren(TParseTreeVisitor v){
070        v.preVisit(this);
071        if (column != null) {
072            column.acceptChildren(v);
073        }
074        if (columnList != null) {
075            columnList.acceptChildren(v);
076        }
077        v.postVisit(this);
078    }
079
080    public void setColumn(TObjectName column) {
081        this.column = column;
082    }
083
084    public void setColumnList(TObjectNameList columnList) {
085        this.columnList = columnList;
086    }
087
088    public void setConstant(TConstant constant) {
089        this.constant = constant;
090    }
091
092    public void setConstantList(TPTNodeList<TConstant> constantList) {
093        this.constantList = constantList;
094    }
095
096    public TObjectName getAlias() {
097        return alias;
098    }
099
100    public void setAlias(TObjectName alias) {
101        this.alias = alias;
102    }
103}