1
zj
2025-04-01 610c76c7d87d0140a21bb10d644597f615d9d8c5
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
package kernel.web;
 
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
 
public class Page implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    private List elements = new ArrayList();
 
    private int pageSize = 10;
    
    public static final int DEFAULT_PAGE_SIZE = 10;
    
    private int thisPageNumber = 1;
 
    private int totalElements = 0;
 
    public static final Page EMPTY_PAGE = new Page();
 
    public Page() {
    }
 
    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
 
    public void setThisPageNumber(int thisPageNumber) {
        if (thisPageNumber > 0) {
            this.thisPageNumber = thisPageNumber;
        }
        if (this.thisPageNumber > getTotalPage())
            this.thisPageNumber = getTotalPage();
    }
 
    public Page(int thisPageNumber, int pageSize, int totalElements) {
        if (thisPageNumber > 0) {
            this.thisPageNumber = thisPageNumber;
        }
        if (pageSize > 0) {
            this.pageSize = pageSize;
        }
        if (totalElements > 0)
            this.totalElements = totalElements;
    }
 
    public boolean isFirstPage() {
        return getThisPageNumber() == 1;
    }
 
    public boolean isLastPage() {
        return getThisPageNumber() >= getTotalPage();
    }
 
    public boolean hasNextPage() {
        return getTotalPage() > getThisPageNumber();
    }
 
    public boolean hasPreviousPage() {
        return getThisPageNumber() > 1;
    }
 
    public int getTotalPage() {
        return this.totalElements % this.pageSize == 0 ? this.totalElements / this.pageSize
                : this.totalElements / this.pageSize + 1;
    }
 
    public List getElements() {
        return this.elements;
    }
 
    public void setElements(List elements) {
        this.elements = elements;
    }
 
    public int getTotalElements() {
        return this.totalElements;
    }
 
    public void setTotalElements(int totalElements) {
        if (totalElements > 0) {
            this.totalElements = totalElements;
        }
        if (this.thisPageNumber > getTotalPage())
            this.thisPageNumber = getTotalPage();
    }
 
    public int getFirstElementNumber() {
        return (getThisPageNumber() - 1) * getPageSize();
    }
 
    public int getLastElementNumber() {
        int fullPage = getFirstElementNumber() + getPageSize() - 1;
        return getTotalElements() < fullPage ? getTotalElements() : fullPage;
    }
 
    public int getNextPageNumber() {
        return getThisPageNumber() + 1;
    }
 
    public int getPreviousPageNumber() {
        return getThisPageNumber() - 1;
    }
 
    public int getPageSize() {
        return this.pageSize;
    }
 
    public int getThisPageNumber() {
        return this.thisPageNumber;
    }
 
    public int getFirstPage() {
        return 1;
    }
}