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}