001package gudusoft.gsqlparser.nodes.dax; 002 003 004import gudusoft.gsqlparser.ESqlClause; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.nodes.*; 007 008/** 009 * DAX substitutewithindex function 010 */ 011public class TDaxSubstituteWithIndex extends TDaxFunction { 012 013 private TObjectName indexColumnName; 014 private TExpression indexColumnTableExpr; 015 016 public void init(Object arg1, Object arg2,Object arg3,Object arg4, Object arg5){ 017 init(arg1,arg2); 018 setTableExpr((TExpression) arg3); 019 indexColumnName = (TObjectName)arg4; 020 this.indexColumnTableExpr = (TExpression)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 setSortClause((TOrderBy)arg6); 026 } 027 028 public TObjectName getIndexColumnName() { 029 return indexColumnName; 030 } 031 032 public TExpression getIndexColumnTableExpr() { 033 return indexColumnTableExpr; 034 } 035 036 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 037 psql.getDaxFunctionStack().push(this); 038 039 TTable retTable = parseTableExpr(getTableExpr(),psql,plocation,true); 040 retTable.getLinkedColumns().addObjectName(indexColumnName); 041 retTable = parseTableExpr (indexColumnTableExpr,psql,plocation,true); 042 retTable.getLinkedColumns().addObjectName(indexColumnName); 043 if (getSortClause() != null){ 044 getSortClause().doParse(psql,plocation); 045 } 046 psql.getDaxFunctionStack().pop(); 047 return; 048 } 049 050 public void accept(TParseTreeVisitor v){ 051 v.preVisit(this); 052 v.postVisit(this); 053 } 054 055 public void acceptChildren(TParseTreeVisitor v) { 056 v.preVisit(this); 057 v.postVisit(this); 058 } 059 060}