Package io.micronaut.data.model
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 Summary
Modifier and TypeMethodDescriptiondefault int
default long
@NonNull Pageable
default int
default int
getSize()
default @NonNull Sort
getSort()
default boolean
hasNext()
Determine whether there is a next page.default boolean
Determine whether there is a previous page.default boolean
isEmpty()
iterator()
default <T2> @NonNull Slice<T2>
Maps the content with the given function.default @NonNull Pageable
Create a pageable for querying the next page of data.static <T2> @NonNull Slice<T2>
Creates a slice from the given content and pageable.default @NonNull Pageable
Create a pageable for querying the previous page of data.Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
getContent
- Returns:
- The content.
-
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
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
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
- Returns:
- The sort
-
getNumberOfElements
default int getNumberOfElements()- Returns:
- The page of elements
-
iterator
-
map
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 contentpageable
- The pageable- Returns:
- The slice
-