skitching    2004/06/10 20:47:25

  Modified:    digester/src/java/org/apache/commons/digester/plugins
                        PluginCreateRule.java
  Log:
  PluginRules constructor now has an extra param: the class being plugged in.
  Rearranged code order so this param is available at the necessary time.
  
  Revision  Changes    Path
  1.20      +24 -23    
jakarta-commons/digester/src/java/org/apache/commons/digester/plugins/PluginCreateRule.java
  
  Index: PluginCreateRule.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/digester/src/java/org/apache/commons/digester/plugins/PluginCreateRule.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- PluginCreateRule.java     10 May 2004 06:44:13 -0000      1.19
  +++ PluginCreateRule.java     11 Jun 2004 03:47:25 -0000      1.20
  @@ -319,27 +319,11 @@
               throw initException;
           }
           
  -        String path = digester.getMatch();
  -
  -        // create a new Rules object and effectively push it onto a stack of
  -        // rules objects. The stack is actually a linked list; using the
  -        // PluginRules constructor below causes the new instance to link
  -        // to the previous head-of-stack, then the Digester.setRules() makes
  -        // the new instance the new head-of-stack.
  -        PluginRules oldRules = (PluginRules) digester.getRules();
  -        PluginRules newRules = new PluginRules(path, oldRules);
  -        digester.setRules(newRules);
  -        
           // load any custom rules associated with the plugin
  -        PluginManager pluginManager = newRules.getPluginManager();
  +        PluginRules oldRules = (PluginRules) digester.getRules();
  +        PluginManager pluginManager = oldRules.getPluginManager();
           Declaration currDeclaration = null;
               
  -        if (debug) {
  -            log.debug("PluginCreateRule.begin: installing new plugin: " +
  -                "oldrules=" + oldRules.toString() +
  -                ", newrules=" + newRules.toString());
  -        }
  -              
           String pluginClassName; 
           if (pluginClassAttrNs == null) {
               // Yep, this is ugly.
  @@ -398,12 +382,29 @@
                   pattern);
           }
               
  -        // now load up the custom rules
  -        currDeclaration.configure(digester, pattern);
  -
  -        // and now create an instance of the plugin class
  +        // get the class of the user plugged-in type
           Class pluginClass = currDeclaration.getPluginClass();
           
  +        String path = digester.getMatch();
  +
  +        // create a new Rules object and effectively push it onto a stack of
  +        // rules objects. The stack is actually a linked list; using the
  +        // PluginRules constructor below causes the new instance to link
  +        // to the previous head-of-stack, then the Digester.setRules() makes
  +        // the new instance the new head-of-stack.
  +        PluginRules newRules = new PluginRules(path, oldRules, pluginClass);
  +        digester.setRules(newRules);
  +        
  +        if (debug) {
  +            log.debug("PluginCreateRule.begin: installing new plugin: " +
  +                "oldrules=" + oldRules.toString() +
  +                ", newrules=" + newRules.toString());
  +        }
  +              
  +        // load up the custom rules
  +        currDeclaration.configure(digester, pattern);
  +
  +        // create an instance of the plugin class
           Object instance = pluginClass.newInstance();
           getDigester().push(instance);
           if (debug) {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to