NIMSDK-AOS  9.16.0
QChatRoleResource.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.qchat.enums;
2 
3 import androidx.annotation.NonNull;
4 import com.netease.nimlib.util.StringUtil;
5 import java.io.Serializable;
6 import java.util.LinkedHashMap;
7 import java.util.Map;
8 import java.util.Objects;
9 
13 public class QChatRoleResource implements Serializable, Comparable<QChatRoleResource> {
17  public static final QChatRoleResource MANAGE_SERVER = new QChatRoleResource(1,1, "MANAGE_SERVER", 0);
21  public static final QChatRoleResource MANAGE_CHANNEL = new QChatRoleResource(2,0, "MANAGE_CHANNEL", 1);
25  public static final QChatRoleResource MANAGE_ROLE = new QChatRoleResource(3,0, "MANAGE_ROLE", 2);
29  public static final QChatRoleResource SEND_MSG = new QChatRoleResource(4,0, "SEND_MSG", 3);
33  public static final QChatRoleResource ACCOUNT_INFO_SELF = new QChatRoleResource(5,1, "ACCOUNT_INFO_SELF", 4);
37  public static final QChatRoleResource INVITE_SERVER = new QChatRoleResource(6,1, "INVITE_SERVER", 5);
41  public static final QChatRoleResource KICK_SERVER = new QChatRoleResource(7,1, "KICK_SERVER", 6);
45  public static final QChatRoleResource ACCOUNT_INFO_OTHER = new QChatRoleResource(8,1, "ACCOUNT_INFO_OTHER", 7);
49  public static final QChatRoleResource RECALL_MSG = new QChatRoleResource(9,0, "RECALL_MSG", 8);
53  public static final QChatRoleResource DELETE_MSG = new QChatRoleResource(10,0, "DELETE_MSG", 9);
57  public static final QChatRoleResource REMIND_OTHER = new QChatRoleResource(11,0, "REMIND_OTHER", 10);
61  public static final QChatRoleResource REMIND_EVERYONE = new QChatRoleResource(12,0, "REMIND_EVERYONE", 11);
65  public static final QChatRoleResource MANAGE_BLACK_WHITE_LIST = new QChatRoleResource(13,0, "MANAGE_BLACK_WHITE_LIST", 12);
69  public static final QChatRoleResource BAN_SERVER_MEMBER = new QChatRoleResource(14,1, "BAN_SERVER_MEMBER", 13);
73  public static final QChatRoleResource RTC_CHANNEL_CONNECT = new QChatRoleResource(15, 0, "RTC_CHANNEL_CONNECT", 14);
77  public static final QChatRoleResource RTC_CHANNEL_DISCONNECT_OTHER = new QChatRoleResource(16, 0, "RTC_CHANNEL_DISCONNECT_OTHER", 15);
81  public static final QChatRoleResource RTC_CHANNEL_OPEN_MICROPHONE = new QChatRoleResource(17, 0, "RTC_CHANNEL_OPEN_MICROPHONE", 16);
85  public static final QChatRoleResource RTC_CHANNEL_OPEN_CAMERA = new QChatRoleResource(18, 0, "RTC_CHANNEL_OPEN_CAMERA", 17);
89  public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE = new QChatRoleResource(19, 0, "RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE", 18);
93  public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA = new QChatRoleResource(20, 0, "RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA", 19);
97  public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE = new QChatRoleResource(21, 0, "RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE", 20);
101  public static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA = new QChatRoleResource(22, 0, "RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA", 21);
105  public static final QChatRoleResource RTC_CHANNEL_OPEN_SCREEN_SHARE = new QChatRoleResource(23, 0, "RTC_CHANNEL_OPEN_SCREEN_SHARE", 22);
109  public static final QChatRoleResource RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE = new QChatRoleResource(24, 0, "RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE", 23);
113  public static final QChatRoleResource SERVER_APPLY_HANDLE = new QChatRoleResource(25, 1, "SERVER_APPLY_HANDLE", 24);
117  public static final QChatRoleResource INVITE_APPLY_HISTORY_QUERY = new QChatRoleResource(26, 1, "INVITE_APPLY_HISTORY_QUERY", 25);
118 
122  public static final QChatRoleResource MENTIONED_ROLE = new QChatRoleResource(27, 0, "MENTIONED_ROLE", 26);
123 
125  ;
126 
127  private final int resource;
133  private final int type;
134 
139  public final String name;
144  public final int ordinal;
145  @SuppressWarnings("java:S3599")
146  private static final Map<String, QChatRoleResource> ROLE_MAP = new LinkedHashMap<String, QChatRoleResource>() {
147  {
148  put("MANAGE_SERVER", MANAGE_SERVER);
149  put("MANAGE_CHANNEL", MANAGE_CHANNEL);
150  put("MANAGE_ROLE", MANAGE_ROLE);
151  put("SEND_MSG", SEND_MSG);
152  put("ACCOUNT_INFO_SELF", ACCOUNT_INFO_SELF);
153  put("INVITE_SERVER", INVITE_SERVER);
154  put("KICK_SERVER", KICK_SERVER);
155  put("ACCOUNT_INFO_OTHER", ACCOUNT_INFO_OTHER);
156  put("RECALL_MSG", RECALL_MSG);
157  put("DELETE_MSG", DELETE_MSG);
158  put("REMIND_OTHER", REMIND_OTHER);
159  put("REMIND_EVERYONE", REMIND_EVERYONE);
160  put("MANAGE_BLACK_WHITE_LIST", MANAGE_BLACK_WHITE_LIST);
161  put("BAN_SERVER_MEMBER", BAN_SERVER_MEMBER);
162  put("RTC_CHANNEL_CONNECT", RTC_CHANNEL_CONNECT);
163  put("RTC_CHANNEL_DISCONNECT_OTHER", RTC_CHANNEL_DISCONNECT_OTHER);
164  put("RTC_CHANNEL_OPEN_MICROPHONE", RTC_CHANNEL_OPEN_MICROPHONE);
165  put("RTC_CHANNEL_OPEN_CAMERA", RTC_CHANNEL_OPEN_CAMERA);
166  put("RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE", RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE);
167  put("RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA", RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA);
168  put("RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE", RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE);
169  put("RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA", RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA);
170  put("RTC_CHANNEL_OPEN_SCREEN_SHARE", RTC_CHANNEL_OPEN_SCREEN_SHARE);
171  put("RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE", RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE);
172  put("SERVER_APPLY_HANDLE", SERVER_APPLY_HANDLE);
173  put("INVITE_APPLY_HISTORY_QUERY", INVITE_APPLY_HISTORY_QUERY);
174  put("MENTIONED_ROLE", MENTIONED_ROLE);
175  }
176  };
177 
178 
179  public QChatRoleResource(int resource, int type) {
180  this(resource, type, "", -1);
181  }
182 
183  private QChatRoleResource(int resource, int type, @NonNull String name, int ordinal) {
184  this.resource = resource;
185  this.type = type;
186  this.name = name;
187  this.ordinal = ordinal;
188  }
189 
190  public int value() {
191  return resource;
192  }
193 
198  public boolean isOnlyServerPermission()
199  {
200  return type == 1;
201  }
202 
207  public boolean isOnlyChannelPermission()
208  {
209  return type == 2;
210  }
211 
216  public boolean isAllPermission()
217  {
218  return type == 0;
219  }
220 
225  @NonNull
226  public String name() {
227  return name;
228  }
229 
234  public int ordinal() {
235  return ordinal;
236  }
237 
244  @Override
245  public int compareTo(QChatRoleResource o) {
246  return this.ordinal - o.ordinal;
247  }
248 
254  public final Class<QChatRoleResource> getDeclaringClass() {
255  return QChatRoleResource.class;
256  }
257 
258  @Override
259  @NonNull
260  public String toString() {
261  return StringUtil.isEmpty(name) ? String.valueOf(resource) : name;
262  }
263 
264  @Override
265  public boolean equals(Object o) {
266  if (this == o) {
267  return true;
268  }
269  if (o == null || getClass() != o.getClass()) {
270  return false;
271  }
272  QChatRoleResource resource1 = (QChatRoleResource) o;
273  return resource == resource1.resource && type == resource1.type;
274  }
275 
276  @Override
277  public int hashCode() {
278  return Objects.hash(resource, type);
279  }
280 
281  public static QChatRoleResource getByValue(int value) {
282  for (QChatRoleResource pt : ROLE_MAP.values()) {
283  if (value == pt.value()) {
284  return pt;
285  }
286  }
287  return new QChatRoleResource(value, 0);
288  }
289 
290  public static QChatRoleResource getByName(String name) {
291  return ROLE_MAP.get(name);
292  }
293 
294  public static QChatRoleResource[] values() {
295  QChatRoleResource[] result = new QChatRoleResource[ROLE_MAP.size()];
296  int index = 0;
297  for (QChatRoleResource pt : ROLE_MAP.values()) {
298  result[index++] = pt;
299  }
300  return result;
301  }
302 
303  public static QChatRoleResource valueOf(String name) {
304  return getByName(name);
305  }
306 }
static final QChatRoleResource REMIND_OTHER
@ 他人的权限,server和channel都有
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_MICROPHONE
RTC频道:开启/关闭他人麦克风的权限
static final QChatRoleResource RTC_CHANNEL_CONNECT
RTC频道:连接的权限
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_OTHER_CAMERA
RTC频道:开启/关闭他人摄像头的权限
int compareTo(QChatRoleResource o)
模拟枚举类型的对比方法
static final QChatRoleResource BAN_SERVER_MEMBER
封禁他人的权限,仅server有,允许成员永久封禁其他成员访问此服务器
static final QChatRoleResource DELETE_MSG
删除他人消息的权限,server和channel都有
static final QChatRoleResource RTC_CHANNEL_DISCONNECT_OTHER
RTC频道:断开他人连接的权限
static final QChatRoleResource SERVER_APPLY_HANDLE
服务器申请处理权限
static final QChatRoleResource RTC_CHANNEL_OPEN_CAMERA
RTC频道:开启摄像头的权限
static final QChatRoleResource RTC_CHANNEL_CLOSE_OTHER_SCREEN_SHARE
RTC频道:关闭他人屏幕共享的权限
static final QChatRoleResource INVITE_SERVER
邀请他人进入server的,仅server有
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_CAMERA
RTC频道:开启/关闭全员摄像头的权限
static final QChatRoleResource MENTIONED_ROLE
@身份组的权限,server和channel都有
static final QChatRoleResource MANAGE_CHANNEL
管理频道,server和channel都有
static final QChatRoleResource ACCOUNT_INFO_SELF
修改自己在该server的服务器成员信息,仅server有
static final QChatRoleResource INVITE_APPLY_HISTORY_QUERY
申请邀请历史查看权限,有这个权限才可以查询server级别的申请/邀请记录
static final QChatRoleResource MANAGE_SERVER
管理服务器:修改服务器,仅server有
boolean isOnlyChannelPermission()
是否是仅Channel才拥有的权限
boolean isOnlyServerPermission()
是否是仅Server才拥有的权限
static final QChatRoleResource SEND_MSG
发送消息,server和channel都有
final Class< QChatRoleResource > getDeclaringClass()
模拟枚举类型的对应方法
static final QChatRoleResource RTC_CHANNEL_OPEN_CLOSE_EVERYONE_MICROPHONE
RTC频道:开启/关闭全员麦克风的权限
static final QChatRoleResource RTC_CHANNEL_OPEN_MICROPHONE
RTC频道:开启麦克风的权限
static final QChatRoleResource RECALL_MSG
撤回他人消息的权限,server和channel都有
static final QChatRoleResource MANAGE_BLACK_WHITE_LIST
管理黑白名单的权限,server和channel都有
static final QChatRoleResource MANAGE_ROLE
管理身份组的权限,server和channel都有
static final QChatRoleResource REMIND_EVERYONE
@ everyone,server和channel都有
boolean isAllPermission()
是否是Server和Channel都拥有的权限
static QChatRoleResource getByName(String name)
static final QChatRoleResource RTC_CHANNEL_OPEN_SCREEN_SHARE
RTC频道:打开自己屏幕共享的权限
static final QChatRoleResource ACCOUNT_INFO_OTHER
修改他人在该server的服务器成员信息,仅server有
final String name
模拟枚举类型的变量名
static final QChatRoleResource KICK_SERVER
踢除他人的权限,仅server有