Browse Source

DATACMNS-867 - Cleanups.

pull/194/head
Oliver Gierke 9 years ago
parent
commit
2d282b2d7f
  1. 2
      pom.xml
  2. 17
      src/main/java/org/springframework/data/convert/DefaultTypeMapper.java
  3. 11
      src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java

2
pom.xml

@ -18,7 +18,7 @@ @@ -18,7 +18,7 @@
<properties>
<javaslang>2.0.4</javaslang>
<scala>2.11.7</scala>
<mockito>2.1.0-RC.1</mockito>
<mockito>2.2.17</mockito>
<xmlbeam>1.4.8</xmlbeam>
</properties>

17
src/main/java/org/springframework/data/convert/DefaultTypeMapper.java

@ -126,21 +126,11 @@ public class DefaultTypeMapper<S> implements TypeMapper<S> { @@ -126,21 +126,11 @@ public class DefaultTypeMapper<S> implements TypeMapper<S> {
Assert.notNull(basicType, "Basic type must not be null!");
Optional<TypeInformation<? extends T>> calculated = getDefaultedTypeToBeUsed(source)//
.map(it -> foo(it, basicType));
.map(it -> specializeOrDefault(it, basicType));
return calculated.orElse(basicType);
}
// @SuppressWarnings("unchecked")
private static <T> TypeInformation<? extends T> foo(Class<?> sourceType, TypeInformation<T> type) {
return specializeOrDefault(sourceType, type);
// return type//
// .<TypeInformation<? extends T>>map(it -> specializeOrDefault(sourceType, it))
// .orElseGet(() -> (TypeInformation<? extends T>) ClassTypeInformation.from(sourceType));
}
private static <T> TypeInformation<? extends T> specializeOrDefault(Class<?> it, TypeInformation<T> type) {
ClassTypeInformation<?> targetType = ClassTypeInformation.from(it);
@ -157,7 +147,10 @@ public class DefaultTypeMapper<S> implements TypeMapper<S> { @@ -157,7 +147,10 @@ public class DefaultTypeMapper<S> implements TypeMapper<S> {
* @return
*/
private Optional<Class<?>> getDefaultedTypeToBeUsed(S source) {
return readType(source).map(it -> readType(source)).orElseGet(() -> getFallbackTypeFor(source))
return readType(source)//
.map(it -> readType(source))//
.orElseGet(() -> getFallbackTypeFor(source))//
.map(it -> it.getType());
}

11
src/main/java/org/springframework/data/convert/ReflectionEntityInstantiator.java

@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
package org.springframework.data.convert;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
@ -47,12 +48,18 @@ public enum ReflectionEntityInstantiator implements EntityInstantiator { @@ -47,12 +48,18 @@ public enum ReflectionEntityInstantiator implements EntityInstantiator {
List<Object> params = Optional.ofNullable(provider)//
.map(it -> constructor.getParameters().stream()//
.map(parameter -> it.getParameterValue(parameter).orElse(null))//
.map(parameter -> it.getParameterValue(parameter).orElse(Optional.empty()))//
.collect(Collectors.toList()))//
.orElseGet(() -> Collections.emptyList());
List<Object> foo = new ArrayList<>(params.size());
for (Object element : params) {
foo.add((element instanceof Optional) ? null : element);
}
try {
return (T) BeanUtils.instantiateClass(constructor.getConstructor(), params.toArray());
return (T) BeanUtils.instantiateClass(constructor.getConstructor(), foo.toArray());
} catch (BeanInstantiationException e) {
throw new MappingInstantiationException(Optional.of(entity), params, e);
}

Loading…
Cancel
Save