PagingStatus.java
1.32 KB
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
package fi.insomnia.intra.web;
import java.math.BigDecimal;
import org.apache.catalina.Logger;
import org.slf4j.LoggerFactory;
import fi.insomnia.intra.dao.IPagingStatus;
public class PagingStatus implements IPagingStatus {
private static final org.slf4j.Logger logger = LoggerFactory.getLogger(PagingStatus.class);
private int pagesize;
private int page;
private long totalHits;
public PagingStatus(int defaultSize) {
pagesize = defaultSize;
page = 0;
totalHits = 0;
}
public void setPagesize(int pagesize) {
this.pagesize = pagesize;
}
public int getPagesize() {
return pagesize;
}
public void setPage(int page) {
this.page = page;
}
public int getPage() {
return page;
}
public void setTotalHits(long l) {
this.totalHits = l;
}
public long getTotalHits() {
return totalHits;
}
public long getTotalPages() {
BigDecimal pages = new BigDecimal(totalHits).divide(new BigDecimal(pagesize), BigDecimal.ROUND_CEILING);
return pages.setScale(0, BigDecimal.ROUND_CEILING).longValue();
}
public void next() {
if (page < getTotalPages()) {
++page;
} else {
page = (int) (getTotalPages() - 1);
}
logger.info("page is now {}", page);
}
public void prev() {
if (page > 0) {
--page;
} else {
page = 0;
}
}
}