001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.ESqlClause; 004import gudusoft.gsqlparser.TCustomSqlStatement; 005 006/** 007 * SAP hana case join when item. 008 */ 009public class TCaseJoinItem extends TParseTreeNode{ 010 private TExpression whenCondition; 011 private TObjectNameList columnList; 012 private TFromTable joinTable; 013 014 private TExpression joinCondition; 015 016 public TExpression getJoinCondition() { 017 return joinCondition; 018 } 019 020 public TObjectNameList getColumnList() { 021 return columnList; 022 } 023 024 public TExpression getWhenCondition() { 025 return whenCondition; 026 } 027 028 public void setWhenCondition(TExpression whenCondition) { 029 this.whenCondition = whenCondition; 030 } 031 032 public void init( Object arg1,Object arg2,Object arg3){ 033 this.columnList = (TObjectNameList) arg1; 034 this.joinTable = (TFromTable) arg2; 035 this.joinCondition = (TExpression) arg3; 036 } 037 038 public void init(Object arg1,Object arg2,Object arg3,Object arg4){ 039 this.whenCondition = (TExpression) arg1; 040 init(arg2,arg3,arg4); 041 } 042 043 public TTable getTableReference() { 044 return tableReference; 045 } 046 047 private TTable tableReference; 048 049 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 050 tableReference = psql.analyzeFromTable(joinTable,false, plocation); 051 joinCondition.doParse(psql,plocation); 052 if (whenCondition != null){ 053 whenCondition.doParse(psql,plocation); 054 } 055 } 056 057 public void accept(TParseTreeVisitor v){ 058 v.preVisit(this); 059 v.postVisit(this); 060 } 061 062 public void acceptChildren(TParseTreeVisitor v){ 063 v.preVisit(this); 064 if (whenCondition != null) 065 whenCondition.accept(v); 066 columnList.accept(v); 067 joinCondition.accept(v); 068 069 v.postVisit(this); 070 } 071}