001package gudusoft.gsqlparser.stmt.hive;
002
003
004import gudusoft.gsqlparser.EDbVendor;
005import gudusoft.gsqlparser.ESqlStatementType;
006import gudusoft.gsqlparser.TCustomSqlStatement;
007import gudusoft.gsqlparser.nodes.TObjectNameList;
008import gudusoft.gsqlparser.nodes.TPTNodeList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.nodes.hive.THiveGrantRoleSqlNode;
011import gudusoft.gsqlparser.nodes.hive.THivePrincipalName;
012
013public class THiveRevokeRole extends TCustomSqlStatement {
014
015    private TObjectNameList roleList;
016    private TPTNodeList<THivePrincipalName> principals;
017
018    public THiveRevokeRole(EDbVendor dbvendor) {
019        super(dbvendor);
020        sqlstatementtype = ESqlStatementType.ssthiveRevokeRole;
021    }
022
023    public TObjectNameList getRoleList() {
024        return roleList;
025    }
026
027    public TPTNodeList<THivePrincipalName> getPrincipals() {
028        return principals;
029    }
030
031    public int doParseStatement(TCustomSqlStatement psql) {
032        if (rootNode == null) return -1;
033        super.doParseStatement(psql);
034
035        THiveGrantRoleSqlNode node = (THiveGrantRoleSqlNode)rootNode;
036        roleList = node.getRoleList();
037        principals = node.getPrincipals();
038
039        return 0;
040    }
041
042    public void accept(TParseTreeVisitor v){
043        v.preVisit(this);
044        v.postVisit(this);
045    }
046
047    public void acceptChildren(TParseTreeVisitor v){
048        v.preVisit(this);
049        if(roleList != null) roleList.accept(v);
050        if (principals != null) principals.accept(v);
051        v.postVisit(this);
052    }
053
054    public void setRoleList(TObjectNameList roleList) {
055        this.roleList = roleList;
056    }
057
058    public void setPrincipals(TPTNodeList<THivePrincipalName> principals) {
059        this.principals = principals;
060    }
061}