package marubinotto.util.paging; import java.util.List; import marubinotto.util.Assert; public class PageImpl<E> extends AbstractPage<E> { private List<E> elements; private int pageSize; private int pageIndex; private long totalSize; public PageImpl(List<E> elements, int pageSize, int pageIndex, long totalSize) { Assert.Arg.notNull(elements, "elements"); this.elements = elements; this.pageSize = pageSize; this.pageIndex = pageIndex; this.totalSize = totalSize; } @Override public E get(int index) { return this.elements.get(index); } @Override public int size() { return this.elements.size(); } public int getPageSize() { return this.pageSize; } public int getPageIndex() { return this.pageIndex; } public long getTotalSize() { return this.totalSize; } public String toString() { return "Page: page(" + getPageIndex() + "/" + getPageCount() + ") size(" + size() + "/" + getTotalSize() + ") " + this.elements; } }