Skip to content

Commit 2db26d2

Browse files
Anastasiia Smirnovamp911de
Anastasiia Smirnova
authored andcommitted
Add PageRequest builder.
We now support PageRequest creation through PageRequest.ofSize(10).withPage(1).withSort(Direction.DESC, "foo"). Simplified Pageable instances can be created through Pageable.ofSize(10).withPage(1). Closes #322.
1 parent d4b8e38 commit 2db26d2

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

src/main/java/org/springframework/data/domain/PageRequest.java

+30
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,10 @@ public static PageRequest of(int page, int size, Direction direction, String...
8383
return of(page, size, Sort.by(direction, properties));
8484
}
8585

86+
public static PageRequestBuilder pageRequest() {
87+
return new PageRequestBuilder();
88+
}
89+
8690
/*
8791
* (non-Javadoc)
8892
* @see org.springframework.data.domain.Pageable#getSort()
@@ -155,4 +159,30 @@ public int hashCode() {
155159
public String toString() {
156160
return String.format("Page request [number: %d, size %d, sort: %s]", getPageNumber(), getPageSize(), sort);
157161
}
162+
163+
public static final class PageRequestBuilder {
164+
165+
private Sort sort = Sort.unsorted();
166+
private int page;
167+
private int size;
168+
169+
public PageRequestBuilder sort(Sort sort) {
170+
this.sort = sort;
171+
return this;
172+
}
173+
174+
public PageRequestBuilder page(int page) {
175+
this.page = page;
176+
return this;
177+
}
178+
179+
public PageRequestBuilder size(int size) {
180+
this.size = size;
181+
return this;
182+
}
183+
184+
public PageRequest build() {
185+
return PageRequest.of(page, size, sort);
186+
}
187+
}
158188
}

src/test/java/org/springframework/data/domain/PageRequestUnitTests.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.springframework.data.domain;
1717

1818
import static org.assertj.core.api.Assertions.*;
19+
import static org.springframework.data.domain.PageRequest.pageRequest;
1920
import static org.springframework.data.domain.UnitTestUtils.*;
2021

2122
import org.junit.jupiter.api.Test;
@@ -45,7 +46,7 @@ AbstractPageRequest newPageRequest(int page, int size, Sort sort) {
4546
void equalsRegardsSortCorrectly() {
4647

4748
Sort sort = Sort.by(Direction.DESC, "foo");
48-
AbstractPageRequest request = PageRequest.of(0, 10, sort);
49+
AbstractPageRequest request = pageRequest().page(0).size(10).sort(sort).build();
4950

5051
// Equals itself
5152
assertEqualsAndHashcode(request, request);

0 commit comments

Comments
 (0)