NIMSDK-AOS  10.9.80
QChatSearchServerByPageParam.java
浏览该文件的文档.
1 package com.netease.nimlib.sdk.qchat.param;
2 
3 import androidx.annotation.NonNull;
4 import androidx.annotation.Nullable;
7 import com.netease.nimlib.util.CollectionUtil;
8 import com.netease.nimlib.util.StringUtil;
9 import 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  */
244  public void setSort(QChatServerSearchSortEnum sort) {
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 }
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)
构造函数
void setSort(QChatServerSearchSortEnum sort)
设置排序条件
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 setLimit(@Nullable Integer limit)
设置检索返回的最大记录数
void setEndTime(@Nullable Long endTime)
设置查询时间范围的结束时间
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 ...
void setServerTypes(@Nullable List< Integer > serverTypes)
设置服务器类型
void setStartTime(@Nullable Long startTime)
设置查询时间范围的开始时间