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
016    public TExecParameterList getParameterList() {
017        return parameterList;
018    }
019
020    public TExpressionList getArgs() {
021        return args;
022    }
023
024    public TObjectName getHostVariable() {
025        return hostVariable;
026    }
027
028    public TObjectName getIndicatorVariable() {
029        return indicatorVariable;
030    }
031
032    public TObjectName getRoutineName() {
033        return routineName;
034    }
035
036    public void init(Object arg1){
037        if (arg1 instanceof  TExpression){
038            routineExpr = (TExpression)arg1;
039            if (routineExpr.getExpressionType() == EExpressionType.function_t){
040                routineName = routineExpr.getFunctionCall().getFunctionName();
041                args = routineExpr.getFunctionCall().getArgs();
042            }
043        }else if (arg1 instanceof TObjectName){
044            routineName = (TObjectName)arg1;
045            routineName.setDbObjectType(EDbObjectType.function);
046        }else if (arg1 instanceof TExpressionList){
047            args = (TExpressionList)arg1;
048        }
049    }
050
051    public TExpression getRoutineExpr() {
052        return routineExpr;
053    }
054
055    public void init(Object arg1,Object arg2){
056        init(arg1);
057        if (arg2 instanceof  TObjectName){
058            hostVariable = (TObjectName)arg2;
059        }else if (arg2 instanceof TExpressionList){
060            args = (TExpressionList)arg2;
061        }else if (arg2 instanceof TExecParameterList){
062            parameterList = (TExecParameterList)arg2;
063        }
064
065    }
066
067    public void init(Object arg1,Object arg2,Object arg3){
068        init(arg1,arg2);
069        indicatorVariable = (TObjectName)arg3;
070    }
071
072
073}