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}