From 9d354192ef413b066a39afeef4a01b49771b73e5 Mon Sep 17 00:00:00 2001 From: Keith Donald Date: Sat, 21 Nov 2009 18:30:34 +0000 Subject: [PATCH] additional javadoc and tests --- .../support/ConversionServiceFactoryBean.java | 3 + ...ormattingConversionServiceFactoryBean.java | 4 + .../ConversionServiceFactoryBeanTests.java | 80 +++++++++++++++++++ .../support/ConversionServiceFactory.java | 2 + 4 files changed, 89 insertions(+) create mode 100644 org.springframework.context/src/test/java/org/springframework/context/support/ConversionServiceFactoryBeanTests.java diff --git a/org.springframework.context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java b/org.springframework.context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java index ce70c1c54a3..b5048ae9927 100644 --- a/org.springframework.context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java +++ b/org.springframework.context/src/main/java/org/springframework/context/support/ConversionServiceFactoryBean.java @@ -71,6 +71,9 @@ public class ConversionServiceFactoryBean implements FactoryBean converters = new HashSet(); + converters.add(new Converter() { + public Foo convert(String source) { + return new Foo(); + } + }); + converters.add(new ConverterFactory() { + public Converter getConverter(Class targetType) { + return new Converter () { + public T convert(String source) { + return (T) new Bar(); + } + }; + } + }); + converters.add(new GenericConverter() { + public Class[][] getConvertibleTypes() { + return new Class[][] { { String.class, Baz.class } }; + } + public Object convert(Object source, TypeDescriptor sourceType, TypeDescriptor targetType) { + return new Baz(); + } + }); + factory.setConverters(converters); + factory.afterPropertiesSet(); + ConversionService service = factory.getObject(); + assertTrue(service.canConvert(String.class, Integer.class)); + assertTrue(service.canConvert(String.class, Foo.class)); + assertTrue(service.canConvert(String.class, Bar.class)); + assertTrue(service.canConvert(String.class, Baz.class)); + } + + @Test(expected=IllegalArgumentException.class) + public void createDefaultConversionServiceWithInvalidSupplements() { + ConversionServiceFactoryBean factory = new ConversionServiceFactoryBean(); + Set converters = new HashSet(); + converters.add("bogus"); + factory.setConverters(converters); + factory.afterPropertiesSet(); + } + + public static class Foo { + + } + + public static class Bar { + + } + + public static class Baz { + + } +} diff --git a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionServiceFactory.java b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionServiceFactory.java index ab313cfe8c5..f7242f65203 100644 --- a/org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionServiceFactory.java +++ b/org.springframework.core/src/main/java/org/springframework/core/convert/support/ConversionServiceFactory.java @@ -17,6 +17,7 @@ package org.springframework.core.convert.support; import org.springframework.core.convert.ConversionService; +import org.springframework.core.convert.converter.ConverterRegistry; /** * A factory for creating common ConversionService configurations. @@ -31,6 +32,7 @@ public final class ConversionServiceFactory { /** * Create a new default ConversionService prototype that can be safely modified. + * Callers may cast the returned ConversionService to a {@link ConverterRegistry} to supplement or override the default converters. */ public static ConversionService createDefaultConversionService() { GenericConversionService conversionService = new GenericConversionService();