PaginationSupport 分页

public class PaginationSupport implements java.io.Serializable {

private static final long serialVersionUID = -428726637561960498L;
private static Integer DEFAULT_COUNT_ON_EACH_PAGE = 10;
private Integer totalCount;
private Integer pageIndex;
private Integer pageSize;
private String      orderField;
private String      orderMethod;
private String      url;
private String      placeId;
private List<Object> items;
public PaginationSupport() {
this(DEFAULT_COUNT_ON_EACH_PAGE);
}
public PaginationSupport(Integer pageSize) {
pageIndex = 0;
if (pageSize < 1) {
throw new IllegalArgumentException("Count should be greater than zero!");
} else {
this.pageSize = pageSize;
}
}
public PaginationSupport(Integer pageIndex, Integer totalCount, Integer pageSize) {
this.pageIndex = pageIndex;
this.totalCount = totalCount;
this.pageSize = pageSize;
if (this.pageSize <= 0) {
this.pageSize = DEFAULT_COUNT_ON_EACH_PAGE;
}
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public Integer getTotalCount() {
return totalCount;
}
public Integer getEndIndex() {
Integer endIndex = getPageIndex() + pageSize;
if (endIndex > totalCount) {
return totalCount;
} else {
return endIndex;
}
}
public Integer getPageIndex() {

if (totalCount!=null && pageIndex > totalCount) {
return totalCount;
} else if (pageIndex < 0) {
return 0;
} else {
return pageIndex;
}
}
public Integer getNextIndex() {
Integer[] nextPageIndexes = getNextPageIndexes();
if (nextPageIndexes == null) {
return getTotalCount();
} else {
return nextPageIndexes[0];
}
}
public Integer getPreviousIndex() {
Integer[] previousIndexes = getPreviousPageIndexes();
if (previousIndexes == null) {
return getPageIndex();
} else {
return previousIndexes[previousIndexes.length - 1];
}
}
public Integer[] getNextPageIndexes() {
Integer index = getEndIndex();
if (index == totalCount) {
return null;
}
Integer count = (totalCount - index) / pageSize;
if ((totalCount - index) % pageSize > 0) {
count++;
}
Integer result[] = new Integer[count];
for (Integer i = 0; i < count; i++) {
result[i] = index;
index += pageSize;
}
return result;
}
public Integer[] getPreviousPageIndexes() {
Integer index = getPageIndex();
if (index == 0) {
return null;
}
Integer count = index / pageSize;
if (index % pageSize > 0) {
count++;
}
Integer result[] = new Integer[count];
for (Integer i = count - 1; i > 0; i--) {
index -= pageSize;
result[i] = index;
}
return result;
}
public Integer getPageSize() {
return pageSize;
}
public void setTotalCount(Integer totalCount) {
this.totalCount = totalCount;
validate();
}
private void validate() {
if (pageIndex > totalCount) {
Integer i = getTotalCount() % pageSize;
pageIndex = totalCount - i;
}
if (pageIndex < 0) {
pageIndex = 0;
}
}
/**
* Return the number of pages for the current query.
*/
public Integer getPageCount() {
Integer pages = getTotalCount() / pageSize;
Integer i = getTotalCount() % pageSize;
if (i > 0) {
pages++;
}
if (getTotalCount() == 0) {
pages = 1;
}
return pages;
}
/**
* Return the current page number. Page numbering starts with 1.
*/
public Integer getPage() {
Integer page = pageIndex / pageSize;
return page + 1;
}
public Integer getPagePre() {
Integer page = pageIndex / pageSize;
return page - 1;
}
public void setPage(Integer page) {
if (page < 1) {
pageIndex = 0;
} else {
pageIndex = (page - 1) * pageSize;
}
}
public String toString() {
return "PaginationSupport[" + "totalCount=" + totalCount + ", pageIndex=" + pageIndex + ", pageCount=" + getPageCount() + ", page=" + getPage() + "]";
}
public void setItems(List<Object> items) {
this.items = items;
}
public List<Object> getItems() {
return items;
}
public String psToJson() {
StringBuilder sb = new StringBuilder();
try {
sb.append("{\"totalCount\":\"" + totalCount + "\",\"pageData\":");
if (items != null && items.size() > 0) {
JSONArray json = JSONArray.fromObject(items);
sb.append(json.toString());
}
sb.append("}");
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}
public HashMap<Object,Object> psToHashMap() {
HashMap<Object,Object> map = new HashMap<Object,Object>();
map.put("totalCount", totalCount);
map.put("pageData", items);
return map;
}
public String getOrderField() {
return orderField;
}
public void setOrderField(String orderField) {
this.orderField = orderField;
}
public String getOrderMethod() {
return orderMethod;
}
public void setOrderMethod(String orderMethod) {
this.orderMethod = orderMethod;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getPlaceId() {
return placeId;
}
public void setPlaceId(String placeId) {
this.placeId = placeId;
}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值