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/01/30 15:58:49 UTC

svn commit: r1065300 - in /commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3: CallMethodRule.java Digester.java

Author: simonetripodi
Date: Sun Jan 30 14:58:49 2011
New Revision: 1065300

URL: http://svn.apache.org/viewvc?rev=1065300&view=rev
Log:
added the converters lookup method, initially a façade on commons-beanutils converter

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java?rev=1065300&r1=1065299&r2=1065300&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/CallMethodRule.java Sun Jan 30 14:58:49 2011
@@ -19,7 +19,6 @@ package org.apache.commons.digester3;
 
 import java.util.Formatter;
 
-import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.MethodUtils;
 import org.xml.sax.Attributes;
 
@@ -250,10 +249,9 @@ public class CallMethodRule extends Rule
             // convert nulls and convert stringy parameters 
             // for non-stringy param types
             if (parameters[i] == null
-                    || (parameters[i] instanceof String
-                         && !String.class.isAssignableFrom(this.paramTypes[i]))) {
+                    || (parameters[i] instanceof String && !String.class.isAssignableFrom(this.paramTypes[i]))) {
 
-                paramValues[i] = ConvertUtils.convert((String) parameters[i], this.paramTypes[i]);
+                paramValues[i] = this.getDigester().lookupConverter(this.paramTypes[i]).convert((String) parameters[i]);
             } else {
                 paramValues[i] = parameters[i];
             }
@@ -268,7 +266,7 @@ public class CallMethodRule extends Rule
         }
 
         if (target == null) {
-            throw new org.xml.sax.SAXException(
+            throw this.getDigester().createSAXException(
                     String.format("[CallMethodRule]{%s} Call target is null (targetOffset=%s, stackdepth=%s)",
                     this.getDigester().getMatch(),
                     this.targetOffset,

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java?rev=1065300&r1=1065299&r2=1065300&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/Digester.java Sun Jan 30 14:58:49 2011
@@ -26,6 +26,7 @@ import java.util.EmptyStackException;
 import java.util.Map;
 
 import org.apache.commons.digester3.spi.Rules;
+import org.apache.commons.digester3.spi.TypeConverter;
 import org.apache.commons.logging.Log;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.DTDHandler;
@@ -367,4 +368,15 @@ public interface Digester extends Conten
      */
     SAXException createSAXException(String message);
 
+    /**
+     * Allows retrieve the bound converter for the given type.
+     *
+     * NOTE: the first version will be a commons-beanutils Converter façade.
+     *
+     * @param <T>
+     * @param type
+     * @return
+     */
+    <T> TypeConverter<T> lookupConverter(Class<T> type);
+
 }