You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by si...@apache.org on 2011/02/03 16:53:01 UTC
svn commit: r1066839 -
/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java
Author: simonetripodi
Date: Thu Feb 3 15:53:00 2011
New Revision: 1066839
URL: http://svn.apache.org/viewvc?rev=1066839&view=rev
Log:
added temporary implementation of method to lookup TypeConverter<T> instances
Modified:
commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java
Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java?rev=1066839&r1=1066838&r2=1066839&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/DigesterImpl.java Thu Feb 3 15:53:00 2011
@@ -32,6 +32,8 @@ import java.util.List;
import java.util.Map;
import java.util.Stack;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.Converter;
import org.apache.commons.digester3.spi.Rules;
import org.apache.commons.digester3.spi.Substitutor;
import org.apache.commons.digester3.spi.TypeConverter;
@@ -1230,9 +1232,30 @@ final class DigesterImpl implements Dige
/**
* {@inheritDoc}
*/
- public <T> TypeConverter<T> lookupConverter(Class<T> type) {
- // TODO empty for now
- return null;
+ public <T> TypeConverter<T> lookupConverter(final Class<T> type) {
+ // TODO temporary implementation, will be changed for final version
+
+ final Converter converter = ConvertUtils.lookup(type);
+
+ if (converter == null) {
+ return null; // use check delegated to users
+ }
+
+ if (converter instanceof BeanUtilsConverterFacade) {
+ return (TypeConverter<T>) ((BeanUtilsConverterFacade) converter).getWrappedConverter();
+ }
+
+ return new TypeConverter<T>() {
+
+ public T convert(String value) {
+ Object result = converter.convert(type, value);
+ if (result == null) {
+ return null;
+ }
+ return type.cast(result);
+ }
+
+ };
}
}