/* ==================================================================
/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.component.support.persistence.pagequery;
import java.util.List;
/**
* 分页信息结果
*/
public class PageInfo {
static final int DEFAULT_PAGESIZE = 20;
/** 当前页码 */
private int pageNum;
/** 每页记录数 */
private int pageSize;
/** 总记录数 */
private int totalRows;
/** 当前页记录集 */
private List<?> items;
/** 获取记录集 */
public List<?> getItems() {
return items;
}
/** 设置记录集 */
public void setItems(List<?> items) {
this.items = items;
}
/** 获取下一页页码 */
public int getNextPageNum() {
return getTotalPages() <= getPageNum() ? 0 : getPageNum() + 1;
}
/** 获取最后一页页码 */
public int getLastPageNum(){
return getTotalPages();
}
/** 获取当前页页码 */
public int getPageNum() {
if ( pageNum <= 0 ) {
return 1;
}
int totalPages = getTotalPages();
return totalPages < pageNum ? totalPages : pageNum;
}
/**
* 获取当前页首条记录顺序数
* @return int 记录序号,如果为 -N, 表示没有记录
*/
public int getFirstResult() {
return (getPageNum() - 1) * getPageSize();
}
/** 获取首页页码 */
public int getFirstPageNum() {
return 1;
}
/** 设置当前页页码 */
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
/** 获取每页记录数 */
public int getPageSize() {
return pageSize == 0 ? DEFAULT_PAGESIZE : pageSize;
}
/** 设置每页记录数 */
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/** 获取前一页页码 */
public int getPrePageNum() {
return pageNum > 1 ? pageNum - 1 : 0;
}
/** 获取总页数 */
public int getTotalPages() {
int totalPages = getTotalRows() / getPageSize();
if(getTotalRows() % getPageSize() > 0) {
totalPages = totalPages + 1;
}
return totalPages;
}
/** 获取总记录数 */
public int getTotalRows() {
return totalRows;
}
/** 设置总记录数 */
public void setTotalRows(int totalRows) {
this.totalRows = totalRows;
}
/** 获取当前页记录数 */
public int getPageRows() {
int pageSize = getPageSize();
if (getTotalPages() <= getPageNum()) { // 最后一页
return getTotalRows() % pageSize;
}
return pageSize;
}
/** 对象与XML之间的转换 */
public String toString(){
StringBuffer sb = new StringBuffer();
sb.append("<pagelist totalpages=\"").append(getTotalPages());
sb.append("\" totalrecords=\"").append(getTotalRows());
sb.append("\" currentpage=\"").append(getPageNum());
sb.append("\" pagesize=\"").append(getPageSize());
sb.append("\" firstpage=\"").append(getFirstPageNum());
sb.append("\" prepage=\"").append(getPrePageNum());
sb.append("\" nextpage=\"").append(getNextPageNum());
sb.append("\" lastpage=\"").append(getLastPageNum());
sb.append("\" pagerecords=\"").append(getPageRows());
sb.append("\"/>");
return sb.toString();
}
}