diff --git a/src/main/java/org/springframework/data/domain/PageRequest.java b/src/main/java/org/springframework/data/domain/PageRequest.java index 45cafd76ee..6f28c97653 100644 --- a/src/main/java/org/springframework/data/domain/PageRequest.java +++ b/src/main/java/org/springframework/data/domain/PageRequest.java @@ -109,6 +109,10 @@ public static PageRequest of(int page, int size, Direction direction, String... return of(page, size, Sort.by(direction, properties)); } + public static PageRequestBuilder pageRequest() { + return new PageRequestBuilder(); + } + /* * (non-Javadoc) * @see org.springframework.data.domain.Pageable#getSort() @@ -178,4 +182,30 @@ public int hashCode() { 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 2ecd528bd0..05819eddab 100755 --- a/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java +++ b/src/test/java/org/springframework/data/domain/PageRequestUnitTests.java @@ -15,6 +15,7 @@ */ package org.springframework.data.domain; +import static org.springframework.data.domain.PageRequest.pageRequest; import static org.springframework.data.domain.UnitTestUtils.*; import org.junit.Test; @@ -44,7 +45,7 @@ public AbstractPageRequest newPageRequest(int page, int size, Sort sort) { public 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);