package com.zdcf.tool;
import java.io.Serializable;
import java.util.List;
/**
* 分页对象
*
*
*/
public class PageVo<E> implements Serializable {
public static <T> PageVo<T> create(int currentPage) {
PageVo<T> page = new PageVo<T>();
page.setCurrentPage(currentPage < 1 ? 1 : currentPage);
return page;
}
public static <T> PageVo<T> create() {
PageVo<T> page = new PageVo<T>();
page.setCurrentPage(1);
return page;
}
private static final long serialVersionUID = -4861421206255705029L;
private static int DEFAULT_PAGE_SIZE = 20; // 默认分页记录数
private int recordCount; // 总记录数
private int pageSize; // 页面记录条数
private int pageCount; // 总页数
private int currentPage; // 当前页码
private List<E> voList; // 数据记录List
private PageIndex pageIndex;
private int pagecode = 5;
private String orderby; // 排序值
private int ascORdesc; // 升序降序 0 升序 1 降序
public PageVo() {
recordCount = -1;
pageCount = -1;
pageSize = DEFAULT_PAGE_SIZE;
currentPage = -1;
}
public List<E> getVoList() {
return voList;
}
public void setVoList(List<E> voList) {
this.voList = voList;
}
/**
* @return 当前页码
*/
public int getCurrentPage() {
return currentPage;
}
/**
* 设置所需的页码
*
* @param currentPage
* 页码。第一页就是1,第二页就是2
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getPageCount() {
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
this.pageIndex = PageIndex.getPageIndex(pagecode, currentPage,
pageCount);
}
public int getPageSize() {
return pageSize < 1 ? DEFAULT_PAGE_SIZE : pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecordCount() {
return recordCount;
}
public void setRecordCount(int recordCount) {
this.recordCount = recordCount;
rePageCount();
}
public void rePageCount() {
if (pageSize * (currentPage - 1) > recordCount)
setCurrentPage((int) Math.ceil((double) recordCount
/ (double) pageSize));
if (pageSize == 0)
setPageSize(DEFAULT_PAGE_SIZE);
setPageCount((int) Math.ceil((double) recordCount / (double) pageSize));
}
public PageIndex getPageIndex() {
return pageIndex;
}
public void setPageIndex(PageIndex pageIndex) {
this.pageIndex = pageIndex;
}
public int getPagecode() {
return pagecode;
}
public void setPagecode(int pagecode) {
this.pagecode = pagecode;
}
public String getOrderby() {
return orderby;
}
public void setOrderby(String orderby) {
this.orderby = orderby;
}
public int getAscORdesc() {
return ascORdesc;
}
public void setAscORdesc(int ascORdesc) {
this.ascORdesc = ascORdesc;
}
}