refined PropertyEditor exposure for the ConversionService case

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@2670 50f2f4bb-b051-0410-bef5-90022cba6387
This commit is contained in:
Juergen Hoeller
2009-12-15 11:34:19 +00:00
parent c4d1940d06
commit 95d1eccd65
3 changed files with 21 additions and 14 deletions
@@ -31,12 +31,12 @@ import org.springframework.util.Assert;
*/
public class ConvertingPropertyEditorAdapter extends PropertyEditorSupport {
private static final TypeDescriptor stringDescriptor = TypeDescriptor.valueOf(String.class);
private final ConversionService conversionService;
private final TypeDescriptor targetDescriptor;
private final boolean canConvertToString;
/**
* Create a new ConvertingPropertyEditorAdapter for a given
@@ -50,17 +50,23 @@ public class ConvertingPropertyEditorAdapter extends PropertyEditorSupport {
Assert.notNull(targetDescriptor, "TypeDescriptor must not be null");
this.conversionService = conversionService;
this.targetDescriptor = targetDescriptor;
this.canConvertToString = conversionService.canConvert(this.targetDescriptor, TypeDescriptor.STRING);
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
setValue(this.conversionService.convert(text, stringDescriptor, this.targetDescriptor));
setValue(this.conversionService.convert(text, TypeDescriptor.STRING, this.targetDescriptor));
}
@Override
public String getAsText() {
return (String) this.conversionService.convert(getValue(), this.targetDescriptor, stringDescriptor);
if (this.canConvertToString) {
return (String) this.conversionService.convert(getValue(), this.targetDescriptor, TypeDescriptor.STRING);
}
else {
return null;
}
}
}