001package gudusoft.gsqlparser.nodes; 002 003 004import gudusoft.gsqlparser.EDbObjectType; 005import gudusoft.gsqlparser.EExpressionType; 006 007 008public class TCallSqlNode extends TParseTreeNode { 009 private TExpression routineExpr; 010 private TObjectName hostVariable; 011 private TObjectName indicatorVariable; 012 private TExpressionList args; 013 private TObjectName routineName; 014 private TExecParameterList parameterList; 015 private TParseTreeNode chainedQuery; 016 017 public TParseTreeNode getChainedQuery() { 018 return chainedQuery; 019 } 020 021 public void setChainedQuery(TParseTreeNode chainedQuery) { 022 this.chainedQuery = chainedQuery; 023 } 024 025 public TExecParameterList getParameterList() { 026 return parameterList; 027 } 028 029 public TExpressionList getArgs() { 030 return args; 031 } 032 033 public TObjectName getHostVariable() { 034 return hostVariable; 035 } 036 037 public void setHostVariable(TObjectName hostVariable) { 038 this.hostVariable = hostVariable; 039 } 040 041 public TObjectName getIndicatorVariable() { 042 return indicatorVariable; 043 } 044 045 public TObjectName getRoutineName() { 046 return routineName; 047 } 048 049 public void init(Object arg1){ 050 if (arg1 instanceof TExpression){ 051 routineExpr = (TExpression)arg1; 052 if (routineExpr.getExpressionType() == EExpressionType.function_t){ 053 routineName = routineExpr.getFunctionCall().getFunctionName(); 054 args = routineExpr.getFunctionCall().getArgs(); 055 } 056 }else if (arg1 instanceof TObjectName){ 057 routineName = (TObjectName)arg1; 058 routineName.setDbObjectType(EDbObjectType.function); 059 }else if (arg1 instanceof TExpressionList){ 060 args = (TExpressionList)arg1; 061 } 062 } 063 064 public TExpression getRoutineExpr() { 065 return routineExpr; 066 } 067 068 public void init(Object arg1,Object arg2){ 069 init(arg1); 070 if (arg2 instanceof TObjectName){ 071 hostVariable = (TObjectName)arg2; 072 }else if (arg2 instanceof TExpressionList){ 073 args = (TExpressionList)arg2; 074 }else if (arg2 instanceof TExecParameterList){ 075 parameterList = (TExecParameterList)arg2; 076 } 077 078 } 079 080 public void init(Object arg1,Object arg2,Object arg3){ 081 init(arg1,arg2); 082 indicatorVariable = (TObjectName)arg3; 083 } 084 085 086}