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}