Interface Page<T>

Type Parameters:
T - The generic type
All Superinterfaces:
Iterable<T>, Slice<T>

@DefaultImplementation(io.micronaut.data.model.DefaultPage.class) public interface Page<T> extends Slice<T>
Inspired by the Spring Data's Page and GORM's PagedResultList, this models a type that supports pagination operations.

A Page is a result set associated with a particular Pageable that includes a calculation of the total size of number of records.

Since:
1.0.0
Author:
graemerocher
  • Field Details

    • EMPTY

      static final Page<?> EMPTY
  • Method Details

    • getTotalSize

      long getTotalSize()
      Returns:
      The total size of the all records.
    • getTotalPages

      default int getTotalPages()
      Returns:
      The total number of pages
    • map

      @NonNull default <T2> @NonNull Page<T2> map(Function<T,T2> function)
      Maps the content with the given function.
      Specified by:
      map in interface Slice<T>
      Type Parameters:
      T2 - The type returned by the function
      Parameters:
      function - The function to apply to each element in the content.
      Returns:
      A new slice with the mapped content
    • of

      @NonNull static <T> @NonNull Page<T> of(@NonNull @NonNull List<T> content, @NonNull @NonNull Pageable pageable, long totalSize)
      Creates a slice from the given content and pageable.
      Type Parameters:
      T - The generic type
      Parameters:
      content - The content
      pageable - The pageable
      totalSize - The total size
      Returns:
      The slice
    • empty

      @NonNull static <T2> @NonNull Page<T2> empty()
      Creates an empty page object.
      Type Parameters:
      T2 - The generic type
      Returns:
      The slice