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

fun.fengwk.convention4j.api.page.Page Maven / Gradle / Ivy

There is a newer version: 1.1.3
Show newest version
package fun.fengwk.convention4j.api.page;

import java.io.Serializable;
import java.util.List;
import java.util.function.Function;

/**
 * 分页查询结果。
 *
 * @param  查询结果类型。
 *
 * @author fengwk
 */
public interface Page extends Serializable {

    /**
     * 获取当前页码。
     *
     * @return 当前页码。
     */
    int getPageNumber();

    /**
     * 获取当前页面大小。
     *
     * @return 当前页面大小。
     */
    int getPageSize();

    /**
     * 获取总数。
     *
     * @return 总数。
     */
    long getTotalCount();

    /**
     * 获取结果集列表,如果没有结果则返回空列表。
     *
     * @return 结果列表。
     */
    List getResults();

    /**
     * 通过mapper将一项当前分页结果转换为另外的分页结果。
     *
     * @param mapper 映射函数。
     * @return 转换后的分页结果。
     * @param  目标类型。
     */
     Page map(Function mapper);

    /**
     * 通过mapper将所有当前分页结果转换为另外的分页结果。
     *
     * @param mapper 映射函数。
     * @return 转换后的分页结果。
     * @param  目标类型。
     */
     Page mapAll(Function, ? extends List> mapper);

}