Browse Source

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.
pull/2286/head
Anastasiia Smirnova 7 years ago committed by Mark Paluch
parent
commit
2db26d2765
No known key found for this signature in database
GPG Key ID: 4406B84C1661DCD1
  1. 30
      src/main/java/org/springframework/data/domain/PageRequest.java
  2. 3
      src/test/java/org/springframework/data/domain/PageRequestUnitTests.java

30
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)); return of(page, size, Sort.by(direction, properties));
} }
public static PageRequestBuilder pageRequest() {
return new PageRequestBuilder();
}
/* /*
* (non-Javadoc) * (non-Javadoc)
* @see org.springframework.data.domain.Pageable#getSort() * @see org.springframework.data.domain.Pageable#getSort()
@ -155,4 +159,30 @@ public class PageRequest extends AbstractPageRequest {
public String toString() { public String toString() {
return String.format("Page request [number: %d, size %d, sort: %s]", getPageNumber(), getPageSize(), sort); 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);
}
}
} }

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

@ -16,6 +16,7 @@
package org.springframework.data.domain; package org.springframework.data.domain;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.springframework.data.domain.PageRequest.pageRequest;
import static org.springframework.data.domain.UnitTestUtils.*; import static org.springframework.data.domain.UnitTestUtils.*;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@ -45,7 +46,7 @@ class PageRequestUnitTests extends AbstractPageRequestUnitTests {
void equalsRegardsSortCorrectly() { void equalsRegardsSortCorrectly() {
Sort sort = Sort.by(Direction.DESC, "foo"); 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 // Equals itself
assertEqualsAndHashcode(request, request); assertEqualsAndHashcode(request, request);

Loading…
Cancel
Save