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        if (node.getFromTable() != null) {
047            table = analyzeFromTable(node.getFromTable(), true);
048        }
049        principals = node.getPrincipals();
050        privilegeList = node.getPrivilegeList();
051        tableToken = node.getTableToken();
052
053        return 0;
054    }
055
056    public void accept(TParseTreeVisitor v){
057        v.preVisit(this);
058        v.postVisit(this);
059    }
060
061    public void acceptChildren(TParseTreeVisitor v){
062        v.preVisit(this);
063        if (principals !=null) principals.accept(v);
064        if (privilegeList != null) privilegeList.accept(v);
065        v.postVisit(this);
066    }
067
068    public void setPrincipals(TPTNodeList<THivePrincipalName> principals) {
069        this.principals = principals;
070    }
071
072    public void setPrivilegeList(TPTNodeList<THivePrivilegeDef> privilegeList) {
073        this.privilegeList = privilegeList;
074    }
075
076    public void setTable(TTable table) {
077        this.table = table;
078    }
079}