-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path14-Paged.java
42 lines (37 loc) · 1.33 KB
/
14-Paged.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@JsonInclude(JsonInclude.Include.NON_NULL)
@Getter
public final class Paged<T> {
private Collection<T> items;
private int page;
private int pageSize;
private long total;
private String sort;
private Sort.Direction sortDir;
public static <T> Paged<T> of(Collection<T> items, long total, Pageable page) {
var response = new Paged<T>();
response.items = items;
response.page = page.getPageNumber();
response.pageSize = page.getPageSize();
response.total = total;
if (page.getSort().isSorted()) {
response.sort = page.getSort().stream()
.map(Sort.Order::getProperty)
.collect(Collectors.joining(","));
response.sortDir = page.getSort().iterator().next().getDirection();
}
return response;
}
public static <T> Paged<T> of(Page<T> page) {
var response = new Paged<T>();
response.items = page.getContent();
response.page = page.getNumber();
response.pageSize = page.getSize();
response.total = page.getTotalElements();
if (page.getSort().isSorted()) {
var order = page.getSort().iterator().next();
response.sort = order.getProperty();
response.sortDir = order.getDirection();
}
return response;
}
}