Browse Source

DATACMNS-867 - Removed Optional from ResultProcessor.withDynamicProjection(…).

We now expect the PropertyAccessor to either be non-null or the method not being called at all.
pull/194/head
Oliver Gierke 9 years ago
parent
commit
a5c4be5f0a
  1. 9
      src/main/java/org/springframework/data/repository/query/ResultProcessor.java
  2. 6
      src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java

9
src/main/java/org/springframework/data/repository/query/ResultProcessor.java

@ -23,7 +23,6 @@ import java.util.Collection; @@ -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 { @@ -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<ParameterAccessor> 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);
}

6
src/test/java/org/springframework/data/repository/query/ResultProcessorUnitTests.java

@ -25,7 +25,6 @@ import rx.Single; @@ -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 { @@ -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);
}

Loading…
Cancel
Save