diff --git a/src/main/java/org/springframework/data/domain/PageRequest.java b/src/main/java/org/springframework/data/domain/PageRequest.java index c9ea403e8..5f6a0a9d9 100644 --- a/src/main/java/org/springframework/data/domain/PageRequest.java +++ b/src/main/java/org/springframework/data/domain/PageRequest.java @@ -83,6 +83,10 @@ public class PageRequest extends AbstractPageRequest { return of(page, size, Sort.by(direction, properties)); } + public static PageRequestBuilder pageRequest() { + return new PageRequestBuilder(); + } + /* * (non-Javadoc) * @see org.springframework.data.domain.Pageable#getSort() @@ -155,4 +159,30 @@ public class PageRequest extends AbstractPageRequest { public String toString() { return String.format("Page request [number: %d, size %d, sort: %s]", getPageNumber(), getPageSize(), sort); } + + public static final class PageRequestBuilder { + + private Sort sort = Sort.unsorted(); + private int page; + private int size; + + public PageRequestBuilder sort(Sort sort) { + this.sort = sort; + return this; + } + + public PageRequestBuilder page(int page) { + this.page = page; + return this; + } + + public PageRequestBuilder size(int size) { + this.size = size; + return this; + } + + public PageRequest build() { + return PageRequest.of(page, size, sort); + } + } } diff --git a/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java b/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java index 422f13ddf..56717b0e5 100755 --- a/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java @@ -16,6 +16,7 @@ package org.springframework.data.domain; import static org.assertj.core.api.Assertions.*; +import static org.springframework.data.domain.PageRequest.pageRequest; import static org.springframework.data.domain.UnitTestUtils.*; import org.junit.jupiter.api.Test; @@ -45,7 +46,7 @@ class PageRequestUnitTests extends AbstractPageRequestUnitTests { void equalsRegardsSortCorrectly() { Sort sort = Sort.by(Direction.DESC, "foo"); - AbstractPageRequest request = PageRequest.of(0, 10, sort); + AbstractPageRequest request = pageRequest().page(0).size(10).sort(sort).build(); // Equals itself assertEqualsAndHashcode(request, request);