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

com.itxiaoer.commons.orm.page.PagingUtils Maven / Gradle / Ivy

The newest version!
package com.itxiaoer.commons.orm.page;

import com.itxiaoer.commons.core.beans.ProcessUtils;
import com.itxiaoer.commons.core.page.PageResponse;
import com.itxiaoer.commons.core.page.Paging;
import com.itxiaoer.commons.core.util.Lists;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;

import java.util.Arrays;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.stream.Collectors;

/**
 * @author : liuyk
 */
@SuppressWarnings({"unused", "WeakerAccess"})
public class PagingUtils {

    private static PageFunction defaultFunction = (sorts -> {
        if (sorts.isEmpty()) {
            return Sort.unsorted();
        }
        List orders = sorts.stream().map(sort -> new Sort.Order(Sort.Direction.fromString(sort.getDirection()), sort.getName())).collect(Collectors.toList());
        return Sort.by(orders);
    });

    public static PageRequest of(Paging paging) {
        return of(paging, defaultFunction);
    }


    public static PageRequest of(Paging paging, PageFunction pageFunction) {
        return paging.get(pageFunction);
    }

    public static  PageResponse of(Page page) {
        return PageResponse.apply(page.getTotalElements(), page.getContent());
    }

    public static  PageResponse of(Page page, Class t) {
        return of(page, t, null);
    }

    public static  PageResponse of(Page page, Class t, BiConsumer biConsumer) {
        List content = page.getContent();
        if (Lists.iterable(content)) {
            return PageResponse.apply(page.getTotalElements(), ProcessUtils.processList(t, content, biConsumer));
        }
        return PageResponse.apply(page.getTotalElements(), Lists.newArrayList());
    }

    public static Sort of(com.itxiaoer.commons.core.page.Sort... sorts) {
        return defaultFunction.apply(Arrays.asList(sorts));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy