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}