package com.xiaozhi.blog.utils; import java.io.Serializable; import java.util.List; /** * 分页的数据模型类 * @author xiaozhi * */ public class ListPage<T> implements Serializable { /** * */ private static final long serialVersionUID = 2163218830368884853L; /** * 当前页的记录列表 */ private List<T> list; /** * 当前页的第一条记录在全部记录中的索引数,以0为起始索引 */ private int firstResult; /** * 当前页的最后一条记录在全部记录中的索引数,以0为起始索引 */ private int lastResult; /** * 每一页的记录数 */ private int maxResults; /** * 全部记录的数量 */ private int allResults; /** * 上一页的第一条记录在全部记录中的索引数,以0为起始索引 */ private int prevPage; /** * 下一页的第一条记录在全部记录中的索引数,以0为起始索引 */ private int nextPage; /** * 最后一页的第一条记录在全部记录中的索引数,以0为起始索引 */ private int lastPage; /** * 当前页是第几页 */ private int currPage; /** * 共有多少页 */ private int pages; public ListPage(){} public ListPage(List<T> list, int firstResult, int lastResult, int allResults) { if (firstResult >= lastResult) { throw new IllegalArgumentException("firstResult can not be greater than or equal lastResult"); } this.list = list; this.firstResult = firstResult; this.lastResult = lastResult; maxResults = lastResult - firstResult+1; this.allResults = allResults; this.prevPage = firstResult - maxResults; if (this.prevPage < 0) { this.prevPage = 0; } if (allResults <= maxResults) { this.lastPage = 0; } else { this.lastPage = allResults % maxResults; this.lastPage = (this.lastPage == 0) ? (allResults - maxResults) : (allResults - this.lastPage); } this.nextPage = firstResult + maxResults; if (this.nextPage > this.lastPage) { this.nextPage = this.lastPage; } pages = allResults % maxResults; if (pages == 0) pages = allResults / maxResults; else pages = allResults / maxResults + 1; currPage = (firstResult + maxResults) / maxResults; } /** * @return Returns the allResults. */ public int getAllResults() { return allResults; } /** * @return Returns the firstResult. */ public int getFirstResult() { return firstResult; } public int getLastResult() { return lastResult; } public int getMaxResults() { return maxResults; } /** * @return Returns the list. */ public List<T> getList() { return list; } public int getNextPage() { return nextPage; } public int getPrevPage() { return prevPage; } public int getCurrPage() { return currPage; } public int getLastPage() { return lastPage; } public int getPages() { return pages; } public void setList(List<T> list) { this.list = list; } public void setFirstResult(int firstResult) { this.firstResult = firstResult; } public void setLastResult(int lastResult) { this.lastResult = lastResult; } public void setMaxResults(int maxResults) { this.maxResults = maxResults; } public void setAllResults(int allResults) { this.allResults = allResults; } public void setPrevPage(int prevPage) { this.prevPage = prevPage; } public void setNextPage(int nextPage) { this.nextPage = nextPage; } public void setLastPage(int lastPage) { this.lastPage = lastPage; } public void setCurrPage(int currPage) { this.currPage = currPage; } public void setPages(int pages) { this.pages = pages; } @Override public String toString() { return "ListPage [list=" + list + ", firstResult=" + firstResult + ", lastResult=" + lastResult + ", maxResults=" + maxResults + ", allResults=" + allResults + ", prevPage=" + prevPage + ", nextPage=" + nextPage + ", lastPage=" + lastPage + ", currPage=" + currPage + ", pages=" + pages + "]"; } }