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}