001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.ESqlClause; 004import gudusoft.gsqlparser.TCustomSqlStatement; 005 006import java.util.ArrayList; 007 008/** 009 * SAP hana case join clause. 010 */ 011public class TCaseJoinClause extends TParseTreeNode{ 012 private ArrayList<TCaseJoinItem> caseJoinItems; 013 private TCaseJoinItem defaultJoinItem; 014 015 public ArrayList<TCaseJoinItem> getCaseJoinItems() { 016 return caseJoinItems; 017 } 018 019 public TCaseJoinItem getDefaultJoinItem() { 020 return defaultJoinItem; 021 } 022 023 public void init(Object arg1, Object arg2){ 024 caseJoinItems = (ArrayList<TCaseJoinItem>)arg1; 025 defaultJoinItem = (TCaseJoinItem)arg2; 026 } 027 028 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 029 for(int i=0;i<caseJoinItems.size();i++){ 030 caseJoinItems.get(i).doParse(psql, plocation); 031 } 032 033 if(defaultJoinItem != null){ 034 defaultJoinItem.doParse(psql, plocation); 035 } 036 } 037 038 public void accept(TParseTreeVisitor v){ 039 v.preVisit(this); 040 v.postVisit(this); 041 } 042 043 public void acceptChildren(TParseTreeVisitor v){ 044 v.preVisit(this); 045 for(int i=0;i<caseJoinItems.size();i++){ 046 caseJoinItems.get(i).acceptChildren(v); 047 } 048 if(defaultJoinItem != null){ 049 defaultJoinItem.acceptChildren(v); 050 } 051 052 v.postVisit(this); 053 } 054}