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}