You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by cr...@apache.org on 2004/02/15 02:25:34 UTC
cvs commit: jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules DigesterRuleParser.java digester-rules.dtd
craigmcc 2004/02/14 17:25:34
Modified: digester/src/java/org/apache/commons/digester/xmlrules
DigesterRuleParser.java digester-rules.dtd
Log:
Add support for SetRootRule in the xmlrules package. Thanks for the patches!
PR: Bugzilla #24613
Submitted By: George Gastaldi (george DOT gastaldi AT neogrid DOT com DOT br)
Revision Changes Path
1.25 +20 -3 jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java
Index: DigesterRuleParser.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules/DigesterRuleParser.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- DigesterRuleParser.java 15 Feb 2004 01:02:14 -0000 1.24
+++ DigesterRuleParser.java 15 Feb 2004 01:25:34 -0000 1.25
@@ -89,6 +89,7 @@
import org.apache.commons.digester.SetNextRule;
import org.apache.commons.digester.SetPropertiesRule;
import org.apache.commons.digester.SetPropertyRule;
+import org.apache.commons.digester.SetRootRule;
import org.apache.commons.digester.SetTopRule;
import org.apache.commons.digester.ObjectParamRule;
@@ -287,6 +288,9 @@
digester.addFactoryCreate("*/set-next-rule", new SetNextRuleFactory());
digester.addRule("*/set-next-rule", new PatternRule("pattern"));
digester.addSetNext("*/set-next-rule", "add", ruleClassName);
+ digester.addFactoryCreate("*/set-root-rule", new SetRootRuleFactory());
+ digester.addRule("*/set-root-rule", new PatternRule("pattern"));
+ digester.addSetNext("*/set-root-rule", "add", ruleClassName);
}
@@ -726,6 +730,19 @@
return (paramType == null || paramType.length() == 0) ?
new SetNextRule( methodName) :
new SetNextRule( methodName, paramType);
+ }
+ }
+
+ /**
+ * Factory for creating a SetRootRuleFactory
+ */
+ protected class SetRootRuleFactory extends AbstractObjectCreationFactory {
+ public Object createObject(Attributes attributes) {
+ String methodName = attributes.getValue("methodname");
+ String paramType = attributes.getValue("paramtype");
+ return (paramType == null || paramType.length() == 0) ?
+ new SetRootRule( methodName) :
+ new SetRootRule( methodName, paramType);
}
}
1.12 +8 -1 jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules/digester-rules.dtd
Index: digester-rules.dtd
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/xmlrules/digester-rules.dtd,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- digester-rules.dtd 15 Feb 2004 01:16:51 -0000 1.11
+++ digester-rules.dtd 15 Feb 2004 01:25:34 -0000 1.12
@@ -175,3 +175,10 @@
pattern CDATA #IMPLIED
methodname CDATA #REQUIRED
paramtype CDATA #IMPLIED>
+
+<!-- SetRootRule -->
+<!ELEMENT set-root-rule EMPTY>
+<!ATTLIST set-root-rule
+ pattern CDATA #IMPLIED
+ methodname CDATA #REQUIRED
+ paramtype CDATA #IMPLIED>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org