HelperFunctions.java

package io.smartir.smartir.website.helper;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;

import java.util.List;

public class HelperFunctions {
    public <T> Page<T> makingPagination(List<T> givenList, Pageable pageable) {
        if (pageable.getOffset() > givenList.size()) {
            long total = 0L;
            return new PageImpl<>(List.of(), pageable, total);
        }
        if ((pageable.getOffset() <= givenList.size()) && (pageable.getOffset() + pageable.getPageSize() > givenList.size())) {
            var size = givenList.size();
            var givenSubList = givenList.subList((int) pageable.getOffset(), size);
            return new PageImpl<>(givenSubList, pageable, givenList.size());
        }
        var givenSubList = givenList.subList((int) pageable.getOffset(), (int) (pageable.getOffset() + pageable.getPageSize()));
        return new PageImpl<>(givenSubList, pageable, givenList.size());
    }
}