001package gudusoft.gsqlparser.nodes; 002/* 003 * Date: 2010-12-28 004 * Time: 11:11:23 005 */ 006 007import gudusoft.gsqlparser.ESetStatementType; 008import gudusoft.gsqlparser.ETransactionIsolationLevel; 009 010public class TSetSqlNode extends TParseTreeNode { 011 public TPTNodeList<TSetAssignment> getAssignments() { 012 return assignments; 013 } 014 015 //private TExpressionList exprList = null; 016 private TPTNodeList<TSetAssignment> assignments; 017 private ESetStatementType setStatementType; 018 private TObjectName characterSetName; 019 private TObjectName collationName; 020 private TObjectName userName; 021 private TObjectName password; 022 private ETransactionIsolationLevel isolationLevel; 023 024 025 //snowflake 026 027 public void setVariableName(TObjectName variableName) { 028 this.variableName = variableName; 029 } 030 031 public void setVariableNameList(TObjectNameList variableNameList) { 032 this.variableNameList = variableNameList; 033 } 034 035 public void setVariableValue(TExpression variableValue) { 036 this.variableValue = variableValue; 037 } 038 039 public void setVariableValueList(TExpressionList variableValueList) { 040 this.variableValueList = variableValueList; 041 } 042 043 public TObjectName getVariableName() { 044 045 return variableName; 046 } 047 048 public TObjectNameList getVariableNameList() { 049 return variableNameList; 050 } 051 052 public TExpression getVariableValue() { 053 return variableValue; 054 } 055 056 public TExpressionList getVariableValueList() { 057 return variableValueList; 058 } 059 060 private TObjectName variableName; 061 private TObjectNameList variableNameList; 062 private TExpression variableValue; 063 private TExpressionList variableValueList; 064 065 public ESetStatementType getSetStatementType() { 066 return setStatementType; 067 } 068 069 public void init(Object arg1){ 070 setStatementType = (ESetStatementType)arg1; 071 } 072 073 public void init(Object arg1,Object arg2){ 074 init(arg1); 075 switch (setStatementType){ 076 case variable: 077 if (arg2 instanceof TObjectName){ 078 this.variableName = (TObjectName) arg2; 079 }else{ 080 this.assignments = (TPTNodeList)arg2; 081 } 082 083 break; 084 case variableList: 085 variableNameList = (TObjectNameList) arg2; 086 this.variableName = variableNameList.getObjectName(0); 087 break; 088 case character_set: 089 case names: 090 characterSetName = (TObjectName)arg2; 091 break; 092 case password: 093 userName = (TObjectName)arg2; 094 break; 095 case transaction: 096 isolationLevel = (ETransactionIsolationLevel)arg2; 097 break; 098 case schema: 099 variableName = (TObjectName)arg2; 100 case reset: 101 variableName = (TObjectName)arg2; 102 default: 103 break; 104 } 105 } 106 107 public TObjectName getCharacterSetName() { 108 return characterSetName; 109 } 110 111 public TObjectName getCollationName() { 112 return collationName; 113 } 114 115 public ETransactionIsolationLevel getIsolationLevel() { 116 return isolationLevel; 117 } 118 119 public TObjectName getPassword() { 120 return password; 121 } 122 123 public TObjectName getUserName() { 124 return userName; 125 } 126 127 public void init(Object arg1,Object arg2,Object arg3){ 128 init(arg1,arg2); 129 switch (setStatementType){ 130 case names: 131 collationName = (TObjectName)arg3; 132 break; 133 case password: 134 password = (TObjectName)arg3; 135 break; 136 case variable: 137 if (arg3 instanceof TExpression){ 138 this.variableValue = (TExpression)arg3; 139 }else if (arg3 instanceof TExpressionList){ 140 this.variableValueList = (TExpressionList)arg3; 141 this.variableValue = this.variableValueList.getExpression(0); 142 } 143 144 if (this.variableValue == null){ 145 System.out.println("Variable value is null for "+variableName.toString()); 146 } 147 148 break; 149 case variableList: 150 if (arg3 instanceof TExpression){ 151 // subquery 152 this.variableValue = (TExpression)arg3; 153 }else{ 154 this.variableValueList = (TExpressionList)arg3; 155 this.variableValue = this.variableValueList.getExpression(0); 156 } 157 break; 158 default: 159 break; 160 } 161 } 162 163 164}