001package gudusoft.gsqlparser.stmt;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.TSourceToken;
008import gudusoft.gsqlparser.nodes.TDummy;
009import gudusoft.gsqlparser.nodes.TObjectName;
010import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
011
012public class TCreateRoleStmt extends TCustomSqlStatement {
013
014    private TObjectName roleName;
015
016    public void setRoleName(TObjectName roleName) {
017        this.roleName = roleName;
018    }
019
020    public TObjectName getRoleName() {
021
022        return roleName;
023    }
024
025    public TCreateRoleStmt(EDbVendor dbvendor) {
026        super(dbvendor);
027        sqlstatementtype = ESqlStatementType.sstcreaterole;
028    }
029
030    public int doParseStatement(TCustomSqlStatement psql) {
031        if (rootNode == null) return -1;
032        super.doParseStatement(psql);
033        TDummy node = (TDummy)rootNode;
034        roleName = (TObjectName)(node.node1);
035        if (getSqlEnv().getDefaultCatalogName() != null){
036            if (roleName.getDatabaseToken() == null){
037                roleName.setDatabaseToken(new TSourceToken(getSqlEnv().getDefaultCatalogName()));
038            }
039        }
040        return 0;
041    }
042
043    public void accept(TParseTreeVisitor v){
044        v.preVisit(this);
045        v.postVisit(this);
046    }
047
048    public void acceptChildren(TParseTreeVisitor v){
049        v.preVisit(this);
050        v.postVisit(this);
051    }
052}