You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by rd...@apache.org on 2002/03/11 21:18:46 UTC
cvs commit: jakarta-commons/digester/src/test/org/apache/commons/digester RuleTestCase.java TestRule.java
rdonkin 02/03/11 12:18:46
Modified: digester/src/java/org/apache/commons/digester Digester.java
Rule.java
digester/src/test/org/apache/commons/digester
RuleTestCase.java TestRule.java
Log:
Implemented digester design improvement suggested by James Carman. Added empty constructor and setDigester method for Rule and changed digester to call setDigester in addRule.
Revision Changes Path
1.48 +7 -5 jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java
Index: Digester.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- Digester.java 11 Mar 2002 05:01:54 -0000 1.47
+++ Digester.java 11 Mar 2002 20:18:44 -0000 1.48
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v 1.47 2002/03/11 05:01:54 craigmcc Exp $
- * $Revision: 1.47 $
- * $Date: 2002/03/11 05:01:54 $
+ * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Digester.java,v 1.48 2002/03/11 20:18:44 rdonkin Exp $
+ * $Revision: 1.48 $
+ * $Date: 2002/03/11 20:18:44 $
*
* ====================================================================
*
@@ -112,7 +112,7 @@
*
* @author Craig McClanahan
* @author Scott Sanders
- * @version $Revision: 1.47 $ $Date: 2002/03/11 05:01:54 $
+ * @version $Revision: 1.48 $ $Date: 2002/03/11 20:18:44 $
*/
public class Digester extends DefaultHandler {
@@ -1359,13 +1359,15 @@
/**
- * Register a new Rule matching the specified pattern.
+ * <p>Register a new Rule matching the specified pattern.
+ * This method sets the <code>Digester</code> property on the rule.</p>
*
* @param pattern Element matching pattern
* @param rule Rule to be registered
*/
public void addRule(String pattern, Rule rule) {
+ rule.setDigester(this);
getRules().add(pattern, rule);
}
1.6 +21 -7 jakarta-commons/digester/src/java/org/apache/commons/digester/Rule.java
Index: Rule.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Rule.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Rule.java 9 Jan 2002 20:22:49 -0000 1.5
+++ Rule.java 11 Mar 2002 20:18:44 -0000 1.6
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Rule.java,v 1.5 2002/01/09 20:22:49 sanders Exp $
- * $Revision: 1.5 $
- * $Date: 2002/01/09 20:22:49 $
+ * $Header: /home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/Rule.java,v 1.6 2002/03/11 20:18:44 rdonkin Exp $
+ * $Revision: 1.6 $
+ * $Date: 2002/03/11 20:18:44 $
*
* ====================================================================
*
@@ -71,7 +71,7 @@
* a corresponding nested pattern of XML elements has been matched.
*
* @author Craig McClanahan
- * @version $Revision: 1.5 $ $Date: 2002/01/09 20:22:49 $
+ * @version $Revision: 1.6 $ $Date: 2002/03/11 20:18:44 $
*/
public abstract class Rule {
@@ -81,16 +81,22 @@
/**
- * Default constructor sets only the the associated Digester.
+ * Constructor sets the associated Digester.
*
* @param digester The digester with which this rule is associated
*/
public Rule(Digester digester) {
super();
- this.digester = digester;
+ setDigester(digester);
}
+
+ /**
+ * <p>Base constructor.
+ * Now the digester will be set when the rule is added.</p>
+ */
+ public Rule() {}
// ----------------------------------------------------- Instance Variables
@@ -119,7 +125,15 @@
return (this.digester);
}
-
+
+ /**
+ * Set the <code>Digester</code> with which this <code>Rule</code> is associated.
+ */
+ public void setDigester(Digester digester) {
+
+ this.digester = digester;
+
+ }
/**
* Return the namespace URI for which this Rule is relevant, if any.
1.10 +16 -4 jakarta-commons/digester/src/test/org/apache/commons/digester/RuleTestCase.java
Index: RuleTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RuleTestCase.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- RuleTestCase.java 23 Jan 2002 22:38:01 -0000 1.9
+++ RuleTestCase.java 11 Mar 2002 20:18:45 -0000 1.10
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RuleTestCase.java,v 1.9 2002/01/23 22:38:01 sanders Exp $
- * $Revision: 1.9 $
- * $Date: 2002/01/23 22:38:01 $
+ * $Header: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/RuleTestCase.java,v 1.10 2002/03/11 20:18:45 rdonkin Exp $
+ * $Revision: 1.10 $
+ * $Date: 2002/03/11 20:18:45 $
*
* ====================================================================
*
@@ -77,7 +77,7 @@
*
* @author Craig R. McClanahan
* @author Janek Bogucki
- * @version $Revision: 1.9 $ $Date: 2002/01/23 22:38:01 $
+ * @version $Revision: 1.10 $ $Date: 2002/03/11 20:18:45 $
*/
public class RuleTestCase extends TestCase {
@@ -504,6 +504,18 @@
}
+ /**
+ * Test rule addition - this boils down to making sure that
+ * digester is set properly on rule addition.
+ */
+ public void testAddRule() {
+ Digester digester = new Digester();
+ TestRule rule = new TestRule("Test");
+ digester.addRule("/root", rule);
+
+ assertEquals("Digester is not properly on rule addition.", digester, rule.getDigester());
+
+ }
// ------------------------------------------------ Utility Support Methods
1.7 +11 -3 jakarta-commons/digester/src/test/org/apache/commons/digester/TestRule.java
Index: TestRule.java
===================================================================
RCS file: /home/cvs/jakarta-commons/digester/src/test/org/apache/commons/digester/TestRule.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- TestRule.java 23 Jan 2002 22:38:01 -0000 1.6
+++ TestRule.java 11 Mar 2002 20:18:45 -0000 1.7
@@ -70,7 +70,7 @@
* at the identifier.</p>
*
* @author Robert Burrell Donkin
- * @revision $Revision: 1.6 $ $Date: 2002/01/23 22:38:01 $
+ * @revision $Revision: 1.7 $ $Date: 2002/03/11 20:18:45 $
*/
public class TestRule extends Rule {
@@ -87,12 +87,20 @@
/** Used when testing call orders */
private List order;
-
// ----------------------------------------------------------- Constructors
-
/**
* Base constructor.
+ *
+ * @param identifier Used to tell which TestRule is which
+ */
+ public TestRule(String identifier) {
+
+ this.identifier = identifier;
+ }
+
+ /**
+ * Old fashioned constructor.
*
* @param digester The digester with which this rule is associated
* @param identifier Used to tell which TestRule is which
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>