From b2a958ad2cf315cf133c1e3db7189fb0f20bd8a7 Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 17:46:47 +1000 Subject: [PATCH 1/7] DATACMNS-1704: Implement GetOrders methods --- .../org/springframework/data/domain/Sort.java | 22 +++++++++++++---- .../data/domain/SortUnitTests.java | 24 +++++++++++++++++++ 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index 39ccbc8eec..ecf6eb90a6 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -49,6 +49,7 @@ public class Sort implements Streamable orders; protected Sort(List orders) { @@ -187,8 +188,7 @@ public boolean isUnsorted() { public Sort and(Sort sort) { Assert.notNull(sort, "Sort must not be null!"); - - ArrayList these = new ArrayList<>(this.orders); + ArrayList these = new ArrayList<>(this.getOrders()); for (Order order : sort) { these.add(order); @@ -264,6 +264,10 @@ public String toString() { return orders.isEmpty() ? "UNSORTED" : StringUtils.collectionToCommaDelimitedString(orders); } + public List getOrders() { + return orders; + } + /** * Creates a new {@link Sort} with the current setup but the given order direction. * @@ -721,17 +725,27 @@ public Iterator iterator() { } + @Override + public List getOrders() { + return recorded.getPropertyPath() // + .map(Sort::by) // + .orElseGet(Sort::unsorted).getOrders(); + } + /* * (non-Javadoc) * @see org.springframework.data.domain.Sort#toString() */ @Override public String toString() { - - return recorded.getPropertyPath() // + System.out.println("REcord: "+ recorded.getPropertyPath() // + .map(Sort::by)); + String s = recorded.getPropertyPath() // .map(Sort::by) // .orElseGet(Sort::unsorted) // .toString(); + System.out.println("S: " + s); + return s; } } } diff --git a/src/test/java/org/springframework/data/domain/SortUnitTests.java b/src/test/java/org/springframework/data/domain/SortUnitTests.java index 605b763907..be5124f166 100755 --- a/src/test/java/org/springframework/data/domain/SortUnitTests.java +++ b/src/test/java/org/springframework/data/domain/SortUnitTests.java @@ -20,11 +20,14 @@ import lombok.Getter; +import java.math.BigInteger; import java.util.Collection; +import java.util.Date; import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort.Direction; import org.springframework.data.domain.Sort.Order; +import org.springframework.data.geo.Circle; /** * Unit test for {@link Sort}. @@ -94,6 +97,27 @@ void allowsCombiningSorts() { assertThat(sort).containsExactly(Order.by("foo"), Order.by("bar")); } + + public class test_class { + public String prop_1; + public String prop_2; + + public String getProp_1() { + return prop_1; + } + + public String getProp_2() { + return prop_2; + } + } + + @Test //DATACMNS-1704 + void allowsCombiningTypedSorts() { + Sort sort = Sort.sort(Circle.class).by(Circle::getCenter) + .and(Sort.sort(Circle.class).by(Circle::getRadius)); + assertThat(sort).containsExactly(Order.by("center"), Order.by("radius")); + } + @Test void handlesAdditionalNullSort() { From bf8d307aac31c3d71093424d481f16b50077918e Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 17:48:44 +1000 Subject: [PATCH 2/7] DATACMNS-1704: Remove sample class --- .../springframework/data/domain/SortUnitTests.java | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/test/java/org/springframework/data/domain/SortUnitTests.java b/src/test/java/org/springframework/data/domain/SortUnitTests.java index be5124f166..9289496f18 100755 --- a/src/test/java/org/springframework/data/domain/SortUnitTests.java +++ b/src/test/java/org/springframework/data/domain/SortUnitTests.java @@ -97,20 +97,6 @@ void allowsCombiningSorts() { assertThat(sort).containsExactly(Order.by("foo"), Order.by("bar")); } - - public class test_class { - public String prop_1; - public String prop_2; - - public String getProp_1() { - return prop_1; - } - - public String getProp_2() { - return prop_2; - } - } - @Test //DATACMNS-1704 void allowsCombiningTypedSorts() { Sort sort = Sort.sort(Circle.class).by(Circle::getCenter) From 9f4472a5531e9541e9051617d0d9b7d9f6050e78 Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 21:47:50 +1000 Subject: [PATCH 3/7] Remove debug stmt --- src/main/java/org/springframework/data/domain/Sort.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index ecf6eb90a6..403ec7237d 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -738,14 +738,10 @@ public List getOrders() { */ @Override public String toString() { - System.out.println("REcord: "+ recorded.getPropertyPath() // - .map(Sort::by)); - String s = recorded.getPropertyPath() // + return recorded.getPropertyPath() // .map(Sort::by) // .orElseGet(Sort::unsorted) // .toString(); - System.out.println("S: " + s); - return s; } } } From 2cc2522d4901c3e0692e084c53b5ac1c7499500f Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 21:59:46 +1000 Subject: [PATCH 4/7] Minimise code diff --- src/main/java/org/springframework/data/domain/Sort.java | 3 ++- .../java/org/springframework/data/domain/SortUnitTests.java | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index 403ec7237d..ca5e61047f 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -40,6 +40,7 @@ * @author Oliver Gierke * @author Thomas Darimont * @author Mark Paluch + * @author Hiufung Kwok */ public class Sort implements Streamable, Serializable { @@ -49,7 +50,6 @@ public class Sort implements Streamable orders; protected Sort(List orders) { @@ -188,6 +188,7 @@ public boolean isUnsorted() { public Sort and(Sort sort) { Assert.notNull(sort, "Sort must not be null!"); + ArrayList these = new ArrayList<>(this.getOrders()); for (Order order : sort) { diff --git a/src/test/java/org/springframework/data/domain/SortUnitTests.java b/src/test/java/org/springframework/data/domain/SortUnitTests.java index 9289496f18..0ab82483a5 100755 --- a/src/test/java/org/springframework/data/domain/SortUnitTests.java +++ b/src/test/java/org/springframework/data/domain/SortUnitTests.java @@ -36,6 +36,7 @@ * @author Kevin Raymond * @author Thomas Darimont * @author Mark Paluch + * @author Hiufung Kwok */ class SortUnitTests { From 9da5d87dabfe3881e1476ac3ac0925985e0c4a8d Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 22:05:19 +1000 Subject: [PATCH 5/7] DATACMNS-1704: Minmise code diff --- src/main/java/org/springframework/data/domain/Sort.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index ca5e61047f..8cf3d85971 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -728,6 +728,7 @@ public Iterator iterator() { @Override public List getOrders() { + return recorded.getPropertyPath() // .map(Sort::by) // .orElseGet(Sort::unsorted).getOrders(); From 8f200d757b8130ce0c82d2cea30580da975b1252 Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Sat, 15 May 2021 22:13:45 +1000 Subject: [PATCH 6/7] DATACMNS-1704: Line break --- src/main/java/org/springframework/data/domain/Sort.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/org/springframework/data/domain/Sort.java b/src/main/java/org/springframework/data/domain/Sort.java index 8cf3d85971..e427428cf0 100644 --- a/src/main/java/org/springframework/data/domain/Sort.java +++ b/src/main/java/org/springframework/data/domain/Sort.java @@ -740,6 +740,7 @@ public List getOrders() { */ @Override public String toString() { + return recorded.getPropertyPath() // .map(Sort::by) // .orElseGet(Sort::unsorted) // From 14977de57a43d68f136857c4584582fc3a197961 Mon Sep 17 00:00:00 2001 From: Hiu Kwok Date: Wed, 19 May 2021 20:46:06 +1000 Subject: [PATCH 7/7] DATACMNS-1704: Remove redundant import --- .../java/org/springframework/data/domain/SortUnitTests.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/org/springframework/data/domain/SortUnitTests.java b/src/test/java/org/springframework/data/domain/SortUnitTests.java index 0ab82483a5..4b709ae25f 100755 --- a/src/test/java/org/springframework/data/domain/SortUnitTests.java +++ b/src/test/java/org/springframework/data/domain/SortUnitTests.java @@ -20,9 +20,7 @@ import lombok.Getter; -import java.math.BigInteger; import java.util.Collection; -import java.util.Date; import org.junit.jupiter.api.Test; import org.springframework.data.domain.Sort.Direction;