001package gudusoft.gsqlparser.nodes;
002
003import gudusoft.gsqlparser.ESqlClause;
004import gudusoft.gsqlparser.TCustomSqlStatement;
005
006/**
007 * Gruping set item that used in TGroupingSet
008 * Content of this item can be a TRollupCube instance or a TGroupingExpressionItem instance
009 * @see  TGroupingSet
010 * @see TRollupCube
011 * @see TGroupingExpressionItem
012
013*/
014public class TGroupingSetItem extends TParseTreeNode {
015    private TRollupCube rollupCubeClause;
016    private TGroupingExpressionItem expressionItem;
017    private TExpression grouping_expression;
018
019    public void init(Object arg1)
020    {
021        if (arg1 instanceof TRollupCube)
022            {rollupCubeClause = (TRollupCube)arg1;}
023        else if (arg1 instanceof TGroupingExpressionItem){
024            {expressionItem = (TGroupingExpressionItem)arg1;}
025        }else if (arg1 instanceof TExpression){
026            grouping_expression = (TExpression)arg1;
027        }
028    }
029
030    public void doParse(TCustomSqlStatement psql, ESqlClause plocation){
031        if (rollupCubeClause != null){
032          rollupCubeClause.doParse(psql,plocation);
033        }else
034        if (expressionItem != null){
035          expressionItem.doParse(psql,plocation);  
036        }
037        else if (grouping_expression != null){
038            grouping_expression.doParse(psql,plocation);
039        }
040    }
041
042    public TGroupingExpressionItem getExpressionItem() {
043        return expressionItem;
044    }
045
046    public TRollupCube getRollupCubeClause() {
047        return rollupCubeClause;
048    }
049
050    public void accept(TParseTreeVisitor v){
051        v.preVisit(this);
052        v.postVisit(this);
053    }
054
055    public TExpression getGrouping_expression() {
056        return grouping_expression;
057    }
058
059    public void acceptChildren(TParseTreeVisitor v){
060        v.preVisit(this);
061        if (rollupCubeClause != null){
062
063            rollupCubeClause.acceptChildren(v);
064        }else
065        if (expressionItem != null){
066            expressionItem.acceptChildren(v);
067        }
068        else if (grouping_expression != null){
069            grouping_expression.acceptChildren(v);
070        }
071        v.postVisit(this);
072    }
073
074    public void setRollupCubeClause(TRollupCube rollupCubeClause) {
075        this.rollupCubeClause = rollupCubeClause;
076    }
077
078    public void setExpressionItem(TGroupingExpressionItem expressionItem) {
079        this.expressionItem = expressionItem;
080    }
081
082    public void setGrouping_expression(TExpression grouping_expression) {
083        this.grouping_expression = grouping_expression;
084    }
085}