package pl.edu.icm.saos.search.search.model; import com.google.common.base.Objects; /** * Paging criteria for use with {@link pl.edu.icm.saos.search.search.service.SearchService} * @author madryk */ public class Paging { private int pageNumber; private int pageSize; private Sorting sort; //------------------------ CONSTRUCTORS -------------------------- public Paging(int pageNumber, int pageSize) { this(pageNumber, pageSize, null); } public Paging(int pageNumber, int pageSize, Sorting sort) { this.pageNumber = pageNumber; this.pageSize = pageSize; this.sort = sort; } //------------------------ GETTERS -------------------------- public int getPageNumber() { return pageNumber; } public int getPageSize() { return pageSize; } public Sorting getSort() { return sort; } //------------------------ HashCode & Equals -------------------------- @Override public int hashCode() { return Objects.hashCode(pageNumber, pageSize, sort); } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || getClass() != obj.getClass()) { return false; } final Paging other = (Paging) obj; return Objects.equal(this.pageNumber, other.pageNumber) && Objects.equal(this.pageSize, other.pageSize) && Objects.equal(this.sort, other.sort); } //------------------------ toString -------------------------- @Override public String toString() { return Objects.toStringHelper(this) .add("pageNumber", pageNumber) .add("pageSize", pageSize) .add("sort", sort) .toString(); } }