package com.shove.vo;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* @author 杨程
* @date:Oct 15, 2010 9:14:44 AM
* @category
* @version :
*
*/
public class PageBean<T> implements Serializable {
private static final long serialVersionUID = -8652652596351231066L;
public long pageNum;// 当前页数(>0) 状态
private long totalNum; // 总记录数(>=0) 读写
private long totalPageNum; // 总页数(>0) 只读
private int pageSize; // 每页的记录数(>0) 初始化
private List<T> page; // 当前页中存放的记录 读写
public static Log log = LogFactory.getLog(PageBean.class);
public PageBean(int pageSize) {
this.pageNum = 1L;
this.pageSize = pageSize;
}
public PageBean() {
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;
}
@SuppressWarnings("unused")
public void setPageNum(Object pageNum) {
if(pageNum instanceof String[]){
String[] pageStr = (String[]) pageNum;
if (StringUtils.isBlank(pageStr[0])) {
this.pageNum = 1L;
return;
}
try {
this.pageNum = Integer.parseInt(pageStr[0]);
this.pageNum=this.pageNum<=0?1:this.pageNum;
} catch (Exception e) {
log.error(e);
this.pageNum = 1L;
}
}
if (pageNum instanceof String) {
String pageStr = (String) pageNum;
if (StringUtils.isBlank(pageStr)) {
this.pageNum = 1L;
return;
}
try {
this.pageNum = Integer.parseInt(pageStr);
this.pageNum=this.pageNum<=0?1:this.pageNum;
} catch (Exception e) {
log.error(e);
this.pageNum = 1L;
}
}
if (pageNum instanceof Integer) {
if (pageNum == null) {
this.pageNum = 1;
return;
}
try {
this.pageNum = (Integer) pageNum;
this.pageNum=this.pageNum<=0?1:this.pageNum;
} catch (Exception e) {
log.error(e);
this.pageNum = 1;
}
}
}
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 long getTotalPageNum() {
return totalPageNum;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public void setPage(List<T> page) {
this.page = page;
}
}