adapted to Converter signature change

This commit is contained in:
Juergen Hoeller 2009-09-17 10:24:08 +00:00
parent 160521074b
commit 87e939a4e9
2 changed files with 14 additions and 3 deletions

View File

@ -16,6 +16,8 @@
package org.springframework.ui.format.support; package org.springframework.ui.format.support;
import java.text.ParseException;
import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.TypeDescriptor; import org.springframework.core.convert.TypeDescriptor;
@ -66,6 +68,9 @@ public class FormattingConversionServiceAdapter extends GenericConversionService
} }
/**
* Adapter that exposes the Converter interface on top of a given Formatter.
*/
private static class FormattingConverter implements Converter<String, Object> { private static class FormattingConverter implements Converter<String, Object> {
private final Formatter formatter; private final Formatter formatter;
@ -74,8 +79,13 @@ public class FormattingConversionServiceAdapter extends GenericConversionService
this.formatter = formatter; this.formatter = formatter;
} }
public Object convert(String source) throws Exception { public Object convert(String source) {
return this.formatter.parse(source, LocaleContextHolder.getLocale()); try {
return this.formatter.parse(source, LocaleContextHolder.getLocale());
}
catch (ParseException ex) {
throw new IllegalArgumentException("Could not convert formatted value '" + source + "'", ex);
}
} }
} }

View File

@ -19,6 +19,7 @@ package org.springframework.core.convert.converter;
/** /**
* A converter converts a source object of type S to a target of type T. * A converter converts a source object of type S to a target of type T.
* Implementations of this interface are thread-safe and can be shared. * Implementations of this interface are thread-safe and can be shared.
*
* @author Keith Donald * @author Keith Donald
* @since 3.0 * @since 3.0
*/ */
@ -28,7 +29,7 @@ public interface Converter<S, T> {
* Convert the source of type S to target type T. * Convert the source of type S to target type T.
* @param source the source object to convert, which must be an instance of S * @param source the source object to convert, which must be an instance of S
* @return the converted object, which must be an instance of T * @return the converted object, which must be an instance of T
* @throws IllegalArgumentException if the source could not be converted * @throws IllegalArgumentException if the source could not be converted to the desired target type
*/ */
T convert(S source); T convert(S source);