package ru.hflabs.rcd.web.model; import lombok.Getter; import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import java.io.Serializable; import java.util.Collection; /** * Класс <class>PageResponseBean</class> содержит страницу объектов результатов фильтрации * * @param <T> класс объектов фильтрации * @see ru.hflabs.rcd.model.criteria.FilterResult */ @Getter @XmlAccessorType(XmlAccessType.PROPERTY) public class PageResponseBean<T> implements Serializable { private static final long serialVersionUID = -4444425417896083638L; /** Количество объектов на странице */ private final int pageSize; /** Текущая страница */ private final int currentPage; /** Общее количество страниц */ private final int totalPages; /** Общее количество объектов */ private final int totalRecords; /** Результат фильтрации */ private final Collection<T> content; public PageResponseBean(int pageSize, int currentPage, int totalPages, int totalRecords, Collection<T> content) { this.pageSize = pageSize; this.content = content; this.currentPage = currentPage; this.totalRecords = totalRecords; this.totalPages = totalPages; } public int getFirstPage() { return PageRequestBean.DEFAULT_PAGE; } public int getLastPage() { return totalPages != 0 ? totalPages : getFirstPage(); } }