001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.ESqlClause; 004import gudusoft.gsqlparser.TBaseType; 005import gudusoft.gsqlparser.TCustomSqlStatement; 006import gudusoft.gsqlparser.TSourceToken; 007 008/** 009 * Parameter of execute statement in SQL Server,teradata 010*/ 011public class TExecParameter extends TParseTreeNode { 012 private TObjectName parameterName = null; 013 private TExpression parameterValue = null; 014 private int parameterMode = TBaseType.parameter_mode_default; 015 016 /** 017 * this parameter can be out or output mode. 018 * @return 019 */ 020 public int getParameterMode() { 021 return parameterMode; 022 } 023 024 public TObjectName getParameterName() { 025 return parameterName; 026 } 027 028 public TExpression getParameterValue() { 029 return parameterValue; 030 } 031 032 public void init(Object arg1) { 033 this.parameterValue = (TExpression) arg1; 034 } 035 036 public void init(Object arg1,Object arg2) { 037 init(arg1); 038 if (arg2 != null){ 039 this.parameterName = (TObjectName) arg2; 040 } 041 042 } 043 044 public void init(Object arg1,Object arg2,Object arg3){ 045 init(arg1,arg2); 046 if (arg3 != null){ 047 TSourceToken st = (TSourceToken)arg3; 048 if(st.toString().equalsIgnoreCase("out")){ 049 this.parameterMode = TBaseType.parameter_mode_out; 050 }else if (st.toString().equalsIgnoreCase("output")){ 051 this.parameterMode = TBaseType.parameter_mode_output; 052 } 053 } 054 055 } 056 057 public void doParse(TCustomSqlStatement psql, ESqlClause plocation){ 058 parameterValue.doParse(psql,plocation); 059 060 } 061 062 public void accept(TParseTreeVisitor v){ 063 v.preVisit(this); 064 v.postVisit(this); 065 } 066 public void acceptChildren(TParseTreeVisitor v){ 067 v.preVisit(this); 068 v.postVisit(this); 069 } 070 071 public void setParameterName(TObjectName parameterName) { 072 this.parameterName = parameterName; 073 } 074 075 public void setParameterValue(TExpression parameterValue) { 076 this.parameterValue = parameterValue; 077 } 078 079 public void setParameterMode(int parameterMode) { 080 this.parameterMode = parameterMode; 081 } 082}