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