001package gudusoft.gsqlparser.stmt.db2;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.*;
005
006public class TDb2SetVariableStmt extends TCustomDb2Stmt {
007     public TDb2SetVariableStmt(EDbVendor dbvendor){
008        super(dbvendor);
009        sqlstatementtype = ESqlStatementType.sstdb2set ;
010        }
011
012    void buildsql() {
013    }
014
015    void clear() {
016    }
017
018    String getasprettytext() {
019        return "";
020    }
021
022    void iterate(TVisitorAbs pvisitor) {
023    }
024
025    public TPTNodeList<TSetAssignment> getAssignments() {
026        return assignments;
027    }
028
029    public int doParseStatement(TCustomSqlStatement psql) {
030        if (rootNode == null) return -1;
031        super.doParseStatement(psql);
032
033        TSetSqlNode setSqlNode = (TSetSqlNode)rootNode;
034        //exprList = setSqlNode.getExprList();
035
036        assignments = setSqlNode.getAssignments();
037        for (int i=0;i<assignments.size();i++){
038            assignments.getElement(i).getParameterValue().doParse(this,ESqlClause.setVariable);
039//            TExpression expr = assignments.getElement(i).getExpression();
040//            if (expr.getExpressionType() == EExpressionType.simple_comparison_t){
041//                expr.setExpressionType(EExpressionType.assignment_t);
042//                expr.doParse(this,ESqlClause.setVariable);
043//            }
044        }
045
046        return 0;
047    }
048
049    public TExpressionList getExprList() {
050        return exprList;
051    }
052
053    private TExpressionList exprList = null;
054    private TPTNodeList<TSetAssignment> assignments;
055
056    public void accept(TParseTreeVisitor v){
057        v.preVisit(this);
058        v.postVisit(this);
059    }
060
061    public void acceptChildren(TParseTreeVisitor v){
062        v.preVisit(this);
063        assignments.accept(v);
064        v.postVisit(this);
065    }
066
067    public void setExprList(TExpressionList exprList) {
068        this.exprList = exprList;
069    }
070
071    public void setAssignments(TPTNodeList<TSetAssignment> assignments) {
072        this.assignments = assignments;
073    }
074}