001package gudusoft.gsqlparser.nodes.dax;
002
003
004import gudusoft.gsqlparser.ESqlClause;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.*;
007import gudusoft.gsqlparser.stmt.dax.TDaxExprStmt;
008
009/**
010 * DAX datatable function
011 */
012public class TDaxDatatable  extends TDaxFunction {
013
014    private TColumnDefinitionList columnDefinitionList = null;
015    private TPTNodeList<TExpressionList> valuesList = null;
016
017    public TColumnDefinitionList getColumnDefinitionList() {
018        return columnDefinitionList;
019    }
020
021    public TPTNodeList<TExpressionList> getValuesList() {
022        return valuesList;
023    }
024
025    public void doParse(TCustomSqlStatement psql, ESqlClause plocation){
026        psql.getDaxFunctionStack().push(this);
027
028        for(int i=0;i<columnDefinitionList.size();i++){
029            ((TDaxExprStmt)psql).getDefaultTable().getLinkedColumns().addObjectName(columnDefinitionList.getColumn(i).getColumnName());
030        }
031
032        psql.getDaxFunctionStack().pop();
033        return;
034    }
035
036    public void init(Object arg1, Object arg2,Object arg3, Object arg4){
037        init(arg1,arg2);
038        columnDefinitionList = (TColumnDefinitionList)arg3;
039        valuesList = (TPTNodeList<TExpressionList>)arg4;
040    }
041
042    public void accept(TParseTreeVisitor v){
043        v.preVisit(this);
044        v.postVisit(this);
045    }
046
047    public void acceptChildren(TParseTreeVisitor v) {
048        v.preVisit(this);
049        v.postVisit(this);
050    }
051
052}