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

org.nutz.spring.boot.service.entity.Pagination Maven / Gradle / Ivy

There is a newer version: 3.4.1
Show newest version
package org.nutz.spring.boot.service.entity;

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

import org.nutz.lang.Lang;
import org.nutz.lang.util.NutMap;

import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Builder.Default;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 
 * @author Kerbores([email protected])
 *
 * @param 
 *            实体类型
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false, of = {"paras", "dataList"})
public class Pagination extends org.nutz.dao.pager.Pager {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    /**
     * 分页参数(带有一堆参数的分页)
     */
    private NutMap paras;

    /**
     * 数据列表
     */
    @NotNull(message = "数据列表非空,没有数据时为空列表")
    @Default
    private List dataList = Lang.list();

    /**
     * @param page
     *            页面
     * @param pageSize
     *            页面大小
     */
    public Pagination(int page, int pageSize) {
        super(page, pageSize);
    }

    public static  Pagination instance() {
        return Pagination. builder()
                         .build();
    }

    public static  Pagination instance(int page, int pageSize) {
        return Pagination. builder()
                         .build()
                         .page(page)
                         .size(pageSize);
    }

    public static  Pagination instance(List dataList) {
        return Pagination. builder()
                         .dataList(dataList)
                         .build();
    }

    public Pagination dataList(List dataList) {
        setDataList(dataList);
        return this;
    }

    public Pagination page(int page) {
        setPageNumber(page);
        return this;
    }

    public Pagination size(int size) {
        setPageSize(size);
        return this;
    }

    public Pagination recordCount(int recordCount) {
        setRecordCount(recordCount);
        return this;
    }

    /**
     * 添加参数
     * 
     * @param key
     *            参数key
     * @param value
     *            参数值
     * @return 当前分页对象
     */
    public Pagination addParam(String key, Object value) {
        if (this.paras == null) {
            this.paras = NutMap.NEW();
        }
        this.paras.addv(key, value);
        return this;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy