package io.oasp.module.jpa.common.api.to; import java.util.List; import net.sf.mmm.util.entity.api.PersistenceEntity; import net.sf.mmm.util.transferobject.api.TransferObject; import io.oasp.module.basic.common.api.to.AbstractTo; /** * A paginated list of objects with additional pagination information. * * @param <E> is the generic type of the objects. Will usually be a {@link PersistenceEntity persistent entity} when * used in the data layer, or a {@link TransferObject transfer object}. * */ public class PaginatedListTo<E> extends AbstractTo { /** UID for serialization. */ private static final long serialVersionUID = 1L; /** @see #getPagination() */ private PaginationResultTo pagination; /** @see #getResult() */ private List<E> result; /** * The constructor. */ public PaginatedListTo() { super(); } /** * A convenience constructor which accepts a paginated list and {@link PaginationResultTo pagination information}. * * @param result is the list of objects. * @param pagination is the {@link PaginationResultTo pagination information}. */ public PaginatedListTo(List<E> result, PaginationResultTo pagination) { this.result = result; this.pagination = pagination; } /** * @return the list of objects. */ public List<E> getResult() { return this.result; } /** * @return pagination is the {@link PaginationResultTo pagination information}. */ public PaginationResultTo getPagination() { return this.pagination; } @Override protected void toString(StringBuilder buffer) { super.toString(buffer); buffer.append('@'); if (this.result != null) { buffer.append("#result="); buffer.append(this.result.size()); } if (this.pagination != null) { buffer.append(','); this.pagination.toString(buffer); } } }