001package gudusoft.gsqlparser.nodes.teradata; 002 003import gudusoft.gsqlparser.ESqlClause; 004import gudusoft.gsqlparser.TCustomSqlStatement; 005import gudusoft.gsqlparser.nodes.*; 006 007/** 008 * teradata expand on clause 009 */ 010public class TExpandOnClause extends TParseTreeNode { 011 private TExpression expandExpression; 012 private TAliasClause expandColumnAlias; 013 private TExpression byIntervalLiteral; 014 private TObjectName anchorName; 015 private TConstant timeLiteral; 016 private TExpression periodExpression; 017 018 public void init(Object arg1, Object arg2){ 019 this.expandExpression = (TExpression)arg1; 020 this.expandColumnAlias = (TAliasClause)arg2; 021 } 022 023 public TExpression getExpandExpression() { 024 return expandExpression; 025 } 026 027 public TAliasClause getExpandColumnAlias() { 028 return expandColumnAlias; 029 } 030 031 public TExpression getByIntervalLiteral() { 032 return byIntervalLiteral; 033 } 034 035 public TObjectName getAnchorName() { 036 return anchorName; 037 } 038 039 public TConstant getTimeLiteral() { 040 return timeLiteral; 041 } 042 043 public TExpression getPeriodExpression() { 044 return periodExpression; 045 } 046 047 public void setPeriodExpression(TExpression periodExpression) { 048 this.periodExpression = periodExpression; 049 } 050 051 public void setByClause(TDummy dummy){ 052 if (dummy == null) return; 053 if (dummy.int1 == 1){ 054 this.byIntervalLiteral = (TExpression)dummy.node1; 055 }else if (dummy.int1 == 2){ 056 this.anchorName = (TObjectName)dummy.node1; 057 if (dummy.node2 != null){ 058 this.periodExpression = (TExpression)dummy.node2; 059 } 060 } 061 } 062 063 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 064 this.expandExpression.doParse(psql,plocation); 065 if (this.byIntervalLiteral != null){ 066 this.byIntervalLiteral.doParse(psql, plocation); 067 } 068 if (this.periodExpression != null){ 069 this.periodExpression.doParse(psql,plocation); 070 } 071 } 072 073 public void accept(TParseTreeVisitor v){ 074 v.preVisit(this); 075 v.postVisit(this); 076 } 077 078 public void acceptChildren(TParseTreeVisitor v){ 079 v.preVisit(this); 080 v.postVisit(this); 081 } 082 083 084 public void setExpandExpression(TExpression expandExpression) { 085 this.expandExpression = expandExpression; 086 } 087 088 public void setExpandColumnAlias(TAliasClause expandColumnAlias) { 089 this.expandColumnAlias = expandColumnAlias; 090 } 091 092 public void setByIntervalLiteral(TExpression byIntervalLiteral) { 093 this.byIntervalLiteral = byIntervalLiteral; 094 } 095 096 public void setAnchorName(TObjectName anchorName) { 097 this.anchorName = anchorName; 098 } 099 100 public void setTimeLiteral(TConstant timeLiteral) { 101 this.timeLiteral = timeLiteral; 102 } 103}