001package gudusoft.gsqlparser.stmt; 002 003 004import gudusoft.gsqlparser.EDbObjectType; 005import gudusoft.gsqlparser.EDbVendor; 006import gudusoft.gsqlparser.ESqlStatementType; 007import gudusoft.gsqlparser.TCustomSqlStatement; 008import gudusoft.gsqlparser.nodes.*; 009 010import java.util.ArrayList; 011 012public class TAlterRoleStmt extends TCustomSqlStatement { 013 014 private TObjectName roleName; 015 private TObjectName newRoleName; 016 017 private TAlterRoleSqlNode.EAlterRoleType alterType; 018 private TObjectName roleSpecification; 019 private TObjectName inDatabase; 020 private ArrayList<TRoleOption> roleOptions; 021 private TObjectName parameterName; 022 private TExpression parameterValue; 023 private boolean isResetAll; 024 025 public TAlterRoleSqlNode.EAlterRoleType getAlterType() { 026 return alterType; 027 } 028 029 public TObjectName getRoleSpecification() { 030 return roleSpecification; 031 } 032 033 public TObjectName getInDatabase() { 034 return inDatabase; 035 } 036 037 public ArrayList<TRoleOption> getRoleOptions() { 038 return roleOptions; 039 } 040 041 public TObjectName getParameterName() { 042 return parameterName; 043 } 044 045 public TExpression getParameterValue() { 046 return parameterValue; 047 } 048 049 public boolean isResetAll() { 050 return isResetAll; 051 } 052 053 public TAlterRoleStmt(EDbVendor dbvendor) { 054 super(dbvendor); 055 sqlstatementtype = ESqlStatementType.sstAlterRole; 056 } 057 058 059 public TObjectName getRoleName() { 060 return roleName; 061 } 062 063 public TObjectName getNewRoleName() { 064 return newRoleName; 065 } 066 067 public int doParseStatement(TCustomSqlStatement psql) { 068 if (rootNode == null) return -1; 069 super.doParseStatement(psql); 070 switch (dbvendor) { 071 case dbvpostgresql: 072 TAlterRoleSqlNode alterRoleNode = (TAlterRoleSqlNode)rootNode; 073 this.alterType = alterRoleNode.getAlterType(); 074 this.roleSpecification = alterRoleNode.getRoleSpecification(); 075 this.roleName = this.roleSpecification; 076 this.roleName.setDbObjectType(EDbObjectType.role); 077 this.inDatabase = alterRoleNode.getInDatabase(); 078 this.newRoleName = alterRoleNode.getNewRoleName(); 079 if (this.newRoleName != null) { 080 this.newRoleName.setDbObjectType(EDbObjectType.role); 081 } 082 this.roleOptions = alterRoleNode.getRoleOptions(); 083 this.parameterName = alterRoleNode.getParameterName(); 084 this.parameterValue = alterRoleNode.getParameterValue(); 085 this.isResetAll = alterRoleNode.isResetAll(); 086 break; 087 default: 088 TDummy node = (TDummy)(rootNode); 089 roleName = (TObjectName)node.node1; 090 if (roleName != null){ 091 this.roleName.setDbObjectType(EDbObjectType.role); 092 } 093 newRoleName = (TObjectName)node.node2; 094 if (newRoleName != null){ 095 this.newRoleName.setDbObjectType(EDbObjectType.role); 096 } 097 break; 098 } 099 100 return 0; 101 } 102 103 public void accept(TParseTreeVisitor v){ 104 v.preVisit(this); 105 v.postVisit(this); 106 } 107 108 public void acceptChildren(TParseTreeVisitor v){ 109 v.preVisit(this); 110 v.postVisit(this); 111 } 112}