001package gudusoft.gsqlparser.nodes.dax; 002 003import gudusoft.gsqlparser.ESqlClause; 004import gudusoft.gsqlparser.TCustomSqlStatement; 005import gudusoft.gsqlparser.nodes.TExpression; 006import gudusoft.gsqlparser.nodes.TObjectNameList; 007import gudusoft.gsqlparser.nodes.TPTNodeList; 008 009/** 010 * Base class of function groupby() and summarize(). {@link gudusoft.gsqlparser.nodes.dax.TDaxGroupBy},{@link gudusoft.gsqlparser.nodes.dax.TDaxSummarize} 011 */ 012 013public class TDaxGroupByBase extends TDaxFunction { 014 015 public void init(Object arg1,Object arg2,Object arg3, Object arg4){ 016 init(arg1, arg2); 017 setTableExpr((TExpression)arg3); 018 setColumnNameList((TObjectNameList)arg4); 019 } 020 021 public void init(Object arg1,Object arg2,Object arg3, Object arg4, Object arg5){ 022 init(arg1,arg2,arg3,arg4); 023 setNameValues((TPTNodeList<TDaxNameExpression>)arg5); 024 025 } 026 027 028 029 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 030 031 psql.getDaxFunctionStack().push(this); 032 setReturnTable(parseTableExpr(this.getTableExpr(),psql,plocation,true)); 033 for(int i=0;i<getColumnNameList().size();i++){ 034 psql.linkColumnToTable(getColumnNameList().getObjectName(i),plocation); 035 036 } 037 if (getNameValues() != null){ 038 for(int i=0;i<getNameValues().size();i++){ 039 //getReturnTable().getLinkedColumns().addObjectName(getNameValues().getElement(i).getColumnName()); 040 getNameValues().getElement(i).getValueExpr().doParse(psql,plocation); 041 } 042 } 043 044 this.setReturnTable(getDefaultTable()); 045 046 psql.getDaxFunctionStack().pop(); 047 048 if (getReturnTable() != null){ 049 if (psql.getDaxFunctionStack().size() > 0){ 050 TDaxFunction function = psql.getDaxFunctionStack().peek(); 051 function.setDefaultTable(getReturnTable()); 052 } 053 } 054 055 } 056 057}