Pagedata.java
package com.foxinmy.weixin4j.model.paging;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
public class Pagedata<T> implements Serializable, Iterable<T> {
private static final long serialVersionUID = 163159826528502864L;
private final int total;
private final Pageable pageable;
private final List<T> content;
public Pagedata(Pageable pageable, int total, List<T> content) {
this.pageable = pageable;
this.total = total;
this.content = content;
}
public int getNumber() {
return pageable == null ? 0 : pageable.getPageNumber();
}
public int getSize() {
return pageable == null ? 0 : pageable.getPageSize();
}
public int getTotalPages() {
return getSize() == 0 ? 1 : (int) Math.ceil((double) total
/ (double) getSize());
}
public int getTotalElements() {
return total;
}
public int getNumberOfElements() {
return hasContent() ? 0 : content.size();
}
public boolean hasContent() {
return content != null && !content.isEmpty();
}
public boolean hasPrevious() {
return pageable == null ? false : pageable.hasPrevious();
}
public boolean hasNext() {
return getNumber() + 1 < getTotalPages();
}
public Sort getSort() {
return pageable == null ? null : pageable.getSort();
}
public List<T> getContent() {
return content;
}
@Override
public Iterator<T> iterator() {
return hasContent() ? content.iterator() : null;
}
@Override
public String toString() {
return "Pagedata [total=" + total + ", pageable=" + pageable + "]";
}
}