001package gudusoft.gsqlparser.stmt.db2;
002
003import gudusoft.gsqlparser.*;
004import gudusoft.gsqlparser.nodes.TCaseExpression;
005import gudusoft.gsqlparser.nodes.TExpression;
006import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
007import gudusoft.gsqlparser.nodes.TWhenClauseItemList;
008
009public class TDb2CaseStmt extends TCustomDb2Stmt {
010     public TDb2CaseStmt (EDbVendor dbvendor){
011        super(dbvendor);
012        sqlstatementtype = ESqlStatementType.sstdb2casestmt ;
013        }
014
015    void buildsql() {
016    }
017
018    void clear() {
019    }
020
021    String getasprettytext() {
022        return "";
023    }
024
025    void iterate(TVisitorAbs pvisitor) {
026    }
027
028    public int doParseStatement(TCustomSqlStatement psql) {
029        if (rootNode == null) return -1;
030        super.doParseStatement(psql);
031
032        TCaseExpression caseNode = (TCaseExpression)rootNode;
033        this.expr = caseNode.getInput_expr();
034        if (this.expr != null){
035            this.expr.doParse(this,ESqlClause.unknown);
036        }
037        this.whenClauseItemList = caseNode.getWhenClauseItemList();
038        this.whenClauseItemList.doParse(this,ESqlClause.unknown);
039
040        if (caseNode.getElse_statement_node_list() != null){
041            caseNode.getElse_statement_node_list().doParse(psql,ESqlClause.unknown);
042            for (int i=0;i<caseNode.getElse_statement_node_list().size();i++){
043              this.getElseStatementList().add(caseNode.getElse_statement_node_list().getStatementSqlNode(i).getStmt());
044            }
045        }
046
047        return 0;
048    }
049
050    private TExpression expr = null;
051
052    public TExpression getExpr() {
053        return expr;
054    }
055
056    private TWhenClauseItemList whenClauseItemList = null;
057
058    public TWhenClauseItemList getWhenClauseItemList() {
059        return whenClauseItemList;
060    }
061
062    public TStatementList getElseStatementList() {
063        if (elseStatementList == null){
064            elseStatementList = new TStatementList();
065        }
066        return elseStatementList;
067    }
068
069    private TStatementList elseStatementList = null;
070
071    public void accept(TParseTreeVisitor v){
072        v.preVisit(this);
073        if (this.expr != null){ expr.accept(v);}
074        whenClauseItemList.accept(v);
075        if ( this.getElseStatementList().size() > 0)  this.getElseStatementList().accept(v);
076        v.postVisit(this);
077    }
078
079    public void setExpr(TExpression expr) {
080        this.expr = expr;
081    }
082
083    public void setWhenClauseItemList(TWhenClauseItemList whenClauseItemList) {
084        this.whenClauseItemList = whenClauseItemList;
085    }
086
087    public void setElseStatementList(TStatementList elseStatementList) {
088        this.elseStatementList = elseStatementList;
089    }
090}