From 4918eca7cf77febcf43feba30d6fb4dbf342beb4 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Wed, 12 Apr 2017 12:07:28 +0200 Subject: [PATCH] DATACMNS-1043 - Slice now exposes Pageable. We now expose the Pageable that was used to create a Slice via its API. Slice itself constructs a default PageRequest so that current implementations of it still work as before. --- .../java/org/springframework/data/domain/Chunk.java | 4 +++- .../java/org/springframework/data/domain/Slice.java | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/domain/Chunk.java b/src/main/java/org/springframework/data/domain/Chunk.java index 00267e349..5a0c0aaa7 100644 --- a/src/main/java/org/springframework/data/domain/Chunk.java +++ b/src/main/java/org/springframework/data/domain/Chunk.java @@ -15,6 +15,8 @@ */ package org.springframework.data.domain; +import lombok.Getter; + import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; @@ -38,7 +40,7 @@ abstract class Chunk implements Slice, Serializable { private static final long serialVersionUID = 867755909294344406L; private final List content = new ArrayList<>(); - private final Pageable pageable; + private final @Getter Pageable pageable; /** * Creates a new {@link Chunk} with the given content and the given governing {@link Pageable}. diff --git a/src/main/java/org/springframework/data/domain/Slice.java b/src/main/java/org/springframework/data/domain/Slice.java index 8ad73582e..e642a535d 100644 --- a/src/main/java/org/springframework/data/domain/Slice.java +++ b/src/main/java/org/springframework/data/domain/Slice.java @@ -100,6 +100,16 @@ public interface Slice extends Streamable { */ boolean hasPrevious(); + /** + * Returns the {@link Pageable} that's been used to request the current {@link Slice}. + * + * @return + * @since 2.0 + */ + default Pageable getPageable() { + return PageRequest.of(getNumber(), getSize(), getSort()); + } + /** * Returns the {@link Pageable} to request the next {@link Slice}. Can be {@literal null} in case the current * {@link Slice} is already the last one. Clients should check {@link #hasNext()} before calling this method to make