import lombok.Data;
import java.util.List;
@Data
public class Paged<T> {
public static final int DEFAULT_PAGE_SIZE = 20;
public static final int DEFAULT_PAGE = 1;
private int pageNo;
private int pageSize;
private int totalCount;
private int totalPageCount;
private List<T> items;
public Paged() {
}
public Paged(int pageNo, int pageSize, int totalCount, List<T> items) {
this.pageNo = Math.max(pageNo, DEFAULT_PAGE);
this.pageSize = pageSize < 0 && pageSize > DEFAULT_PAGE_SIZE ? DEFAULT_PAGE_SIZE : pageSize;
this.items = items;
this.totalCount = totalCount;
this.totalPageCount = this.totalCount % this.pageSize == 0 ?
this.totalCount / this.pageSize : (this.totalCount / this.pageSize + 1);
}
public static <T> Paged<T> unPaged(List<T> items) {
Paged<T> paged = new Paged<T>();
paged.setItems(items);
return paged;
}
public static <T> Paged<T> empty() {
Paged<T> paged = new Paged<T>();
paged.setItems(Lists.newArrayList());
paged.setTotalCount(0);
paged.setTotalPageCount(0);
return paged;
}
}