001package gudusoft.gsqlparser.nodes; 002 003import gudusoft.gsqlparser.TSourceToken; 004 005public class TRoleOption extends TParseTreeNode { 006 007 private ERoleOption optionType; 008 private String password; 009 private String validUntil; 010 private int connectionLimit = -1; 011 012 public String getPassword() { 013 return password; 014 } 015 016 public ERoleOption getOptionType() { 017 return optionType; 018 } 019 020 public String getValidUntil() { 021 return validUntil; 022 } 023 024 public int getConnectionLimit() { 025 return connectionLimit; 026 } 027 028 public void init(Object arg1) { 029 TSourceToken token = (TSourceToken) arg1; 030 String text = token.toString(); 031 032 if (text.equalsIgnoreCase("LOGIN")) { 033 optionType = ERoleOption.login; 034 } else if (text.equalsIgnoreCase("NOLOGIN")) { 035 optionType = ERoleOption.nologin; 036 } else if (text.equalsIgnoreCase("SUPERUSER")) { 037 optionType = ERoleOption.superuser; 038 } else if (text.equalsIgnoreCase("NOSUPERUSER")) { 039 optionType = ERoleOption.nosuperuser; 040 } else if (text.equalsIgnoreCase("INHERIT")) { 041 optionType = ERoleOption.inherit; 042 } else if (text.equalsIgnoreCase("NOINHERIT")) { 043 optionType = ERoleOption.noinherit; 044 } else if (text.equalsIgnoreCase("CREATEDB")) { 045 optionType = ERoleOption.createdb; 046 } else if (text.equalsIgnoreCase("NOCREATEDB")) { 047 optionType = ERoleOption.nocreatedb; 048 } else if (text.equalsIgnoreCase("CREATEROLE")) { 049 optionType = ERoleOption.createrole; 050 } else if (text.equalsIgnoreCase("NOCREATEROLE")) { 051 optionType = ERoleOption.nocreaterole; 052 } else if (text.equalsIgnoreCase("REPLICATION")) { 053 optionType = ERoleOption.replication; 054 } else if (text.equalsIgnoreCase("NOREPLICATION")) { 055 optionType = ERoleOption.noreplication; 056 } else if (text.equalsIgnoreCase("BYPASSRLS")) { 057 optionType = ERoleOption.bypassrls; 058 } else if (text.equalsIgnoreCase("NOBYPASSRLS")) { 059 optionType = ERoleOption.nobypassrls; 060 } else if (text.equalsIgnoreCase("PASSWORD")) { 061 optionType = ERoleOption.password; 062 } else if (text.equalsIgnoreCase("VALID")) { 063 optionType = ERoleOption.validuntil; 064 } else if (text.equalsIgnoreCase("CONNECTION")) { 065 optionType = ERoleOption.connectionlimit; 066 } 067 } 068 069 public void init(Object arg1, Object arg2) { 070 this.init(arg1); 071 072 if (optionType == null) { 073 return; 074 } 075 076 switch (optionType) { 077 case password: 078 if (arg2 instanceof TSourceToken) { 079 this.password = ((TSourceToken) arg2).toString(); 080 } 081 break; 082 case validuntil: 083 if (arg2 instanceof TSourceToken) { 084 this.validUntil = ((TSourceToken) arg2).toString(); 085 } 086 break; 087 case connectionlimit: 088 if (arg2 instanceof TSourceToken) { 089 try { 090 this.connectionLimit = Integer.parseInt(((TSourceToken) arg2).toString()); 091 } catch (NumberFormatException e) { 092 // ignore 093 } 094 } 095 break; 096 default: 097 break; 098 } 099 100 } 101 102 public void accept(TParseTreeVisitor v){ 103 v.preVisit(this); 104 v.postVisit(this); 105 } 106 107 public void acceptChildren(TParseTreeVisitor v){ 108 v.preVisit(this); 109 v.postVisit(this); 110 } 111 112}