Interface Page<T>

  • Type Parameters:
    T - The generic type
    All Superinterfaces:
    java.lang.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
    • Field Detail

      • EMPTY

        static final Page<?> EMPTY
    • Method Detail

      • 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> Page<T2> map​(java.util.function.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> Page<T> of​(@NonNull
                              java.util.List<T> content,
                              @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> Page<T2> empty()
        Creates an empty page object.
        Type Parameters:
        T2 - The generic type
        Returns:
        The slice