package com.hehenian.biz.common.base.dataobject;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
/**
* 分页对象
*
* @author: liuzg
* @date 2014年7月7日 下午2:17:18
*/
public class PageDo<T> implements Serializable {
private static final long serialVersionUID = 103177325764334271L;
public long pageNum;// 当前页数(>0) 状态
private long totalNum; // 总记录数(>=0) 读写
private long totalPageNum; // 总页数(>0) 只读
private int pageSize; // 每页的记录数(>0) 初始化
private List<T> page; // 当前页中存放的记录 读写
public PageDo(int pageSize) {
this.pageNum = 1L;
this.pageSize = pageSize;
}
public PageDo() {
this(10);
}
/**
* 获取任一页第一条数据在数据集的位置.
*
* @param pageNo
* 从1开始的页号
* @param pageSize
* 每页记录条数
* @return 该页第一条数据
*/
public long getStartOfPage() {
return (this.pageNum - 1) * pageSize;
}
public int getPageSize() {
return pageSize;
}
public List<T> getPage() {
return page;
}
public long getPageNum() {
this.pageNum=this.pageNum<=0?1:this.pageNum;
return pageNum;
}
public void setPageNum(long pageNum) {
this.pageNum = pageNum;
this.pageNum=this.pageNum<=0?1:this.pageNum;
}
public long getTotalNum() {
return totalNum;
}
/**
* return true : 可以继续查询
* return false: 没有记录
* @param totalNum
* @return
*/
public boolean setTotalNum(long totalNum) {
this.totalNum = totalNum;
if (this.totalNum == 0) {
this.totalPageNum = 0;
return false;
} else {
this.totalPageNum = this.totalNum / this.pageSize;
if (this.totalNum % this.pageSize > 0) {
this.totalPageNum++;
}
}
this.pageNum = this.pageNum > this.totalPageNum ? this.totalPageNum
: this.pageNum;
return true;
}
public void setTotalPageNum(long totalPageNum) {
this.totalPageNum = totalPageNum;
}
public long getTotalPageNum() {
return totalPageNum;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setPage(List<T> page) {
this.page = page;
}
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("pageNum",getPageNum())
.append("totalNum",getTotalNum())
.append("totalPageNum",getTotalPageNum())
.append("pageSize",getPageSize())
.toString();
}
}