NIMSDK-AOS  10.9.50
V2NIMUserStatus.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.v2.subscription.model;
2 
3 import com.netease.nimlib.log.NimLog;
5 
6 /**
7  * 用户状态
8  */
9 public class V2NIMUserStatus {
10 
11  /**
12  * 用户账号ID
13  */
14  private final String accountId;
15 
16  /**
17  * 包括以下状态,在线状态参见:枚举名:V2NIMUserStatusType 未知:0 登录:1 登出:2 断开连接: 3 自定义设置值: 10000以上,不包括一万, 一万以内为预定义值
18  */
19  private final Integer statusType;
20 
21  /**
22  * 用户发布状态对应的终端
23  */
24  private final V2NIMLoginClientType clientType;
25 
26  /**
27  * 用户发布状态的发布时间,服务器时间
28  */
29  private final Long publishTime;
30 
31  /**
32  * 每次发布时,会生成一个唯一id, 发布自定义事件时会生成该参数,如果id相同,表示同一个事件
33  */
34  private String uniqueId;
35 
36  /**
37  * 用户发布状态时设置的扩展字段
38  */
39  private String extension;
40 
41  /**
42  * 获取预留状态中的配置信息,由服务端填入 JsonArray格式
43  */
44  private String serverExtension;
45 
46  private V2NIMUserStatus() {
47  this.accountId = null;
48  this.statusType = null;
49  this.clientType = null;
50  this.publishTime = null;
51  this.uniqueId = null;
52  this.extension = null;
53  this.serverExtension = null;
54  }
55 
56  /**
57  * 构造函数
58  *
59  * @param accountId 用户账号ID
60  * @param statusType 状态类型
61  * @param clientType 用户发布状态对应的终端
62  * @param publishTime 用户发布状态的发布时间
63  */
64  public V2NIMUserStatus(String accountId, int statusType, V2NIMLoginClientType clientType, long publishTime){
65  this(accountId, statusType, clientType, publishTime, null, null, null);
66  }
67 
68  /**
69  * 构造函数
70  *
71  * @param accountId 用户账号ID
72  * @param statusType 状态类型
73  * @param clientType 用户发布状态对应的终端
74  * @param publishTime 用户发布状态的发布时间
75  * @param uniqueId 唯一ID
76  * @param extension 扩展字段
77  * @param serverExtension 服务端扩展字段
78  */
79  public V2NIMUserStatus(String accountId, int statusType, V2NIMLoginClientType clientType, long publishTime, String uniqueId, String extension, String serverExtension) {
80  this.accountId = accountId;
81  this.statusType = statusType;
82  this.clientType = clientType;
83  this.publishTime = publishTime;
84  this.uniqueId = uniqueId;
85  this.extension = extension;
86  this.serverExtension = serverExtension;
87  }
88 
89  /**
90  * 获取用户账号ID
91  *
92  * @return 用户账号ID
93  */
94  public String getAccountId() {
95  return accountId;
96  }
97 
98  /**
99  * 获取状态类型
100  *
101  * @return 状态类型
102  */
103  public int getStatusType() {
104  if (statusType == null) {
105  return 0;
106  }
107  return statusType;
108  }
109 
110  /**
111  * 获取用户发布状态对应的终端
112  *
113  * @return 用户发布状态对应的终端
114  */
116  return clientType;
117  }
118 
119  /**
120  * 获取用户发布状态的发布时间
121  *
122  * @return 用户发布状态的发布时间
123  */
124  public long getPublishTime() {
125  if (publishTime == null) {
126  return 0L;
127  }
128  return publishTime;
129  }
130 
131  /**
132  * 获取唯一ID
133  * @return 唯一ID
134  */
135  public String getUniqueId() {
136  return uniqueId;
137  }
138 
139  /**
140  * 设置唯一ID
141  * @param uniqueId 唯一ID
142  */
143  public void setUniqueId(String uniqueId) {
144  this.uniqueId = uniqueId;
145  }
146 
147  /**
148  * 获取扩展字段
149  * @return 扩展字段
150  */
151  public String getExtension() {
152  return extension;
153  }
154 
155  /**
156  * 设置扩展字段
157  * @param extension 扩展字段
158  */
159  public void setExtension(String extension) {
160  this.extension = extension;
161  }
162 
163  /**
164  * 获取服务端扩展字段
165  * @return 服务端扩展字段
166  */
167  public String getServerExtension() {
168  return serverExtension;
169  }
170 
171  /**
172  * 设置服务端扩展字段
173  * @param serverExtension 服务端扩展字段
174  */
175  public void setServerExtension(String serverExtension) {
176  this.serverExtension = serverExtension;
177  }
178 
179  @Override
180  public String toString() {
181  final StringBuilder sb = new StringBuilder("V2NIMUserStatus{");
182  if(NimLog.isDebuggable()){
183  sb.append("accountId='").append(accountId).append('\'');
184  sb.append(", statusType=").append(statusType);
185  sb.append(", clientType=").append(clientType);
186  sb.append(", publishTime=").append(publishTime);
187  sb.append(", uniqueId='").append(uniqueId).append('\'');
188  sb.append(", extension='").append(extension).append('\'');
189  sb.append(", serverExtension='").append(serverExtension).append('\'');
190  }else{
191  sb.append("accountId='").append(accountId).append('\'');
192  sb.append(", statusType=").append(statusType);
193  sb.append(", clientType=").append(clientType);
194  sb.append(", publishTime=").append(publishTime);
195  }
196  sb.append('}');
197  return sb.toString();
198  }
199 
200  /**
201  * V2NIMUserStatus构造器
202  */
203  public static final class Builder {
204  private final String accountId;
205  private final int statusType;
206  private final V2NIMLoginClientType clientType;
207  private final long publishTime;
208  private String uniqueId;
209  private String extension;
210  private String serverExtension;
211 
212  /**
213  *
214  * @param accountId 用户账号ID
215  * @param statusType 状态类型
216  * @param clientType 用户发布状态对应的终端
217  * @param publishTime 用户发布状态的发布时间
218  */
219  public Builder(String accountId, int statusType, V2NIMLoginClientType clientType, long publishTime) {
220  this.accountId = accountId;
221  this.statusType = statusType;
222  this.clientType = clientType;
223  this.publishTime = publishTime;
224  }
225 
226  public Builder uniqueId(String uniqueId) {
227  this.uniqueId = uniqueId;
228  return this;
229  }
230 
231  public Builder extension(String extension) {
232  this.extension = extension;
233  return this;
234  }
235 
236  public Builder serverExtension(String serverExtension) {
237  this.serverExtension = serverExtension;
238  return this;
239  }
240 
241  public V2NIMUserStatus build() {
242  return new V2NIMUserStatus(accountId, statusType, clientType, publishTime, uniqueId, extension, serverExtension);
243  }
244  }
245 }
V2NIMUserStatus(String accountId, int statusType, V2NIMLoginClientType clientType, long publishTime)
构造函数
void setServerExtension(String serverExtension)
设置服务端扩展字段
V2NIMUserStatus(String accountId, int statusType, V2NIMLoginClientType clientType, long publishTime, String uniqueId, String extension, String serverExtension)
构造函数
long getPublishTime()
获取用户发布状态的发布时间
void setExtension(String extension)
设置扩展字段
V2NIMLoginClientType getClientType()
获取用户发布状态对应的终端