quick attempt to fix core.convert breakage

This commit is contained in:
Juergen Hoeller
2009-05-15 11:35:41 +00:00
parent eb3ece4208
commit dffec3cdcd
2 changed files with 27 additions and 25 deletions

View File

@@ -18,9 +18,8 @@ package org.springframework.expression.spel.support;
import org.springframework.core.convert.ConvertException;
import org.springframework.core.convert.ConverterNotFoundException;
import org.springframework.core.convert.ConversionService;
import org.springframework.core.convert.TypeDescriptor;
import org.springframework.core.convert.service.DefaultConversionService;
import org.springframework.core.convert.support.DefaultConversionService;
import org.springframework.expression.EvaluationException;
import org.springframework.expression.TypeConverter;
import org.springframework.expression.spel.SpelException;
@@ -34,28 +33,31 @@ import org.springframework.util.Assert;
*/
public class StandardTypeConverter implements TypeConverter {
private ConversionService conversionService;
private org.springframework.core.convert.TypeConverter typeConverter;
public StandardTypeConverter() {
conversionService = new DefaultConversionService();
this.typeConverter = new DefaultConversionService();
}
public StandardTypeConverter(ConversionService conversionService) {
Assert.notNull(conversionService, "The conversionService must not be null");
this.conversionService = conversionService;
public StandardTypeConverter(org.springframework.core.convert.TypeConverter typeConverter) {
Assert.notNull(typeConverter, "TypeConverter must not be null");
this.typeConverter = typeConverter;
}
@SuppressWarnings("unchecked")
public <T> T convertValue(Object value, Class<T> targetType) throws EvaluationException {
return (T) convertValue(value,TypeDescriptor.valueOf(targetType));
return (T) convertValue(value, TypeDescriptor.valueOf(targetType));
}
@SuppressWarnings("unchecked")
public Object convertValue(Object value, TypeDescriptor typeDescriptor) throws EvaluationException {
try {
return conversionService.convert(value, typeDescriptor);
} catch (ConverterNotFoundException cenfe) {
return this.typeConverter.convert(value, typeDescriptor);
}
catch (ConverterNotFoundException cenfe) {
throw new SpelException(cenfe, SpelMessages.TYPE_CONVERSION_ERROR, value.getClass(), typeDescriptor.asString());
} catch (ConvertException ce) {
}
catch (ConvertException ce) {
throw new SpelException(ce, SpelMessages.TYPE_CONVERSION_ERROR, value.getClass(), typeDescriptor.asString());
}
}
@@ -65,7 +67,7 @@ public class StandardTypeConverter implements TypeConverter {
}
public boolean canConvert(Class<?> sourceType, TypeDescriptor targetType) {
return conversionService.canConvert(sourceType, targetType);
return this.typeConverter.canConvert(sourceType, targetType);
}
}