001package gudusoft.gsqlparser.stmt.teradata;
002
003import gudusoft.gsqlparser.ESqlClause;
004import gudusoft.gsqlparser.TCustomSqlStatement;
005import gudusoft.gsqlparser.EDbVendor;
006import gudusoft.gsqlparser.ESqlStatementType;
007import gudusoft.gsqlparser.nodes.*;
008
009public class TTeradataExecute extends TCustomSqlStatement {
010
011    public TTeradataExecute(EDbVendor dbvendor) {
012        super(dbvendor);
013        sqlstatementtype = ESqlStatementType.sstteradataexecute;
014    }
015
016    private TObjectName macroName;
017    private TExecParameterList parameters;
018
019    public TObjectName getMacroName() {
020        return macroName;
021    }
022
023
024    public TExecParameterList getParameters() {
025        return parameters;
026    }
027
028    public int doParseStatement(TCustomSqlStatement psql) {
029        if (rootNode == null) return -1;
030        super.doParseStatement(psql);
031        TExecuteSqlNode executeSqlNode = (TExecuteSqlNode)rootNode;
032        macroName = executeSqlNode.getModuleName();
033        parameters = executeSqlNode.getParameters();
034
035        if (parameters != null){
036            for(int i=0;i<parameters.size();i++){
037                parameters.getExecParameter(i).doParse(this,ESqlClause.unknown);
038            }
039        }
040        return 0;
041    }
042
043    public void accept(TParseTreeVisitor v){
044        v.preVisit(this);
045        v.postVisit(this);
046    }
047
048    public void acceptChildren(TParseTreeVisitor v){
049        v.preVisit(this);
050        v.postVisit(this);
051    }
052
053    public void setMacroName(TObjectName macroName) {
054        this.macroName = macroName;
055    }
056
057    public void setParameters(TExecParameterList parameters) {
058        this.parameters = parameters;
059    }
060}