001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.TGrantSqlNode;
007import gudusoft.gsqlparser.nodes.TObjectNameList;
008import gudusoft.gsqlparser.nodes.TPTNodeList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.couchbase.TRoleSpec;
011
012
013public class TGrantStmt extends TCustomSqlStatement {
014    private TPTNodeList<TRoleSpec> roleList;
015    private TObjectNameList userList;
016
017    public TPTNodeList<TRoleSpec> getRoleList() {
018        return roleList;
019    }
020
021    public TObjectNameList getUserList() {
022        return userList;
023    }
024
025    public TGrantStmt(EDbVendor dbvendor) {
026        super(dbvendor);
027        sqlstatementtype = ESqlStatementType.sstGrant;
028    }
029
030    public int doParseStatement(TCustomSqlStatement psql) {
031        if (rootNode == null) return -1;
032        super.doParseStatement(psql);
033        TGrantSqlNode grantSqlNode = (TGrantSqlNode)rootNode;
034
035        userList = grantSqlNode.getUserList();
036        roleList = grantSqlNode.getRoleList();
037
038        return 0;
039    }
040    public void accept(TParseTreeVisitor v){
041        v.preVisit(this);
042        v.postVisit(this);
043    }
044
045    public void acceptChildren(TParseTreeVisitor v){
046        v.preVisit(this);
047        v.postVisit(this);
048    }
049
050}