package itn.com.utl.response; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import java.util.List; import java.util.Map; @Getter @Setter @NoArgsConstructor public class PageResponse { private List list; private int totalItems; private int totalPages; private int currentPage; private int size; private Map extraData; public PageResponse(List list, Map extraData, int currentPage, int totalItems, int totalPages, int size) { this.list = list; this.extraData = extraData; this.currentPage = currentPage; this.totalItems = totalItems; this.totalPages = totalPages; this.size = size; } public static PageResponse withList(List list, PaginationInfo pageInfo) { PageResponse res = new PageResponse<>(); res.setList(list); res.setPageInfo(pageInfo); return res; } public static PageResponse withExtra(Map extraData, PaginationInfo pageInfo) { PageResponse res = new PageResponse<>(); res.setExtraData(extraData); res.setPageInfo(pageInfo); return res; } public static PageResponse withAll(List list, Map extraData, PaginationInfo pageInfo) { PageResponse res = new PageResponse<>(); res.setList(list); res.setExtraData(extraData); res.setPageInfo(pageInfo); return res; } private void setPageInfo(PaginationInfo pageInfo) { this.currentPage = pageInfo.getCurrentPageNo(); this.totalItems = pageInfo.getTotalRecordCount(); this.totalPages = pageInfo.getTotalPageCount(); this.size = pageInfo.getRecordCountPerPage(); } }