package com.jtgh.yjpt.common; import java.io.Serializable; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Direction; /** * 分页处理对象,单字段排序 * * @author 袁晓冬 * */ public class SinglePageRequest implements Pageable, Serializable { /** serialVersionUID */ private static final long serialVersionUID = -8842412227660495154L; /** 当前页码 */ private int page; /** 每页条数 */ private int size; /** 排序方向 */ private String direction; /** 排序字段 */ private String sortField; public SinglePageRequest() { } public SinglePageRequest(int page, int size, String direction, String sortField) { this.page = page; this.size = size; this.direction = direction; this.sortField = sortField; } @Override public Pageable first() { return new SinglePageRequest(0, size, direction, sortField); } public String getDirection() { return direction; } @Override public int getOffset() { return page * size; } public int getPage() { return page; } @Override public int getPageNumber() { return page; } @Override public int getPageSize() { return size; } public int getSize() { return size; } @Override public Sort getSort() { return new Sort(Direction.fromString(direction), new String[] { sortField }); } public String getSortField() { return sortField; } @Override public boolean hasPrevious() { return page > 0; } @Override public Pageable next() { return new PageRequest(page + 1, size, getSort()); } @Override public Pageable previousOrFirst() { return hasPrevious() ? new PageRequest(page - 1, size, getSort()) : this; } public void setDirection(String direction) { this.direction = direction; } public void setPage(int page) { this.page = page; } public void setSize(int size) { this.size = size; } public void setSortField(String sortField) { this.sortField = sortField; } @Override public String toString() { return "SinglePageRequest [page=" + page + ", size=" + size + ", direction=" + direction + ", sortField=" + sortField + "]"; } }