Save This Page
Home » commons-digester-1.8-src » org.apache.commons » digester » plugins » [javadoc | source]
org.apache.commons.digester.plugins
public class: PluginRules [javadoc | source]
java.lang.Object
   org.apache.commons.digester.plugins.PluginRules

All Implemented Interfaces:
    Rules

A custom digester Rules manager which must be used as the Rules object when using the plugins module functionality.

During parsing, a linked list of PluginCreateRule instances develop, and this list also acts like a stack. The original instance that was set before the Digester started parsing is always at the tail of the list, and the Digester always holds a reference to the instance at the head of the list in the rules member. Initially, this list/stack holds just one instance, ie head and tail are the same object.

When the start of an xml element causes a PluginCreateRule to fire, a new PluginRules instance is created and inserted at the head of the list (ie pushed onto the stack of Rules objects). Digester.getRules() therefore returns this new Rules object, and any custom rules associated with that plugin are added to that instance.

When the end of the xml element is encountered (and therefore the PluginCreateRule end method fires), the stack of Rules objects is popped, so that Digester.getRules returns the previous Rules object.

Field Summary
protected  Digester digester    The Digester instance with which this Rules instance is associated. 
Constructor:
 public PluginRules() 
 public PluginRules(Rules decoratedRules) 
    Constructor for top-level Rules object which handles rule-matching using the specified implementation.
 PluginRules(Digester digester,
    String mountPoint,
    PluginRules parent,
    Class pluginClass) throws PluginException 
    Constructs a Rules instance which has a parent Rules object (which is different from having a delegate rules object).

    One of these is created each time a PluginCreateRule's begin method fires, in order to manage the custom rules associated with whatever concrete plugin class the user has specified.

    Parameters:
    digester - is the object this rules will be associated with.
    mountPoint - is the digester match path for the element matching a PluginCreateRule which caused this "nested parsing scope" to begin. This is expected to be equal to digester.getMatch().
    parent - must be non-null.
    pluginClass - is the plugin class whose custom rules will be loaded into this new PluginRules object.
Method from org.apache.commons.digester.plugins.PluginRules Summary:
add,   clear,   getDecoratedRules,   getDigester,   getNamespaceURI,   getParent,   getPluginClassAttr,   getPluginClassAttrNs,   getPluginIdAttr,   getPluginIdAttrNs,   getPluginManager,   getRuleFinders,   getRulesFactory,   match,   match,   rules,   setDigester,   setNamespaceURI,   setPluginClassAttribute,   setPluginIdAttribute,   setRuleFinders,   setRulesFactory
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.apache.commons.digester.plugins.PluginRules Detail:
 public  void add(String pattern,
    Rule rule) 
    Register a new Rule instance matching the specified pattern.
 public  void clear() 
    Clear all rules.
 Rules getDecoratedRules() 
    This package-scope method is used by the PluginCreateRule class to get direct access to the rules that were dynamically added by the plugin. No other class should need access to this object.
 public Digester getDigester() 
    Return the Digester instance with which this instance is associated.
 public String getNamespaceURI() 
    Return the namespace URI that will be applied to all subsequently added Rule objects.
 public Rules getParent() 
    Return the parent Rules object.
 public String getPluginClassAttr() 
 public String getPluginClassAttrNs() 
 public String getPluginIdAttr() 
 public String getPluginIdAttrNs() 
 public PluginManager getPluginManager() 
    Return the object which "knows" about all declared plugins.
 public List getRuleFinders() 
 public RulesFactory getRulesFactory() 
    Return the rules factory object (or null if one has not been specified).
 public List match(String path) 
Deprecated! Call - match(namespaceURI,pattern) instead.

    Return a List of all registered Rule instances that match the specified nesting pattern, or a zero-length List if there are no matches. If more than one Rule instance matches, they must be returned in the order originally registered through the add() method.
 public List match(String namespaceURI,
    String path) 
    Return a List of all registered Rule instances that match the specified nodepath, or a zero-length List if there are no matches. If more than one Rule instance matches, they must be returned in the order originally registered through the add() method.

 public List rules() 
    Return the list of rules registered with this object, in the order they were registered with this object.

    Note that Rule objects stored in parent Rules objects are not returned by this method.

 public  void setDigester(Digester digester) 
    Set the Digester instance with which this Rules instance is associated.
 public  void setNamespaceURI(String namespaceURI) 
    Set the namespace URI that will be applied to all subsequently added Rule objects.
 public  void setPluginClassAttribute(String namespaceUri,
    String attrName) 
 public  void setPluginIdAttribute(String namespaceUri,
    String attrName) 
 public  void setRuleFinders(List ruleFinders) 
 public  void setRulesFactory(RulesFactory factory) 
    Set the object which is used to generate the new Rules instances created to hold and process the rules associated with each plugged-in class.