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}