Author: simonetripodi
Date: Thu Feb 3 15:45:58 2011
New Revision: 1066835
URL: http://svn.apache.org/viewvc?rev=1066835&view=rev
Log:
added (type,converter) binding implementation
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java?rev=1066835&r1=1066834&r2=1066835&view=diff
==============================================================================
---
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
(original)
+++
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/RulesBinderImpl.java
Thu Feb 3 15:45:58 2011
@@ -23,6 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.digester3.rulesbinder.BackToLinkedRuleBuilder;
import org.apache.commons.digester3.rulesbinder.BeanPropertySetterBuilder;
import org.apache.commons.digester3.rulesbinder.CallMethodBuilder;
@@ -40,6 +41,7 @@ import org.apache.commons.digester3.rule
import org.apache.commons.digester3.spi.ObjectCreationFactory;
import org.apache.commons.digester3.spi.RuleProvider;
import org.apache.commons.digester3.spi.Rules;
+import org.apache.commons.digester3.spi.TypeConverter;
/**
* The Digester EDSL implementation.
@@ -808,8 +810,23 @@ final class RulesBinderImpl implements R
/**
* {@inheritDoc}
*/
- public <T> ConverterBuilder<T> convert(Class<T> type) {
- return null;
+ public <T> ConverterBuilder<T> convert(final Class<T> type) {
+ if (type == null) {
+ this.addError(new IllegalArgumentException("NULL type is not
allowed to be converted"));
+ }
+ return new ConverterBuilder<T>() {
+
+ public void withConverter(TypeConverter<T> typeConverter) {
+ if (typeConverter == null) {
+ addError(new IllegalArgumentException(
+ String.format("NULL TypeConverter is not allowed
for converting '%s' type",
+ type.getName())));
+ }
+
+ ConvertUtils.register(new
BeanUtilsConverterFacade(typeConverter), type);
+ }
+
+ };
}
}