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