001package gudusoft.gsqlparser.nodes; 002 003 004import gudusoft.gsqlparser.EExpressionType; 005import gudusoft.gsqlparser.ESetScope; 006import gudusoft.gsqlparser.TSourceToken; 007 008 009public class TSetAssignment extends TParseTreeNode { 010 011 private TExpression expression; 012 private ESetScope setScope = ESetScope.defaultScope; 013 014 private TObjectName parameterName; 015 private TExpression parameterValue; 016 017 public TObjectName getParameterName() { 018 return parameterName; 019 } 020 021 public TExpression getParameterValue() { 022 return parameterValue; 023 } 024 025 public TExpression getExpression() { 026 return expression; 027 } 028 029 public ESetScope getSetScope() { 030 return setScope; 031 } 032 033 public void init(Object arg1,Object arg2,Object arg3){ 034 init(arg1,arg2); 035 if (arg3 != null){ 036 TSourceToken st =(TSourceToken)arg3; 037 if (st.toString().equalsIgnoreCase("global")){ 038 setScope = ESetScope.global; 039 }else if (st.toString().equalsIgnoreCase("session")){ 040 setScope = ESetScope.session; 041 } 042 } 043 } 044 045 /** 046 * used in hive set statement 047 * @param arg1 048 */ 049 public void init(Object arg1){ 050 expression = (TExpression)arg1; 051 if ((expression.getLeftOperand()!= null) && (expression.getLeftOperand().getExpressionType() == EExpressionType.simple_object_name_t)){ 052 parameterName = expression.getLeftOperand().getObjectOperand(); 053 parameterValue = expression.getRightOperand(); 054 } 055 056 } 057 058 public void init(Object arg1,Object arg2){ 059 parameterName = (TObjectName)arg1; 060 parameterValue = (TExpression)arg2; 061 062 if ((arg1 == null)&&(arg2 instanceof TExpression)){ 063 expression = (TExpression) arg2; 064 if ((expression.getLeftOperand() != null)&&(expression.getLeftOperand().getExpressionType() == EExpressionType.simple_object_name_t)){ 065 parameterName = expression.getLeftOperand().getObjectOperand(); 066 parameterValue = expression.getRightOperand(); 067 } 068 } 069 } 070 071 public void accept(TParseTreeVisitor v){ 072 v.preVisit(this); 073 v.postVisit(this); 074 } 075 076 public void acceptChildren(TParseTreeVisitor v){ 077 v.preVisit(this); 078 v.postVisit(this); 079 } 080 081 public void setExpression(TExpression expression) { 082 this.expression = expression; 083 } 084 085 public void setSetScope(ESetScope setScope) { 086 this.setScope = setScope; 087 } 088}