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