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    private TParseTreeNode chainedQuery;
023
024    public TParseTreeNode getChainedQuery() {
025        return chainedQuery;
026    }
027
028    public TExecParameterList getParameterList() {
029        return parameterList;
030    }
031
032    public TExpressionList getArgs() {
033        return args;
034    }
035
036    public TObjectName getHostVariable() {
037        return hostVariable;
038    }
039
040    public TObjectName getIndicatorVariable() {
041        return indicatorVariable;
042    }
043
044    public TObjectName getRoutineName() {
045        return routineName;
046    }
047
048    public TExpression getRoutineExpr() {
049        return routineExpr;
050    }
051
052    public int doParseStatement(TCustomSqlStatement psql) {
053        if (rootNode == null) return -1;
054        super.doParseStatement(psql);
055        TCallSqlNode callSqlNode = (TCallSqlNode)rootNode;
056
057        routineExpr = callSqlNode.getRoutineExpr();
058
059        args = callSqlNode.getArgs();
060        routineName = callSqlNode.getRoutineName();
061        indicatorVariable = callSqlNode.getIndicatorVariable();
062        hostVariable = callSqlNode.getHostVariable();
063        parameterList = callSqlNode.getParameterList();
064        chainedQuery = callSqlNode.getChainedQuery();
065
066        return 0;
067    }
068
069    public void accept(TParseTreeVisitor v){
070        v.preVisit(this);
071        v.postVisit(this);
072    }
073
074    public void setRoutineName(TObjectName routineName) {
075        this.routineName = routineName;
076    }
077
078    public void setHostVariable(TObjectName hostVariable) {
079        this.hostVariable = hostVariable;
080    }
081
082    public void setIndicatorVariable(TObjectName indicatorVariable) {
083        this.indicatorVariable = indicatorVariable;
084    }
085
086    public void setArgs(TExpressionList args) {
087        this.args = args;
088    }
089
090    public void setRoutineExpr(TExpression routineExpr) {
091        this.routineExpr = routineExpr;
092    }
093
094    public void setParameterList(TExecParameterList parameterList) {
095        this.parameterList = parameterList;
096    }
097
098    public void acceptChildren(TParseTreeVisitor v){
099        v.preVisit(this);
100
101        v.postVisit(this);
102    }
103
104}