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/15 21:53:46 UTC

svn commit: r1071051 - in /commons/sandbox/digester3/trunk/src/main: java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd

Author: simonetripodi
Date: Tue Feb 15 20:53:46 2011
New Revision: 1071051

URL: http://svn.apache.org/viewvc?rev=1071051&view=rev
Log:
added missing support for XML "useExactMatch" and "usingElementBodyAsArgument" attributes for "call-method-rule"

Modified:
    commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java
    commons/sandbox/digester3/trunk/src/main/resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd

Modified: commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java?rev=1071051&r1=1071050&r2=1071051&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java (original)
+++ commons/sandbox/digester3/trunk/src/main/java/org/apache/commons/digester3/xmlrules/metaparser/CallMethodRule.java Tue Feb 15 20:53:46 2011
@@ -49,24 +49,29 @@ final class CallMethodRule extends Abstr
             builder.withTargetOffset(targetOffset);
         }
 
+        if ("true".equalsIgnoreCase(attributes.getValue("usingElementBodyAsArgument"))) {
+            builder.usingElementBodyAsArgument();
+            return; // this takes advantage
+        }
+
+        builder.useExactMatch("true".equalsIgnoreCase(attributes.getValue("useExactMatch")));
+
         String paramCountStr = attributes.getValue("paramcount");
         if (paramCountStr != null) {
             int paramCount = Integer.parseInt(attributes.getValue("paramcount"));
 
             builder.withParamCount(paramCount);
+        }
 
-            String paramTypesStr = attributes.getValue("paramtypes");
-            if (paramTypesStr != null && paramTypesStr.length() > 0) {
-                StringTokenizer tokens = new StringTokenizer(paramTypesStr, " \t\n\r,");
-                String[] paramTypeNames = new String[tokens.countTokens()];
-                int counter = 0;
-                while (tokens.hasMoreTokens()) {
-                    paramTypeNames[counter++] = tokens.nextToken();
-                }
-                builder.withParamTypes(paramTypeNames);
+        String paramTypesStr = attributes.getValue("paramtypes");
+        if (paramTypesStr != null && paramTypesStr.length() > 0) {
+            StringTokenizer tokens = new StringTokenizer(paramTypesStr, " \t\n\r,");
+            String[] paramTypeNames = new String[tokens.countTokens()];
+            int counter = 0;
+            while (tokens.hasMoreTokens()) {
+                paramTypeNames[counter++] = tokens.nextToken();
             }
-        } else {
-            builder.usingElementBodyAsArgument();
+            builder.withParamTypes(paramTypeNames);
         }
     }
 

Modified: commons/sandbox/digester3/trunk/src/main/resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd
URL: http://svn.apache.org/viewvc/commons/sandbox/digester3/trunk/src/main/resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd?rev=1071051&r1=1071050&r2=1071051&view=diff
==============================================================================
--- commons/sandbox/digester3/trunk/src/main/resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd (original)
+++ commons/sandbox/digester3/trunk/src/main/resources/org/apache/commons/digester3/xmlrules/digester-rules.dtd Tue Feb 15 20:53:46 2011
@@ -98,11 +98,13 @@
   -->
 <!ELEMENT call-method-rule EMPTY>
 <!ATTLIST call-method-rule
-    pattern      CDATA #IMPLIED
-    targetoffset CDATA #IMPLIED
-    methodname   CDATA #REQUIRED
-    paramcount   CDATA #IMPLIED
-    paramtypes   CDATA #IMPLIED>
+    pattern                    CDATA #IMPLIED
+    targetoffset               CDATA #IMPLIED
+    methodname                 CDATA #REQUIRED
+    paramcount                 CDATA #IMPLIED
+    paramtypes                 CDATA #IMPLIED
+    usingElementBodyAsArgument CDATA #IMPLIED
+    useExactMatch              CDATA #IMPLIED>
 
 <!-- 
     CallParamRule