Interface Slice<T>

Type Parameters:
T - The generic type
All Superinterfaces:
Iterable<T>
All Known Subinterfaces:
CursoredPage<T>, Page<T>

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

A slice is a result list associated with a particular Pageable

Since:
1.0.0
Author:
graemerocher
  • Method Details

    • getContent

      @NonNull @NonNull List<T> getContent()
      Returns:
      The content.
    • getPageable

      @NonNull @NonNull Pageable getPageable()
      Returns:
      The pageable for this slice.
    • getPageNumber

      default int getPageNumber()
      Returns:
      The page number
    • hasNext

      default boolean hasNext()
      Determine whether there is a next page.
      Returns:
      Whether there exist a next page.
      Since:
      4.8.0
    • hasPrevious

      default boolean hasPrevious()
      Determine whether there is a previous page.
      Returns:
      Whether there exist a previous page.
      Since:
      4.8.0
    • nextPageable

      @NonNull default @NonNull Pageable nextPageable()
      Create a pageable for querying the next page of data.

      A pageable may be created even if the end of data was reached to accommodate for cases when new data might be added to the repository. Use hasNext() to verify if you have reached the end.

      Returns:
      The next pageable
    • previousPageable

      @NonNull default @NonNull Pageable previousPageable()
      Create a pageable for querying the previous page of data.

      A pageable may be created even if the end of data was reached to accommodate for cases when new data might be added to the repository. Use hasPrevious() to verify if you have reached the end.

      Returns:
      The previous pageable
    • getOffset

      default long getOffset()
      Returns:
      The offset.
    • getSize

      default int getSize()
      Returns:
      The size of the slice.
    • isEmpty

      default boolean isEmpty()
      Returns:
      Whether the slice is empty
    • getSort

      @NonNull default @NonNull Sort getSort()
      Returns:
      The sort
    • getNumberOfElements

      default int getNumberOfElements()
      Returns:
      The page of elements
    • iterator

      @NonNull default @NonNull Iterator<T> iterator()
      Specified by:
      iterator in interface Iterable<T>
    • map

      @NonNull default <T2> @NonNull Slice<T2> map(Function<T,T2> function)
      Maps the content with the given function.
      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 <T2> @NonNull Slice<T2> of(@NonNull @NonNull List<T2> content, @NonNull @NonNull Pageable pageable)
      Creates a slice from the given content and pageable.
      Type Parameters:
      T2 - The generic type
      Parameters:
      content - The content
      pageable - The pageable
      Returns:
      The slice