array to object
This commit is contained in:
parent
d37c5aba94
commit
fada151878
|
|
@ -171,7 +171,15 @@ class CollectionGenericConverter implements GenericConverter {
|
||||||
}
|
}
|
||||||
|
|
||||||
private Object convertObjectToArray(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
|
private Object convertObjectToArray(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) {
|
||||||
throw new UnsupportedOperationException("Not yet implemented");
|
TypeDescriptor targetElementType = targetType.getElementTypeDescriptor();
|
||||||
|
Object array = Array.newInstance(targetType.getElementType(), 1);
|
||||||
|
if (sourceType.isAssignableTo(targetElementType)) {
|
||||||
|
Array.set(array, 0, source);
|
||||||
|
} else {
|
||||||
|
GenericConverter converter = conversionService.getConverter(sourceType, targetElementType);
|
||||||
|
Array.set(array, 0, converter.convert(source, sourceType, targetElementType));
|
||||||
|
}
|
||||||
|
return array;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isCollectionToObject(TypeDescriptor sourceType, TypeDescriptor targetType) {
|
private boolean isCollectionToObject(TypeDescriptor sourceType, TypeDescriptor targetType) {
|
||||||
|
|
|
||||||
|
|
@ -240,13 +240,18 @@ public class GenericConversionServiceTests {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Ignore
|
public void convertObjectToArray() {
|
||||||
public void convertStringToArray() {
|
String[] result = converter.convert("test", String[].class);
|
||||||
String[] result = (String[]) converter.convert("1,2,3", String[].class);
|
assertEquals(1, result.length);
|
||||||
assertEquals(3, result.length);
|
assertEquals("test", result[0]);
|
||||||
assertEquals("1", result[0]);
|
}
|
||||||
assertEquals("2", result[1]);
|
|
||||||
assertEquals("3", result[2]);
|
@Test
|
||||||
|
public void convertObjectToArrayWithElementConversion() {
|
||||||
|
converter.addConverterFactory(new StringToNumberConverterFactory());
|
||||||
|
Integer[] result = converter.convert("1", Integer[].class);
|
||||||
|
assertEquals(1, result.length);
|
||||||
|
assertEquals(new Integer(1), result[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue