001package gudusoft.gsqlparser.nodes.mssql; 002 003import gudusoft.gsqlparser.EExecuteAsOption; 004import gudusoft.gsqlparser.TSourceToken; 005import gudusoft.gsqlparser.nodes.TParseTreeNode; 006import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 007 008/** 009 * SQL Server execute as clause 010 */ 011public class TExecuteAsClause extends TParseTreeNode { 012 013 private EExecuteAsOption executeAsOption; 014 private String userName; 015 016 017 public void setExecuteAsOption(EExecuteAsOption executeAsOption) { 018 this.executeAsOption = executeAsOption; 019 } 020 021 public EExecuteAsOption getExecuteAsOption() { 022 023 return executeAsOption; 024 } 025 026 public void setUserName(String userName) { 027 this.userName = userName; 028 } 029 030 public String getUserName() { 031 032 return userName; 033 } 034 035 public void init(Object arg1){ 036 if (arg1 instanceof TSourceToken){ 037 String str = ((TSourceToken)arg1).toString(); 038 if (str.startsWith("'")){ 039 executeAsOption = EExecuteAsOption.eaoString; 040 userName = str; 041 }else{ 042 if (str.equalsIgnoreCase("OWNER")){ 043 executeAsOption = EExecuteAsOption.eaoOwner; 044 }else if (str.equalsIgnoreCase("CALLER")){ 045 executeAsOption = EExecuteAsOption.eaoCaller; 046 }else if (str.equalsIgnoreCase("SELF")){ 047 executeAsOption = EExecuteAsOption.eaoSelf; 048 }else{ 049 executeAsOption = EExecuteAsOption.eaoUser; 050 userName = str; 051 052 } 053 } 054 } 055 056 } 057 058 public void accept(TParseTreeVisitor v){ 059 v.preVisit(this); 060 v.postVisit(this); 061 } 062 063 public void acceptChildren(TParseTreeVisitor v){ 064 v.preVisit(this); 065 v.postVisit(this); 066 } 067}