NIMSDK-AOS  10.10.13
V2NIMTeamMemberSearchOption.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.v2.team.option;
2 
5 
6 /**
7  * 群成员搜索选项类
8  * 用于设置群成员搜索的各种参数
9  * 当前只检索群昵称,不连表查询
10  */
12 
13  /**
14  * 搜索关键词,不为空
15  */
16  private final String keyword;
17 
18  /**
19  * 群组类型
20  */
21  private final V2NIMTeamType teamType;
22 
23  /**
24  * 群组ID
25  * 如果不传则检索所有群,如果需要检索特定的群,则需要同时传入teamId+teamType
26  */
27  private final String teamId;
28 
29  /**
30  * 起始位置
31  * 首次传"", 后续传上次返回的nextToken
32  */
33  private final String nextToken;
34 
35  /**
36  * 排序方式
37  * V2NIM_SORT_ORDER_DESC:按joinTime降序
38  * V2NIM_SORT_ORDER_ASC:按joinTime升序
39  */
40  private final V2NIMSortOrder order;
41 
42  /**
43  * 查询成员的个数
44  * 默认10
45  * 必须为正数
46  */
47  private final int limit;
48  /**
49  * 是否搜索用户账号
50  * 默认为false, 使用前提是 accountId带有业务属性,否则不建议开启此参数
51  */
52  private final boolean searchAccountId;
53 
54  /**
55  * 无参构造方法
56  * Hawk需要无参构造方法
57  */
58  private V2NIMTeamMemberSearchOption() {
59  this(null, null, null, TEAM_MEMBER_SEARCH_OPTION_PAGETOKEN_DEFAULT, TEAM_MEMBER_SEARCH_OPTION_ORDER_DEFAULT,
60  TEAM_MEMBER_SEARCH_OPTION_LIMIT_DEFAULT,TEAM_MEMBER_SEARCH_OPTION_SEARCH_ACCOUNT_ID);
61  }
62 
63  /**
64  * 全参数构造方法
65  *
66  * @param keyword 搜索关键词
67  * @param teamType 群组类型
68  * @param teamId 群组ID
69  * @param nextToken 起始位置
70  * @param order 排序方式
71  * @param limit 查询成员的个数
72  * @param searchAccountId 是否搜索用户账号
73  */
74  private V2NIMTeamMemberSearchOption(String keyword, V2NIMTeamType teamType, String teamId, String nextToken, V2NIMSortOrder order, int limit,boolean searchAccountId) {
75  this.keyword = keyword;
76  this.teamType = teamType;
77  this.teamId = teamId;
78  this.nextToken = nextToken;
79  this.order = order;
80  this.limit = limit;
81  this.searchAccountId = searchAccountId;
82  }
83 
84  /**
85  * 获取搜索关键词
86  *
87  * @return 搜索关键词
88  */
89  public String getKeyword() {
90  return keyword;
91  }
92 
93  /**
94  * 获取群组类型
95  *
96  * @return 群组类型
97  */
99  return teamType;
100  }
101 
102  /**
103  * 获取群组ID
104  *
105  * @return 群组ID
106  */
107  public String getTeamId() {
108  return teamId;
109  }
110 
111  /**
112  * 获取起始位置
113  *
114  * @return 起始位置
115  */
116  public String getNextToken() {
117  return nextToken;
118  }
119 
120  /**
121  * 获取排序方式
122  *
123  * @return 排序方式
124  */
126  return order;
127  }
128 
129  /**
130  * 获取查询成员的个数
131  *
132  * @return 查询成员的个数
133  */
134  public int getLimit() {
135  return limit;
136  }
137 
138  /**
139  * 获取是否搜索用户账号
140  *
141  * @return 是否搜索用户账号
142  */
143  public boolean isSearchAccountId() {
144  return searchAccountId;
145  }
146 
147  @Override
148  public String toString() {
149  return "V2NIMTeamMemberSearchOption{" + "keyword='" + keyword + '\'' + ", teamType=" + teamType + ", teamId='" + teamId + '\'' + ", nextToken='"
150  + nextToken + '\'' + ", order=" + order + ", limit=" + limit +", searchAccountId=" + searchAccountId + '}';
151  }
152 
153  /**
154  * 默认排序方式:降序
155  */
156  private static final V2NIMSortOrder TEAM_MEMBER_SEARCH_OPTION_ORDER_DEFAULT = V2NIMSortOrder.V2NIM_SORT_ORDER_DESC;
157 
158  /**
159  * 默认查询成员的个数:10
160  */
161  private static final int TEAM_MEMBER_SEARCH_OPTION_LIMIT_DEFAULT = 10;
162 
163  /**
164  * 默认起始位置:空字符串
165  */
166  private static final String TEAM_MEMBER_SEARCH_OPTION_PAGETOKEN_DEFAULT = "";
167 
168  private static final boolean TEAM_MEMBER_SEARCH_OPTION_SEARCH_ACCOUNT_ID = false;
169 
170  /**
171  * V2NIMTeamMemberSearchOption的构建器类
172  */
173  public static final class V2NIMTeamMemberSearchOptionBuilder {
174 
175  private final String keyword;
176  private final V2NIMTeamType teamType;
177  private String teamId;
178  private final String nextToken;
179  private V2NIMSortOrder order = TEAM_MEMBER_SEARCH_OPTION_ORDER_DEFAULT;
180  private int limit = TEAM_MEMBER_SEARCH_OPTION_LIMIT_DEFAULT;
181  private boolean searchAccountId = TEAM_MEMBER_SEARCH_OPTION_SEARCH_ACCOUNT_ID;
182 
183  /**
184  * 构造方法
185  *
186  * @param keyword 搜索关键词
187  * @param teamType 群组类型
188  * @param nextToken 起始位置
189  */
190  public V2NIMTeamMemberSearchOptionBuilder(String keyword, V2NIMTeamType teamType, String nextToken) {
191  this.keyword = keyword;
192  this.teamType = teamType;
193  this.nextToken = nextToken;
194  }
195 
196  /**
197  * 复制构造方法
198  *
199  * @param other 另一个V2NIMTeamMemberSearchOption对象
200  */
201  public V2NIMTeamMemberSearchOptionBuilder(V2NIMTeamMemberSearchOption other) {
202  this.keyword = other.keyword;
203  this.teamType = other.teamType;
204  this.teamId = other.teamId;
205  this.nextToken = other.nextToken;
206  this.order = other.order;
207  this.limit = other.limit;
208  }
209 
210  /**
211  * 创建构建器
212  *
213  * @param keyword 搜索关键词
214  * @param teamType 群组类型
215  * @param nextToken 起始位置
216  *
217  * @return V2NIMTeamMemberSearchOptionBuilder对象
218  */
219  public static V2NIMTeamMemberSearchOptionBuilder builder(String keyword, V2NIMTeamType teamType, String nextToken) {
220  return new V2NIMTeamMemberSearchOptionBuilder(keyword, teamType, nextToken);
221  }
222 
223  /**
224  * 设置群组ID
225  *
226  * @param teamId 群组ID
227  *
228  * @return 当前构建器对象
229  */
230  public V2NIMTeamMemberSearchOptionBuilder withTeamId(String teamId) {
231  this.teamId = teamId;
232  return this;
233  }
234 
235  /**
236  * 设置排序方式
237  *
238  * @param order 排序方式
239  *
240  * @return 当前构建器对象
241  */
242  public V2NIMTeamMemberSearchOptionBuilder withOrder(V2NIMSortOrder order) {
243  this.order = order;
244  return this;
245  }
246 
247  /**
248  * 设置查询成员的个数
249  *
250  * @param limit 查询成员的个数
251  *
252  * @return 当前构建器对象
253  */
254  public V2NIMTeamMemberSearchOptionBuilder withLimit(int limit) {
255  this.limit = limit;
256  return this;
257  }
258 
259  /**
260  * 设置是否搜索用户账号
261  *
262  * @param searchAccountId 是否搜索用户账号
263  *
264  * @return 当前构建器对象
265  */
266  public V2NIMTeamMemberSearchOptionBuilder withSearchAccountId(boolean searchAccountId) {
267  this.searchAccountId = searchAccountId;
268  return this;
269  }
270 
271  /**
272  * 构建V2NIMTeamMemberSearchOption对象
273  *
274  * @return V2NIMTeamMemberSearchOption对象
275  */
276  public V2NIMTeamMemberSearchOption build() {
277  return new V2NIMTeamMemberSearchOption(keyword, teamType, teamId, nextToken, order, limit,searchAccountId);
278  }
279  }
280 }
群成员搜索选项类 用于设置群成员搜索的各种参数 当前只检索群昵称,不连表查询