001package gudusoft.gsqlparser.stmt.hive;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.TSourceToken;
007import gudusoft.gsqlparser.nodes.TPTNodeList;
008import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
009import gudusoft.gsqlparser.nodes.TTable;
010import gudusoft.gsqlparser.nodes.hive.THiveGrantSqlNode;
011import gudusoft.gsqlparser.nodes.hive.THivePrincipalName;
012import gudusoft.gsqlparser.nodes.hive.THivePrivilegeDef;
013
014public class THiveRevoke extends TCustomSqlStatement {
015
016    private TPTNodeList<THivePrincipalName> principals;
017    private TPTNodeList <THivePrivilegeDef>  privilegeList;
018    private TTable table;
019    private TSourceToken tableToken;
020
021    public THiveRevoke(EDbVendor dbvendor) {
022        super(dbvendor);
023        sqlstatementtype = ESqlStatementType.ssthiveRevoke;
024    }
025
026    public TPTNodeList<THivePrincipalName> getPrincipals() {
027        return principals;
028    }
029
030    public TPTNodeList<THivePrivilegeDef> getPrivilegeList() {
031        return privilegeList;
032    }
033
034    public TTable getTable() {
035        return table;
036    }
037
038    public TSourceToken getTableToken() {
039        return tableToken;
040    }
041
042    public int doParseStatement(TCustomSqlStatement psql) {
043        if (rootNode == null) return -1;
044        super.doParseStatement(psql);
045        THiveGrantSqlNode node = (THiveGrantSqlNode)rootNode;
046        table = analyzeFromTable(node.getFromTable(),true);
047        principals = node.getPrincipals();
048        privilegeList = node.getPrivilegeList();
049        tableToken = node.getTableToken();
050
051        return 0;
052    }
053
054    public void accept(TParseTreeVisitor v){
055        v.preVisit(this);
056        v.postVisit(this);
057    }
058
059    public void acceptChildren(TParseTreeVisitor v){
060        v.preVisit(this);
061        if (principals !=null) principals.accept(v);
062        if (privilegeList != null) privilegeList.accept(v);
063        v.postVisit(this);
064    }
065
066    public void setPrincipals(TPTNodeList<THivePrincipalName> principals) {
067        this.principals = principals;
068    }
069
070    public void setPrivilegeList(TPTNodeList<THivePrivilegeDef> privilegeList) {
071        this.privilegeList = privilegeList;
072    }
073
074    public void setTable(TTable table) {
075        this.table = table;
076    }
077}