001package gudusoft.gsqlparser.nodes.dax; 002 003 004import gudusoft.gsqlparser.ESqlClause; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * DAX addmissingitems function 010 */ 011public class TDaxAddMissingItems extends TDaxFunction { 012 private TObjectNameList showAllColumnList; 013 private TObjectNameList groupingColumnList; 014 private TObjectNameList filterTableList; 015 016 public void init(Object arg1, Object arg2,Object arg3,Object arg4, Object arg5){ 017 init(arg1,arg2); 018 setTableExpr((TExpression) arg3); 019 this.showAllColumnList = (TObjectNameList)arg4; 020 this.groupingColumnList = (TObjectNameList)arg5; 021 } 022 023 public void init(Object arg1, Object arg2,Object arg3,Object arg4, Object arg5,Object arg6){ 024 init(arg1,arg2,arg3,arg4,arg5); 025 this.filterTableList = (TObjectNameList)arg6; 026 } 027 028 public TObjectNameList getShowAllColumnList() { 029 return showAllColumnList; 030 } 031 032 public TObjectNameList getGroupingColumnList() { 033 return groupingColumnList; 034 } 035 036 037 public TObjectNameList getFilterTableList() { 038 return filterTableList; 039 } 040 041 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 042 psql.getDaxFunctionStack().push(this); 043 044 parseTableExpr(getTableExpr(), psql, plocation,true); 045 for(int i=0;i<showAllColumnList.size();i++){ 046 getDefaultTable().getLinkedColumns().addObjectName(showAllColumnList.getObjectName(i)); 047 } 048 for (int i=0;i<groupingColumnList.size();i++){ 049 getDefaultTable().getLinkedColumns().addObjectName(groupingColumnList.getObjectName(i)); 050 } 051 if (filterTableList != null){ 052 for(int i=0;i<filterTableList.size();i++){ 053 psql.addToTables(new TTable(filterTableList.getObjectName(i))); 054 } 055 056 } 057 psql.getDaxFunctionStack().pop(); 058 059 return; 060 } 061 062 public void accept(TParseTreeVisitor v){ 063 v.preVisit(this); 064 v.postVisit(this); 065 } 066 067 public void acceptChildren(TParseTreeVisitor v) { 068 v.preVisit(this); 069 v.postVisit(this); 070 } 071 072}