001package gudusoft.gsqlparser.stmt;
002
003import gudusoft.gsqlparser.EDbVendor;
004import gudusoft.gsqlparser.ESqlStatementType;
005import gudusoft.gsqlparser.TCustomSqlStatement;
006import gudusoft.gsqlparser.nodes.TDummy;
007import gudusoft.gsqlparser.nodes.TObjectName;
008import gudusoft.gsqlparser.nodes.TObjectNameList;
009import gudusoft.gsqlparser.nodes.TParseTreeVisitor;
010import gudusoft.gsqlparser.stmt.redshift.EAlterGroup;
011
012
013public class TAlterGroup extends TCustomSqlStatement {
014
015    private TObjectName groupName;
016    private TObjectName newGroupName;
017    private TObjectNameList userList;
018    private EAlterGroup alterGroupType;
019
020    public EAlterGroup getAlterGroupType() {
021        return alterGroupType;
022    }
023
024    public TObjectName getGroupName() {
025        return groupName;
026    }
027
028    public TObjectName getNewGroupName() {
029        return newGroupName;
030    }
031
032    public TObjectNameList getUserList() {
033        return userList;
034    }
035
036    public TAlterGroup(EDbVendor dbvendor) {
037        super(dbvendor);
038        sqlstatementtype = ESqlStatementType.sstAlterGroup;
039    }
040
041    public int doParseStatement(TCustomSqlStatement psql) {
042        if (rootNode == null) return -1;
043        super.doParseStatement(psql);
044        TDummy dummy = (TDummy)rootNode;
045        groupName =  (TObjectName)(dummy.node1);
046        switch (dummy.int1){
047            case 1: {
048                alterGroupType = EAlterGroup.eagAddUser;
049                userList = (TObjectNameList)(dummy.list1);
050                break;
051            }
052            case 2:{
053                alterGroupType = EAlterGroup.eagDropUser;
054                userList = (TObjectNameList)(dummy.list1);
055                break;
056            }
057            case 3:{
058                alterGroupType = EAlterGroup.eagRename;
059                newGroupName = (TObjectName)(dummy.node2);
060                break;
061            }
062        }
063
064        return 0;
065    }
066
067    public void accept(TParseTreeVisitor v){
068        v.preVisit(this);
069        v.postVisit(this);
070    }
071
072    public void acceptChildren(TParseTreeVisitor v){
073        v.preVisit(this);
074        v.postVisit(this);
075    }
076
077    public void setGroupName(TObjectName groupName) {
078        this.groupName = groupName;
079    }
080
081    public void setNewGroupName(TObjectName newGroupName) {
082        this.newGroupName = newGroupName;
083    }
084
085    public void setUserList(TObjectNameList userList) {
086        this.userList = userList;
087    }
088
089    public void setAlterGroupType(EAlterGroup alterGroupType) {
090        this.alterGroupType = alterGroupType;
091    }
092}