diff --git a/src/main/java/org/springframework/data/domain/PageRequest.java b/src/main/java/org/springframework/data/domain/PageRequest.java index 3baca7dd1..895660ef0 100644 --- a/src/main/java/org/springframework/data/domain/PageRequest.java +++ b/src/main/java/org/springframework/data/domain/PageRequest.java @@ -55,7 +55,7 @@ public class PageRequest extends AbstractPageRequest { */ @Deprecated 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) { - return of(page, size, new Sort(direction, properties)); + return of(page, size, Sort.by(direction, properties)); } /* diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index 3ba48994d..c82d46fd9 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -39,7 +39,7 @@ public class Sort implements Iterable properties) { @@ -148,6 +148,24 @@ public class Sort implements Iterable 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. * @@ -419,6 +437,10 @@ public class Sort implements Iterable Sort.by((Direction) null, "foo"))// + .withMessageContaining("Direction"); + } } diff --git a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java index 103019006..68b2f580d 100755 --- a/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java +++ b/src/test/java/org/springframework/data/domain/jaxb/SpringDataJaxbUnitTests.java @@ -57,7 +57,7 @@ public class SpringDataJaxbUnitTests { Marshaller marshaller; 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); Resource resource = new ClassPathResource("pageable.xml", this.getClass()); Resource schemaFile = new ClassPathResource("spring-data-jaxb.xsd", this.getClass()); diff --git a/src/test/java/org/springframework/data/querydsl/QSortUnitTests.java b/src/test/java/org/springframework/data/querydsl/QSortUnitTests.java index 801bc4c9e..e160bf9e6 100755 --- a/src/test/java/org/springframework/data/querydsl/QSortUnitTests.java +++ b/src/test/java/org/springframework/data/querydsl/QSortUnitTests.java @@ -114,7 +114,7 @@ public class QSortUnitTests { QUser user = QUser.user; 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).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, "firstname")); } @@ -125,7 +125,7 @@ public class QSortUnitTests { QUser user = QUser.user; 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).contains(new Order(Direction.ASC, "lastname"), new Order(Direction.ASC, user.dateOfBirth.yearMonth().toString())); diff --git a/src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java b/src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java index e494cafeb..53bc88e6c 100755 --- a/src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/ExtensionAwareEvaluationContextProviderUnitTests.java @@ -121,7 +121,7 @@ public class ExtensionAwareEvaluationContextProviderUnitTests { public void exposesPageableParameter() throws Exception { 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.pageSize", new Object[] { "test", pageable })).isEqualTo(3); @@ -133,7 +133,7 @@ public class ExtensionAwareEvaluationContextProviderUnitTests { public void exposesSortParameter() throws Exception { 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"); } diff --git a/src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java b/src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java index 79aed5c16..c3bd738ed 100755 --- a/src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/parser/OrderBySourceUnitTests.java @@ -44,7 +44,6 @@ public class OrderBySourceUnitTests { OrderBySource orderBySource = new OrderBySource("LastnameAscUsernameDesc"); 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) diff --git a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java index a96e86bc0..e8f4b3d4e 100755 --- a/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java +++ b/src/test/java/org/springframework/data/web/HateoasSortHandlerMethodArgumentResolverUnitTests.java @@ -37,9 +37,9 @@ public class HateoasSortHandlerMethodArgumentResolverUnitTests extends SortHandl public void buildsUpRequestParameters() throws Exception { 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"); - 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"); } diff --git a/src/test/java/org/springframework/data/web/SortDefaultUnitTests.java b/src/test/java/org/springframework/data/web/SortDefaultUnitTests.java index d490f3ae8..e36a2bcf8 100755 --- a/src/test/java/org/springframework/data/web/SortDefaultUnitTests.java +++ b/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 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(); diff --git a/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java b/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java index 367b1bb2f..0342d07e2 100755 --- a/src/test/java/org/springframework/data/web/SortHandlerMethodArgumentResolverUnitTests.java +++ b/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); SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver(); - Sort fallbackSort = new Sort(Direction.ASC, "ID"); + Sort fallbackSort = Sort.by(Direction.ASC, "ID"); resolver.setFallbackSort(fallbackSort); Sort sort = resolver.resolveArgument(parameter, null, new ServletWebRequest(new MockHttpServletRequest()), null); @@ -123,7 +123,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT SortHandlerMethodArgumentResolver resolver = new SortHandlerMethodArgumentResolver(); 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 @@ -150,7 +150,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT MockHttpServletRequest request = new MockHttpServletRequest(); 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 @@ -160,7 +160,7 @@ public class SortHandlerMethodArgumentResolverUnitTests extends SortDefaultUnitT request.addParameter("sort", "property,DESC"); request.addParameter("sort", ""); - assertThat(resolveSort(request, PARAMETER)).isEqualTo(new Sort(DESC, "property")); + assertThat(resolveSort(request, PARAMETER)).isEqualTo(Sort.by(DESC, "property")); } @Test // DATACMNS-379