From a5c4be5f0a36ed443ba5e556c8acf1f3ff63901d Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Fri, 24 Feb 2017 11:58:27 +0100 Subject: [PATCH] =?UTF-8?q?DATACMNS-867=20-=20Removed=20Optional=20from=20?= =?UTF-8?q?ResultProcessor.withDynamicProjection(=E2=80=A6).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We now expect the PropertyAccessor to either be non-null or the method not being called at all. --- .../data/repository/query/ResultProcessor.java | 9 +++++---- .../data/repository/query/ResultProcessorUnitTests.java | 6 ++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java index 55b8ebad0..1cc382141 100644 --- a/src/main/java/org/springframework/data/repository/query/ResultProcessor.java +++ b/src/main/java/org/springframework/data/repository/query/ResultProcessor.java @@ -23,7 +23,6 @@ import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Optional; import java.util.stream.Stream; import org.springframework.core.CollectionFactory; @@ -84,12 +83,14 @@ public class ResultProcessor { /** * Returns a new {@link ResultProcessor} with a new projection type obtained from the given {@link ParameterAccessor}. * - * @param accessor can be {@literal null}. + * @param accessor must not be {@literal null}. * @return */ - public ResultProcessor withDynamicProjection(Optional accessor) { + public ResultProcessor withDynamicProjection(ParameterAccessor accessor) { - return accessor.flatMap(ParameterAccessor::getDynamicProjection)// + Assert.notNull(accessor, "Parameter accessor must not be null!"); + + return accessor.getDynamicProjection()// .map(it -> new ResultProcessor(method, factory, it))// .orElse(this); } diff --git a/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java b/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java index dc23a3bed..daf8a02e8 100755 --- a/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java +++ b/src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java @@ -25,7 +25,6 @@ import rx.Single; import java.lang.reflect.Method; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Map; @@ -144,12 +143,11 @@ public class ResultProcessorUnitTests { ParameterAccessor accessor = mock(ParameterAccessor.class); ResultProcessor factory = getProcessor("findOneDynamic", Class.class); - assertThat(factory.withDynamicProjection(Optional.empty())).isEqualTo(factory); - assertThat(factory.withDynamicProjection(Optional.of(accessor))).isEqualTo(factory); + assertThat(factory.withDynamicProjection(accessor)).isEqualTo(factory); doReturn(Optional.of(SampleProjection.class)).when(accessor).getDynamicProjection(); - ResultProcessor processor = factory.withDynamicProjection(Optional.of(accessor)); + ResultProcessor processor = factory.withDynamicProjection(accessor); assertThat(processor.getReturnedType().getReturnedType()).isEqualTo(SampleProjection.class); }