| java.lang.Object org.apache.commons.digester.Rule org.apache.commons.digester.plugins.PluginCreateRule
PluginCreateRule | public class PluginCreateRule extends Rule implements InitializableRule(Code) | | Allows the original rules for parsing the configuration file to define
points at which plugins are allowed, by configuring a PluginCreateRule
with the appropriate pattern.
since: 1.6 |
Constructor Summary | |
public | PluginCreateRule(Class baseClass) Create a plugin rule where the user must specify a plugin-class
or plugin-id. | public | PluginCreateRule(Class baseClass, Class dfltPluginClass) Create a plugin rule where the user may specify a plugin.
If the user doesn't specify a plugin, then the default class specified
in this constructor is used.
Parameters: baseClass - is the class which any specified plugin must bedescended from. Parameters: dfltPluginClass - is the class which will be used if the userdoesn't specify any plugin-class or plugin-id. | public | PluginCreateRule(Class baseClass, Class dfltPluginClass, RuleLoader dfltPluginRuleLoader) Create a plugin rule where the user may specify a plugin.
If the user doesn't specify a plugin, then the default class specified
in this constructor is used.
Parameters: baseClass - is the class which any specified plugin must bedescended from. Parameters: dfltPluginClass - is the class which will be used if the userdoesn't specify any plugin-class or plugin-id. |
Method Summary | |
public void | begin(String namespace, String name, org.xml.sax.Attributes attributes) Invoked when the Digester matches this rule against an xml element.
A new instance of the target class is created, and pushed onto the
stack. | public void | body(String namespace, String name, String text) Process the body text of this element. | public void | end(String namespace, String name) Invoked by the digester when the closing tag matching this Rule's
pattern is encountered. | public void | fireBeginMethods(List rules, String namespace, String name, org.xml.sax.Attributes list) Duplicate the processing that the Digester does when firing the
begin methods of rules. | public void | fireEndMethods(List rules, String namespaceURI, String name) Duplicate the processing that the Digester does when firing the
end methods of rules. | public String | getPattern() Return the pattern that this Rule is associated with.
In general, Rule instances can be associated with multiple
patterns. | public void | postRegisterInit(String matchPattern) Invoked after this rule has been added to the set of digester rules,
associated with the specified pattern. | public void | setPluginClassAttribute(String namespaceUri, String attrName) Sets the xml attribute which the input xml uses to indicate to a
PluginCreateRule which class should be instantiated. | public void | setPluginIdAttribute(String namespaceUri, String attrName) Sets the xml attribute which the input xml uses to indicate to a
PluginCreateRule which plugin declaration is being referenced. |
PluginCreateRule | public PluginCreateRule(Class baseClass)(Code) | | Create a plugin rule where the user must specify a plugin-class
or plugin-id.
Parameters: baseClass - is the class which any specified plugin must bedescended from. |
PluginCreateRule | public PluginCreateRule(Class baseClass, Class dfltPluginClass)(Code) | | Create a plugin rule where the user may specify a plugin.
If the user doesn't specify a plugin, then the default class specified
in this constructor is used.
Parameters: baseClass - is the class which any specified plugin must bedescended from. Parameters: dfltPluginClass - is the class which will be used if the userdoesn't specify any plugin-class or plugin-id. This class will havecustom rules installed for it just like a declared plugin. |
PluginCreateRule | public PluginCreateRule(Class baseClass, Class dfltPluginClass, RuleLoader dfltPluginRuleLoader)(Code) | | Create a plugin rule where the user may specify a plugin.
If the user doesn't specify a plugin, then the default class specified
in this constructor is used.
Parameters: baseClass - is the class which any specified plugin must bedescended from. Parameters: dfltPluginClass - is the class which will be used if the userdoesn't specify any plugin-class or plugin-id. This class will havecustom rules installed for it just like a declared plugin. Parameters: dfltPluginRuleLoader - is a RuleLoader instance which knows howto load the custom rules associated with this default plugin. |
begin | public void begin(String namespace, String name, org.xml.sax.Attributes attributes) throws java.lang.Exception(Code) | | Invoked when the Digester matches this rule against an xml element.
A new instance of the target class is created, and pushed onto the
stack. A new "private" PluginRules object is then created and set as
the digester's default Rules object. Any custom rules associated with
the plugin class are then loaded into that new Rules object.
Finally, any custom rules that are associated with the current pattern
(such as SetPropertiesRules) have their begin methods executed.
Parameters: namespace - Parameters: name - Parameters: attributes - throws: ClassNotFoundException - throws: PluginInvalidInputException - throws: PluginConfigurationException - |
body | public void body(String namespace, String name, String text) throws Exception(Code) | | Process the body text of this element.
Parameters: text - The body text of this element |
end | public void end(String namespace, String name) throws Exception(Code) | | Invoked by the digester when the closing tag matching this Rule's
pattern is encountered.
Parameters: namespace - Description of the Parameter Parameters: name - Description of the Parameter exception: Exception - Description of the Exception See Also: PluginCreateRule.begin |
fireBeginMethods | public void fireBeginMethods(List rules, String namespace, String name, org.xml.sax.Attributes list) throws java.lang.Exception(Code) | | Duplicate the processing that the Digester does when firing the
begin methods of rules. It would be really nice if the Digester
class provided a way for this functionality to just be invoked
directly.
|
fireEndMethods | public void fireEndMethods(List rules, String namespaceURI, String name) throws Exception(Code) | | Duplicate the processing that the Digester does when firing the
end methods of rules. It would be really nice if the Digester
class provided a way for this functionality to just be invoked
directly.
|
getPattern | public String getPattern()(Code) | | Return the pattern that this Rule is associated with.
In general, Rule instances can be associated with multiple
patterns. A PluginCreateRule, however, will only function correctly
when associated with a single pattern. It is possible to fix this, but
I can't be bothered just now because this feature is unlikely to be
used.
The pattern value |
postRegisterInit | public void postRegisterInit(String matchPattern) throws PluginConfigurationException(Code) | | Invoked after this rule has been added to the set of digester rules,
associated with the specified pattern. Check all configuration data is
valid and remember the pattern for later.
Parameters: matchPattern - is the digester match pattern that is associated with this rule instance, eg "root/widget". exception: PluginConfigurationException - |
setPluginClassAttribute | public void setPluginClassAttribute(String namespaceUri, String attrName)(Code) | | Sets the xml attribute which the input xml uses to indicate to a
PluginCreateRule which class should be instantiated.
See
PluginRules.setPluginClassAttribute for more info.
|
setPluginIdAttribute | public void setPluginIdAttribute(String namespaceUri, String attrName)(Code) | | Sets the xml attribute which the input xml uses to indicate to a
PluginCreateRule which plugin declaration is being referenced.
See
PluginRules.setPluginIdAttribute for more info.
|
|
|