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
010    public String getPassword() {
011        return password;
012    }
013
014    public ERoleOption getOptionType() {
015        return optionType;
016    }
017
018    public void init(Object arg1) {
019        TSourceToken token = (TSourceToken) arg1;
020        String text = token.toString();
021
022        if (text.equalsIgnoreCase("LOGIN")) {
023            optionType = ERoleOption.login;
024        } else if (text.equalsIgnoreCase("NOLOGIN")) {
025            optionType = ERoleOption.nologin;
026        } else if (text.equalsIgnoreCase("SUPERUSER")) {
027            optionType = ERoleOption.superuser;
028        } else if (text.equalsIgnoreCase("NOSUPERUSER")) {
029            optionType = ERoleOption.nosuperuser;
030        } else if (text.equalsIgnoreCase("INHERIT")) {
031            optionType = ERoleOption.inherit;
032        } else if (text.equalsIgnoreCase("NOINHERIT")) {
033            optionType = ERoleOption.noinherit;
034        } else if (text.equalsIgnoreCase("CREATEDB")) {
035            optionType = ERoleOption.createdb;
036        } else if (text.equalsIgnoreCase("NOCREATEDB")) {
037            optionType = ERoleOption.nocreatedb;
038        } else if (text.equalsIgnoreCase("CREATEROLE")) {
039            optionType = ERoleOption.createrole;
040        } else if (text.equalsIgnoreCase("NOCREATEROLE")) {
041            optionType = ERoleOption.nocreaterole;
042        } else if (text.equalsIgnoreCase("REPLICATION")) {
043            optionType = ERoleOption.replication;
044        } else if (text.equalsIgnoreCase("NOREPLICATION")) {
045            optionType = ERoleOption.noreplication;
046        } else if (text.equalsIgnoreCase("PASSWORD")) {
047            optionType = ERoleOption.password;
048        }
049    }
050
051    public void init(Object arg1, Object arg2) {
052        this.init(arg1);
053
054        switch (optionType) {
055            case password:
056                if (arg2 instanceof TSourceToken) { // for Sconst
057                    this.password = ((TSourceToken) arg2).toString();
058                } else if (arg2 instanceof TSourceToken) { // for RW_NULL
059                    this.password = ((TSourceToken) arg2).toString();
060                }
061                break;
062            default:
063                break;
064        }
065
066    }
067
068    public void accept(TParseTreeVisitor v){
069        v.preVisit(this);
070        v.postVisit(this);
071    }
072
073    public void acceptChildren(TParseTreeVisitor v){
074        v.preVisit(this);
075        v.postVisit(this);
076    }    
077
078}