No Description

PageQueryResult.java 1.7KB

    package org.jfw.util; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class PageQueryResult<T> { private int total; private int pageNo = 1; private int pageSize; public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public List<T> getData() { return data; } public void setData(List<T> data) { this.data = data; } private List<T> data; public static <T> PageQueryResult<T> build(List<T> list, int pageSize, int pageNo) { PageQueryResult<T> ret = new PageQueryResult<T>(); ret.setTotal(list.size()); pageSize = Math.max(1, pageSize); pageNo = Math.max(1, pageNo); if (list.isEmpty()) { ret.setData(list); ret.setPageNo(pageNo); ret.setPageSize(1); } else if (pageNo == 1) { ret.setPageNo(pageNo); ret.setPageSize(pageSize); ret.setData(list.subList(0,Math.min(list.size(), pageSize))); } else { int tps = list.size() / pageSize; if (list.size() % pageSize != 0) { ++tps; } if (pageNo > tps) { pageNo = tps; } ret.setPageNo(pageNo); ret.setPageSize(pageSize); int begin = pageNo * pageSize - pageSize; ret.setData(list.subList(begin,Math.min(list.size(), begin + pageSize))); } return ret; } public static void main(String[] args) { List<String> list = new LinkedList<String>(); for(int i = 0 ; i < 14;++i) list.add("a"); PageQueryResult.build(list,10,2); new PageQueryResult<String>().setData(Collections.<String> emptyList()); } }