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 { @@ -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 { @@ -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);
}
}
}

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

@ -16,6 +16,7 @@ @@ -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 { @@ -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);

Loading…
Cancel
Save