001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.*;
008
009public class TCallStatement extends TCustomSqlStatement {
010
011    public TCallStatement(EDbVendor dbvendor) {
012        super(dbvendor);
013        sqlstatementtype = ESqlStatementType.sstcall;
014    }
015
016    private TObjectName routineName;
017    private TObjectName hostVariable;
018    private TObjectName indicatorVariable;
019    private TExpressionList args;
020    private TExpression routineExpr;
021    private TExecParameterList parameterList;
022
023    public TExecParameterList getParameterList() {
024        return parameterList;
025    }
026
027    public TExpressionList getArgs() {
028        return args;
029    }
030
031    public TObjectName getHostVariable() {
032        return hostVariable;
033    }
034
035    public TObjectName getIndicatorVariable() {
036        return indicatorVariable;
037    }
038
039    public TObjectName getRoutineName() {
040        return routineName;
041    }
042
043    public TExpression getRoutineExpr() {
044        return routineExpr;
045    }
046
047    public int doParseStatement(TCustomSqlStatement psql) {
048        if (rootNode == null) return -1;
049        super.doParseStatement(psql);
050        TCallSqlNode callSqlNode = (TCallSqlNode)rootNode;
051
052        routineExpr = callSqlNode.getRoutineExpr();
053
054        args = callSqlNode.getArgs();
055        routineName = callSqlNode.getRoutineName();
056        indicatorVariable = callSqlNode.getIndicatorVariable();
057        hostVariable = callSqlNode.getHostVariable();
058        parameterList = callSqlNode.getParameterList();
059
060        return 0;
061    }
062
063    public void accept(TParseTreeVisitor v){
064        v.preVisit(this);
065        v.postVisit(this);
066    }
067
068    public void setRoutineName(TObjectName routineName) {
069        this.routineName = routineName;
070    }
071
072    public void setHostVariable(TObjectName hostVariable) {
073        this.hostVariable = hostVariable;
074    }
075
076    public void setIndicatorVariable(TObjectName indicatorVariable) {
077        this.indicatorVariable = indicatorVariable;
078    }
079
080    public void setArgs(TExpressionList args) {
081        this.args = args;
082    }
083
084    public void setRoutineExpr(TExpression routineExpr) {
085        this.routineExpr = routineExpr;
086    }
087
088    public void setParameterList(TExecParameterList parameterList) {
089        this.parameterList = parameterList;
090    }
091
092    public void acceptChildren(TParseTreeVisitor v){
093        v.preVisit(this);
094
095        v.postVisit(this);
096    }
097
098}