Browse Source

DATACMNS-867 - Moved to new factory methods for Sort.

Codebase now uses Sort.by(…) where possible instead of the deprecated new Sort(…).
pull/194/head
Oliver Gierke 9 years ago
parent
commit
417e728e77
  1. 4
      src/main/java/org/springframework/data/domain/PageRequest.java
  2. 28
      src/main/java/org/springframework/data/domain/Sort.java
  3. 2
      src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java
  4. 2
      src/test/java/org/springframework/data/domain/PageRequestUnitTests.java
  5. 18
      src/test/java/org/springframework/data/domain/SortUnitTests.java
  6. 2
      src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java
  7. 4
      src/test/java/org/springframework/data/querydsl/QSortUnitTests.java
  8. 4
      src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java
  9. 1
      src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java
  10. 4
      src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java
  11. 2
      src/test/java/org/springframework/data/web/SortDefaultUnitTests.java
  12. 8
      src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java

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

@ -55,7 +55,7 @@ public class PageRequest extends AbstractPageRequest {
*/ */
@Deprecated @Deprecated
public PageRequest(int page, int size, Direction direction, String... properties) { public PageRequest(int page, int size, Direction direction, String... properties) {
this(page, size, new Sort(direction, properties)); this(page, size, Sort.by(direction, properties));
} }
/** /**
@ -83,7 +83,7 @@ public class PageRequest extends AbstractPageRequest {
} }
public static PageRequest of(int page, int size, Direction direction, String... properties) { public static PageRequest of(int page, int size, Direction direction, String... properties) {
return of(page, size, new Sort(direction, properties)); return of(page, size, Sort.by(direction, properties));
} }
/* /*

28
src/main/java/org/springframework/data/domain/Sort.java

@ -39,7 +39,7 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
private static final long serialVersionUID = 5737186511678863905L; private static final long serialVersionUID = 5737186511678863905L;
private static final Sort UNSORTED = new Sort(new Order[0]); private static final Sort UNSORTED = Sort.by(new Order[0]);
public static final Direction DEFAULT_DIRECTION = Direction.ASC; public static final Direction DEFAULT_DIRECTION = Direction.ASC;
@ -93,7 +93,7 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
/** /**
* Creates a new {@link Sort} instance. * Creates a new {@link Sort} instance.
* *
* @param direction defaults to {@linke Sort#DEFAULT_DIRECTION} (for {@literal null} cases, too) * @param direction defaults to {@link Sort#DEFAULT_DIRECTION} (for {@literal null} cases, too)
* @param properties must not be {@literal null} or contain {@literal null} or empty strings. * @param properties must not be {@literal null} or contain {@literal null} or empty strings.
*/ */
public Sort(Direction direction, List<String> properties) { public Sort(Direction direction, List<String> properties) {
@ -148,6 +148,24 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
return new Sort(orders); return new Sort(orders);
} }
/**
* Creates a new {@link Sort} for the given {@link Order}s.
*
* @param direction must not be {@literal null}.
* @param properties must not be {@literal null}.
* @return
*/
public static Sort by(Direction direction, String... properties) {
Assert.notNull(direction, "Direction must not be null!");
Assert.notNull(properties, "Properties must not be null!");
Assert.isTrue(properties.length > 0, "At least one property must be given!");
return Sort.by(Arrays.stream(properties)//
.map(it -> new Order(direction, it))//
.collect(Collectors.toList()));
}
/** /**
* Returns a {@link Sort} instances representing no sorting setup at all. * Returns a {@link Sort} instances representing no sorting setup at all.
* *
@ -419,6 +437,10 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
this(DEFAULT_DIRECTION, property); this(DEFAULT_DIRECTION, property);
} }
public static Order by(String property) {
return new Order(property);
}
/** /**
* Creates a new {@link Order} instance. if order is {@literal null} then order defaults to * Creates a new {@link Order} instance. if order is {@literal null} then order defaults to
* {@link Sort#DEFAULT_DIRECTION} * {@link Sort#DEFAULT_DIRECTION}
@ -515,7 +537,7 @@ public class Sort implements Iterable<org.springframework.data.domain.Sort.Order
* @return * @return
*/ */
public Sort withProperties(String... properties) { public Sort withProperties(String... properties) {
return new Sort(this.direction, properties); return Sort.by(this.direction, properties);
} }
/** /**

2
src/main/java/org/springframework/data/web/SortHandlerMethodArgumentResolver.java

@ -178,7 +178,7 @@ public class SortHandlerMethodArgumentResolver implements SortArgumentResolver {
return Sort.unsorted(); return Sort.unsorted();
} }
return sortOrNull.and(new Sort(sortDefault.direction(), fields)); return sortOrNull.and(Sort.by(sortDefault.direction(), fields));
} }
/** /**

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

@ -43,7 +43,7 @@ public class PageRequestUnitTests extends AbstractPageRequestUnitTests {
@Test @Test
public void equalsRegardsSortCorrectly() { public void equalsRegardsSortCorrectly() {
Sort sort = new Sort(Direction.DESC, "foo"); Sort sort = Sort.by(Direction.DESC, "foo");
AbstractPageRequest request = PageRequest.of(0, 10, sort); AbstractPageRequest request = PageRequest.of(0, 10, sort);
// Equals itself // Equals itself

18
src/test/java/org/springframework/data/domain/SortUnitTests.java

@ -38,9 +38,7 @@ public class SortUnitTests {
*/ */
@Test @Test
public void appliesDefaultForOrder() throws Exception { public void appliesDefaultForOrder() throws Exception {
assertThat(Sort.by("foo").iterator().next().getDirection()).isEqualTo(Sort.DEFAULT_DIRECTION); assertThat(Sort.by("foo").iterator().next().getDirection()).isEqualTo(Sort.DEFAULT_DIRECTION);
assertThat(new Sort((Direction) null, "foo").iterator().next().getDirection()).isEqualTo(Sort.DEFAULT_DIRECTION);
} }
/** /**
@ -51,7 +49,7 @@ public class SortUnitTests {
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void preventsNullProperties() throws Exception { public void preventsNullProperties() throws Exception {
new Sort(Direction.ASC, (String[]) null); Sort.by(Direction.ASC, (String[]) null);
} }
/** /**
@ -62,7 +60,7 @@ public class SortUnitTests {
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void preventsNullProperty() throws Exception { public void preventsNullProperty() throws Exception {
new Sort(Direction.ASC, (String) null); Sort.by(Direction.ASC, (String) null);
} }
/** /**
@ -73,7 +71,7 @@ public class SortUnitTests {
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void preventsEmptyProperty() throws Exception { public void preventsEmptyProperty() throws Exception {
new Sort(Direction.ASC, ""); Sort.by(Direction.ASC, "");
} }
/** /**
@ -84,7 +82,7 @@ public class SortUnitTests {
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)
public void preventsNoProperties() throws Exception { public void preventsNoProperties() throws Exception {
new Sort(Direction.ASC); Sort.by(Direction.ASC);
} }
@Test @Test
@ -152,4 +150,12 @@ public class SortUnitTests {
assertThat(result.getNullHandling()).isEqualTo(source.getNullHandling()); assertThat(result.getNullHandling()).isEqualTo(source.getNullHandling());
assertThat(result.isIgnoreCase()).isEqualTo(source.isIgnoreCase()); assertThat(result.isIgnoreCase()).isEqualTo(source.isIgnoreCase());
} }
@Test
public void preventsNullDirection() {
assertThatExceptionOfType(IllegalArgumentException.class)//
.isThrownBy(() -> Sort.by((Direction) null, "foo"))//
.withMessageContaining("Direction");
}
} }

2
src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java

@ -57,7 +57,7 @@ public class SpringDataJaxbUnitTests {
Marshaller marshaller; Marshaller marshaller;
Unmarshaller unmarshaller; Unmarshaller unmarshaller;
Sort sort = new Sort(Direction.ASC, "firstname", "lastname"); Sort sort = Sort.by(Direction.ASC, "firstname", "lastname");
Pageable pageable = PageRequest.of(2, 15, sort); Pageable pageable = PageRequest.of(2, 15, sort);
Resource resource = new ClassPathResource("pageable.xml", this.getClass()); Resource resource = new ClassPathResource("pageable.xml", this.getClass());
Resource schemaFile = new ClassPathResource("spring-data-jaxb.xsd", this.getClass()); Resource schemaFile = new ClassPathResource("spring-data-jaxb.xsd", this.getClass());

4
src/test/java/org/springframework/data/querydsl/QSortUnitTests.java

@ -114,7 +114,7 @@ public class QSortUnitTests {
QUser user = QUser.user; QUser user = QUser.user;
QSort sort = new QSort(user.firstname.asc()); QSort sort = new QSort(user.firstname.asc());
Sort result = sort.and(new Sort(Direction.ASC, "lastname")); Sort result = sort.and(Sort.by(Direction.ASC, "lastname"));
assertThat(result).hasSize(2); assertThat(result).hasSize(2);
assertThat(result).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, "firstname")); assertThat(result).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, "firstname"));
} }
@ -125,7 +125,7 @@ public class QSortUnitTests {
QUser user = QUser.user; QUser user = QUser.user;
QSort sort = new QSort(user.dateOfBirth.yearMonth().asc()); QSort sort = new QSort(user.dateOfBirth.yearMonth().asc());
Sort result = sort.and(new Sort(Direction.ASC, "lastname")); Sort result = sort.and(Sort.by(Direction.ASC, "lastname"));
assertThat(result).hasSize(2); assertThat(result).hasSize(2);
assertThat(result).contains(new Order(Direction.ASC, "lastname"), assertThat(result).contains(new Order(Direction.ASC, "lastname"),
new Order(Direction.ASC, user.dateOfBirth.yearMonth().toString())); new Order(Direction.ASC, user.dateOfBirth.yearMonth().toString()));

4
src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java

@ -121,7 +121,7 @@ public class ExtensionAwareEvaluationContextProviderUnitTests {
public void exposesPageableParameter() throws Exception { public void exposesPageableParameter() throws Exception {
this.method = SampleRepo.class.getMethod("findByFirstname", String.class, Pageable.class); this.method = SampleRepo.class.getMethod("findByFirstname", String.class, Pageable.class);
PageRequest pageable = PageRequest.of(2, 3, new Sort(Direction.DESC, "lastname")); PageRequest pageable = PageRequest.of(2, 3, Sort.by(Direction.DESC, "lastname"));
assertThat(evaluateExpression("#pageable.offset", new Object[] { "test", pageable })).isEqualTo(6L); assertThat(evaluateExpression("#pageable.offset", new Object[] { "test", pageable })).isEqualTo(6L);
assertThat(evaluateExpression("#pageable.pageSize", new Object[] { "test", pageable })).isEqualTo(3); assertThat(evaluateExpression("#pageable.pageSize", new Object[] { "test", pageable })).isEqualTo(3);
@ -133,7 +133,7 @@ public class ExtensionAwareEvaluationContextProviderUnitTests {
public void exposesSortParameter() throws Exception { public void exposesSortParameter() throws Exception {
this.method = SampleRepo.class.getMethod("findByFirstname", String.class, Sort.class); this.method = SampleRepo.class.getMethod("findByFirstname", String.class, Sort.class);
Sort sort = new Sort(Direction.DESC, "lastname"); Sort sort = Sort.by(Direction.DESC, "lastname");
assertThat(evaluateExpression("#sort.toString()", new Object[] { "test", sort })).isEqualTo("lastname: DESC"); assertThat(evaluateExpression("#sort.toString()", new Object[] { "test", sort })).isEqualTo("lastname: DESC");
} }

1
src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java

@ -44,7 +44,6 @@ public class OrderBySourceUnitTests {
OrderBySource orderBySource = new OrderBySource("LastnameAscUsernameDesc"); OrderBySource orderBySource = new OrderBySource("LastnameAscUsernameDesc");
assertThat(orderBySource.toSort()).isEqualTo(Sort.by("lastname").ascending().and(Sort.by("username").descending())); assertThat(orderBySource.toSort()).isEqualTo(Sort.by("lastname").ascending().and(Sort.by("username").descending()));
// assertThat(orderBySource.toSort()).hasValue(new Sort(new Order(ASC, "lastname"), new Order(DESC, "username")));
} }
@Test(expected = IllegalArgumentException.class) @Test(expected = IllegalArgumentException.class)

4
src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java

@ -37,9 +37,9 @@ public class HateoasSortHandlerMethodArgumentResolverUnitTests extends SortHandl
public void buildsUpRequestParameters() throws Exception { public void buildsUpRequestParameters() throws Exception {
assertUriStringFor(SORT, "sort=firstname,lastname,desc"); assertUriStringFor(SORT, "sort=firstname,lastname,desc");
assertUriStringFor(new Sort(ASC, "foo").and(new Sort(DESC, "bar").and(new Sort(ASC, "foobar"))), assertUriStringFor(Sort.by(ASC, "foo").and(Sort.by(DESC, "bar").and(Sort.by(ASC, "foobar"))),
"sort=foo,asc&sort=bar,desc&sort=foobar,asc"); "sort=foo,asc&sort=bar,desc&sort=foobar,asc");
assertUriStringFor(new Sort(ASC, "foo").and(new Sort(ASC, "bar").and(new Sort(DESC, "foobar"))), assertUriStringFor(Sort.by(ASC, "foo").and(Sort.by(ASC, "bar").and(Sort.by(DESC, "foobar"))),
"sort=foo,bar,asc&sort=foobar,desc"); "sort=foo,bar,asc&sort=foobar,desc");
} }

2
src/test/java/org/springframework/data/web/SortDefaultUnitTests.java

@ -44,7 +44,7 @@ public abstract class SortDefaultUnitTests {
static final String[] SORT_FIELDS = new String[] { "firstname", "lastname" }; static final String[] SORT_FIELDS = new String[] { "firstname", "lastname" };
static final Direction SORT_DIRECTION = Direction.DESC; static final Direction SORT_DIRECTION = Direction.DESC;
static final Sort SORT = new Sort(SORT_DIRECTION, SORT_FIELDS); static final Sort SORT = Sort.by(SORT_DIRECTION, SORT_FIELDS);
@Rule public ExpectedException exception = ExpectedException.none(); @Rule public ExpectedException exception = ExpectedException.none();

8
src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java

@ -55,7 +55,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT
MethodParameter parameter = TestUtils.getParameterOfMethod(getControllerClass(), "unsupportedMethod", String.class); MethodParameter parameter = TestUtils.getParameterOfMethod(getControllerClass(), "unsupportedMethod", String.class);
SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver(); SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver();
Sort fallbackSort = new Sort(Direction.ASC, "ID"); Sort fallbackSort = Sort.by(Direction.ASC, "ID");
resolver.setFallbackSort(fallbackSort); resolver.setFallbackSort(fallbackSort);
Sort sort = resolver.resolveArgument(parameter, null, new ServletWebRequest(new MockHttpServletRequest()), null); Sort sort = resolver.resolveArgument(parameter, null, new ServletWebRequest(new MockHttpServletRequest()), null);
@ -123,7 +123,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT
SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver(); SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver();
Sort result = resolver.resolveArgument(parameter, null, new ServletWebRequest(request), null); Sort result = resolver.resolveArgument(parameter, null, new ServletWebRequest(request), null);
assertThat(result).isEqualTo(new Sort(Direction.ASC, "firstname", "lastname")); assertThat(result).isEqualTo(Sort.by(Direction.ASC, "firstname", "lastname"));
} }
@Test // DATACMNS-408 @Test // DATACMNS-408
@ -150,7 +150,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("sort", "property1,,DESC"); request.addParameter("sort", "property1,,DESC");
assertThat(resolveSort(request, PARAMETER)).isEqualTo(new Sort(DESC, "property1")); assertThat(resolveSort(request, PARAMETER)).isEqualTo(Sort.by(DESC, "property1"));
} }
@Test // DATACMNS-408 @Test // DATACMNS-408
@ -160,7 +160,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT
request.addParameter("sort", "property,DESC"); request.addParameter("sort", "property,DESC");
request.addParameter("sort", ""); request.addParameter("sort", "");
assertThat(resolveSort(request, PARAMETER)).isEqualTo(new Sort(DESC, "property")); assertThat(resolveSort(request, PARAMETER)).isEqualTo(Sort.by(DESC, "property"));
} }
@Test // DATACMNS-379 @Test // DATACMNS-379

Loading…
Cancel
Save