NIMSDK-AOS 10.4.0-beta
载入中...
搜索中...
未找到
QChatSearchServerByPageParam.java
浏览该文件的文档.
1package com.netease.nimlib.sdk.qchat.param;
2
3import androidx.annotation.NonNull;
4import androidx.annotation.Nullable;
5import com.netease.nimlib.sdk.qchat.enums.QChatSearchServerTypeEnum;
6import com.netease.nimlib.sdk.qchat.enums.QChatServerSearchSortEnum;
7import com.netease.nimlib.util.CollectionUtil;
8import com.netease.nimlib.util.StringUtil;
9import java.util.List;
10
11/**
12 * 检索服务器的接口入参
13 */
15
16 /**
17 * 检索关键字,目标检索服务器名称
18 */
19 @NonNull
20 private final String keyword;
21
22 /**
23 * 排序规则 true:正序;false:反序
24 */
25 private final boolean asc;
26
27 /**
28 * 搜索类型,{@link QChatSearchServerTypeEnum}
29 */
30 @NonNull
31 private final QChatSearchServerTypeEnum searchType;
32
33 /**
34 * 查询时间范围的开始时间
35 */
36 @Nullable
37 private Long startTime;
38
39 /**
40 * 查询时间范围的结束时间,要求比开始时间大
41 */
42 @Nullable
43 private Long endTime;
44
45 /**
46 * 检索返回的最大记录数,最大和默认都是100
47 */
48 @Nullable
49 private Integer limit;
50
51 /**
52 * 服务器类型
53 */
54 @Nullable
55 private List<Integer> serverTypes;
56 /**
57 * 排序条件
58 */
59 private QChatServerSearchSortEnum sort;
60 /**
61 * 查询游标,下次查询的起始位置,第一页设置为null,查询下一页是传入上一页返回的cursor
62 */
63 private String cursor;
64
65 /**
66 * 构造函数
67 *
68 * @param keyword 检索关键字,目标检索服务器名称
69 * @param asc 排序规则 true:正序;false:反序
70 * @param searchType 搜索类型,{@link QChatSearchServerTypeEnum}
71 */
72 public QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType) {
73 this(keyword, asc, searchType, null, null, null, null);
74 }
75
76 /**
77 * 构造函数
78 *
79 * @param keyword 检索关键字,目标检索服务器名称
80 * @param asc 排序规则 true:正序;false:反序
81 * @param searchType 搜索类型,{@link QChatSearchServerTypeEnum}
82 * @param startTime 查询时间范围的开始时间
83 * @param endTime 查询时间范围的结束时间,要求比开始时间大
84 * @param limit 检索返回的最大记录数,最大和默认都是100
85 * @param serverTypes 服务器类型
86 */
87 public QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit, @Nullable List<Integer> serverTypes) {
88 this.keyword = keyword;
89 this.asc = asc;
90 this.searchType = searchType;
91 this.startTime = startTime;
92 this.endTime = endTime;
93 this.limit = limit;
94 this.serverTypes = serverTypes;
95 }
96
97 /**
98 * 构造函数
99 *
100 * @param keyword 检索关键字,目标检索服务器名称
101 * @param asc 排序规则 true:正序;false:反序
102 * @param searchType 搜索类型,{@link QChatSearchServerTypeEnum}
103 * @param startTime 查询时间范围的开始时间
104 * @param endTime 查询时间范围的结束时间,要求比开始时间大
105 * @param limit 检索返回的最大记录数,最大和默认都是100
106 * @param serverTypes 服务器类型
107 * @param cursor 查询游标,下次查询的起始位置,第一页设置为null,查询下一页是传入上一页返回的cursor
108 */
109 public QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit, @Nullable List<Integer> serverTypes,@Nullable String cursor) {
110 this.keyword = keyword;
111 this.asc = asc;
112 this.searchType = searchType;
113 this.startTime = startTime;
114 this.endTime = endTime;
115 this.limit = limit;
116 this.serverTypes = serverTypes;
117 this.cursor = cursor;
118 }
119
120 /**
121 * 构造函数
122 *
123 * @param keyword 检索关键字,目标检索服务器名称
124 * @param asc 排序规则 true:正序;false:反序
125 * @param searchType 搜索类型,{@link QChatSearchServerTypeEnum}
126 * @param startTime 查询时间范围的开始时间
127 * @param endTime 查询时间范围的结束时间,要求比开始时间大
128 * @param limit 检索返回的最大记录数,最大和默认都是100
129 * @param serverTypes 服务器类型
130 * @param sort 排序条件 {@link QChatServerSearchSortEnum}
131 * @param cursor 查询游标,下次查询的起始位置,第一页设置为null,查询下一页是传入上一页返回的cursor
132 */
133 public QChatSearchServerByPageParam(@NonNull String keyword, boolean asc,
134 @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit,
135 @Nullable List<Integer> serverTypes, QChatServerSearchSortEnum sort,@Nullable String cursor) {
136 this.keyword = keyword;
137 this.asc = asc;
138 this.searchType = searchType;
139 this.startTime = startTime;
140 this.endTime = endTime;
141 this.limit = limit;
142 this.serverTypes = serverTypes;
143 this.sort = sort;
144 this.cursor = cursor;
145 }
146
147 /**
148 * 获取检索关键字
149 */
150 public String getKeyword() {
151 return keyword;
152 }
153
154 /**
155 * 是否是正序
156 */
157 public boolean isAsc() {
158 return asc;
159 }
160
161 /**
162 * 获取搜索类型
163 */
165 return searchType;
166 }
167
168 /**
169 * 获取查询时间范围的开始时间
170 */
171 @Nullable
172 public Long getStartTime() {
173 return startTime;
174 }
175
176 /**
177 * 设置查询时间范围的开始时间
178 * @param startTime 查询时间范围的开始时间
179 */
180 public void setStartTime(@Nullable Long startTime) {
181 this.startTime = startTime;
182 }
183
184 /**
185 * 获取查询时间范围的结束时间
186 */
187 @Nullable
188 public Long getEndTime() {
189 return endTime;
190 }
191
192 /**
193 * 设置查询时间范围的结束时间
194 * @param endTime 查询时间范围的结束时间
195 */
196 public void setEndTime(@Nullable Long endTime) {
197 this.endTime = endTime;
198 }
199
200 /**
201 * 获取检索返回的最大记录数
202 */
203 @Nullable
204 public Integer getLimit() {
205 return limit;
206 }
207
208 /**
209 * 设置检索返回的最大记录数
210 * @param limit 检索返回的最大记录数
211 */
212 public void setLimit(@Nullable Integer limit) {
213 this.limit = limit;
214 }
215
216 /**
217 * 获取服务器类型
218 */
219 @Nullable
220 public List<Integer> getServerTypes() {
221 return serverTypes;
222 }
223
224 /**
225 * 设置服务器类型
226 * @param serverTypes 服务器类型
227 */
228 public void setServerTypes(@Nullable List<Integer> serverTypes) {
229 this.serverTypes = serverTypes;
230 }
231
232 /**
233 * 获取排序条件
234 * @return
235 */
237 return sort;
238 }
239
240 /**
241 * 设置排序条件
242 * @param sort
243 */
245 this.sort = sort;
246 }
247
248 /**
249 * 获取查询游标
250 * @return
251 */
252 public String getCursor() {
253 return cursor;
254 }
255
256 /**
257 * 设置查询游标,下次查询的起始位置,第一页设置为null,查询下一页是传入上一页返回的cursor
258 * @param cursor
259 */
260 public void setCursor(String cursor) {
261 this.cursor = cursor;
262 }
263
264 /**
265 * 是否合法
266 */
267 public boolean isValid() {
268 if (StringUtil.isEmpty(keyword)) {
269 return false;
270 }
271 if (searchType == null || searchType == QChatSearchServerTypeEnum.undefined) {
272 return false;
273 }
274 if (startTime != null && startTime < 0) {
275 return false;
276 }
277
278 if (endTime != null && endTime < 0) {
279 return false;
280 }
281
282 if (limit != null && limit < 0) {
283 return false;
284 }
285
286 if (CollectionUtil.isBlank(serverTypes)) {
287 return false;
288 } else if (CollectionUtil.contains(serverTypes, value -> value == null || value <= 0)){
289 return false;
290 }
291
292 return true;
293 }
294
295 @Override
296 public String toString() {
297 return "QChatSearchServerByPageParam{" +
298 "keyword='" + keyword + '\'' +
299 ", asc=" + asc +
300 ", searchType=" + searchType +
301 ", startTime=" + startTime +
302 ", endTime=" + endTime +
303 ", limit=" + limit +
304 ", serverTypes=" + serverTypes +
305 ", sort=" + sort +
306 ", cursor='" + cursor + '\'' +
307 '}';
308 }
309}
void setStartTime(@Nullable Long startTime)
设置查询时间范围的开始时间
QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit, @Nullable List< Integer > serverTypes)
构造函数
void setCursor(String cursor)
设置查询游标,下次查询的起始位置,第一页设置为null,查询下一页是传入上一页返回的cursor
QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType)
构造函数
void setLimit(@Nullable Integer limit)
设置检索返回的最大记录数
QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit, @Nullable List< Integer > serverTypes, QChatServerSearchSortEnum sort, @Nullable String cursor)
构造函数
QChatSearchServerByPageParam(@NonNull String keyword, boolean asc, @NonNull QChatSearchServerTypeEnum searchType, @Nullable Long startTime, @Nullable Long endTime, @Nullable Integer limit, @Nullable List< Integer > serverTypes, @Nullable String cursor)
构造函数
void setEndTime(@Nullable Long endTime)
设置查询时间范围的结束时间
void setServerTypes(@Nullable List< Integer > serverTypes)
设置服务器类型
void setSort(QChatServerSearchSortEnum sort)
设置排序条件