
io.rocketbase.commons.dto.PageableResult Maven / Gradle / Ivy
package io.rocketbase.commons.dto;
import lombok.Data;
import org.springframework.data.domain.Page;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
@Data
public class PageableResult implements Iterable, Serializable {
private long totalElements;
private int totalPages;
private int page;
private int pageSize;
private List content;
public static PageableResult contentPage(List content, Page page) {
PageableResult result = new PageableResult();
result.setContent(content);
result.setTotalPages(page.getTotalPages());
result.setTotalElements(page.getTotalElements());
result.setPage(page.getNumber());
result.setPageSize(page.getSize());
return result;
}
public static PageableResult page(Page page) {
PageableResult result = new PageableResult();
result.setContent(page.getContent());
result.setTotalPages(page.getTotalPages());
result.setTotalElements(page.getTotalElements());
result.setPage(page.getNumber());
result.setPageSize(page.getSize());
return result;
}
public static PageableResult content(List content) {
PageableResult result = new PageableResult();
result.setContent(content);
result.setTotalPages(1);
int totalElements = content != null ? content.size() : 0;
result.setTotalElements(totalElements);
result.setPage(0);
result.setPageSize(totalElements);
return result;
}
@Override
public Iterator iterator() {
return content.iterator();
}
public boolean hasNextPage() {
return page < (totalPages-1);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy