RelaxedDataBinder handling for untyped map
Fixes gh-709
This commit is contained in:
committed by
Dave Syer
parent
a77fee9f18
commit
80652007b5
@@ -229,6 +229,9 @@ public class RelaxedDataBinder extends DataBinder {
|
||||
return;
|
||||
}
|
||||
TypeDescriptor descriptor = parent.getMapValueTypeDescriptor();
|
||||
if (descriptor == null) {
|
||||
descriptor = TypeDescriptor.valueOf(Object.class);
|
||||
}
|
||||
if (!descriptor.isMap() && !descriptor.isCollection()
|
||||
&& !descriptor.getType().equals(Object.class)) {
|
||||
return;
|
||||
|
||||
@@ -258,6 +258,13 @@ public class RelaxedDataBinderTests {
|
||||
assertEquals("123", target.getNested().get("value"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBindNestedUntypedMap() throws Exception {
|
||||
TargetWithNestedUntypedMap target = new TargetWithNestedUntypedMap();
|
||||
bind(target, "nested.foo: bar\n" + "nested.value: 123");
|
||||
assertEquals("123", target.getNested().get("value"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBindNestedMapOfString() throws Exception {
|
||||
TargetWithNestedMapOfString target = new TargetWithNestedMapOfString();
|
||||
@@ -503,6 +510,22 @@ public class RelaxedDataBinderTests {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
public static class TargetWithNestedUntypedMap {
|
||||
|
||||
private Map nested;
|
||||
|
||||
public Map getNested() {
|
||||
return this.nested;
|
||||
}
|
||||
|
||||
public void setNested(Map nested) {
|
||||
this.nested = nested;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static class TargetWithNestedMapOfString {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user