All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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