Advertisement
Guest User

Untitled

a guest
Jul 22nd, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. package com.ethanpritchard.core.utilities;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6.  
  7. public class Pagination<T> extends ArrayList<T> {
  8.  
  9. private int pageSize;
  10.  
  11. public Pagination(int pageSize) {
  12. this(pageSize, new ArrayList<T>());
  13. }
  14.  
  15. @SafeVarargs
  16. public Pagination(int pageSize, T... objects) {
  17. this(pageSize, Arrays.asList(objects));
  18. }
  19.  
  20. public Pagination(int pageSize, List<T> objects) {
  21. this.pageSize = pageSize;
  22. addAll(objects);
  23. }
  24.  
  25. public int pageSize() {
  26. return pageSize;
  27. }
  28.  
  29. public int totalPages() {
  30. return (int) Math.ceil((double) size() / pageSize);
  31. }
  32.  
  33. public boolean exists(int page) {
  34. return !(page < 0) && page < totalPages();
  35. }
  36.  
  37. public List<T> getPage(int page) {
  38. if (page < 0 || page >= totalPages()) throw new IndexOutOfBoundsException("Index: " + page + ", Size: " + totalPages());
  39.  
  40. int min = page * pageSize;
  41. int max = ((page * pageSize) + pageSize);
  42.  
  43. if (max > size()) max = size();
  44.  
  45. return subList(min, max);
  46. }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement