public ValueConverter getValueConverter( final Class c ) { final ValueConverter plain = registeredClasses.get( c ); if ( plain != null ) { return plain; } if ( c.isArray() ) { final Class componentType = c.getComponentType(); final ValueConverter componentConverter = getValueConverter( componentType ); if ( componentConverter != null ) { return new ArrayValueConverter( componentType, componentConverter ); } } if ( c.isEnum() ) { return new EnumValueConverter( c ); } return null; }
public void testArrayConversion() throws BeanException { final String[] array = { " " }; final ArrayValueConverter c = new ArrayValueConverter( String.class, new StringValueConverter() ); final String s = c.toAttributeValue( array ); final Object o = c.toPropertyValue( s ); assertTrue( o instanceof String[] ); final String[] strings = (String[]) o; assertEquals( strings.length, 1 ); assertEquals( strings[0], " " ); } }