org.apache.commons.digester.plugins
public class PluginCreateRule extends Rule implements InitializableRule
Since: 1.6
Field Summary | |
---|---|
Class | baseClass A base class that any plugin must derive from. |
Declaration | defaultPlugin
Info about optional default plugin to be used if no plugin-id is
specified in the input data. |
PluginConfigurationException | initException
Currently, none of the Rules methods allow exceptions to be thrown.
|
String | pattern
In order to invoke the addRules method on the plugin class correctly,
we need to know the pattern which this rule is matched by. |
String | pluginClassAttr |
String | pluginClassAttrNs |
String | pluginIdAttr |
String | pluginIdAttrNs |
Constructor Summary | |
---|---|
PluginCreateRule(Class baseClass)
Create a plugin rule where the user must specify a plugin-class
or plugin-id.
| |
PluginCreateRule(Class baseClass, Class dfltPluginClass)
Create a plugin rule where the user may specify a plugin.
| |
PluginCreateRule(Class baseClass, Class dfltPluginClass, RuleLoader dfltPluginRuleLoader)
Create a plugin rule where the user may specify a plugin.
|
Method Summary | |
---|---|
void | begin(String namespace, String name, Attributes attributes)
Invoked when the Digester matches this rule against an xml element.
|
void | body(String namespace, String name, String text)
Process the body text of this element.
|
void | end(String namespace, String name)
Invoked by the digester when the closing tag matching this Rule's
pattern is encountered.
|
void | fireBeginMethods(List rules, String namespace, String name, Attributes list)
Duplicate the processing that the Digester does when firing the
begin methods of rules. |
void | fireBodyMethods(List rules, String namespaceURI, String name, String text)
Duplicate the processing that the Digester does when firing the
body methods of rules. |
void | fireEndMethods(List rules, String namespaceURI, String name)
Duplicate the processing that the Digester does when firing the
end methods of rules. |
String | getPattern()
Return the pattern that this Rule is associated with.
|
void | postRegisterInit(String matchPattern)
Invoked after this rule has been added to the set of digester rules,
associated with the specified pattern. |
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.
|
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.
|
Parameters: baseClass is the class which any specified plugin must be descended from.
Parameters: baseClass is the class which any specified plugin must be descended from. dfltPluginClass is the class which will be used if the user doesn't specify any plugin-class or plugin-id. This class will have custom rules installed for it just like a declared plugin.
Parameters: baseClass is the class which any specified plugin must be descended from. dfltPluginClass is the class which will be used if the user doesn't specify any plugin-class or plugin-id. This class will have custom rules installed for it just like a declared plugin. dfltPluginRuleLoader is a RuleLoader instance which knows how to load the custom rules associated with this default plugin.
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 name attributes
Throws: ClassNotFoundException PluginInvalidInputException PluginConfigurationException
Parameters: text The body text of this element
Parameters: namespace Description of the Parameter name Description of the Parameter
Throws: Exception Description of the Exception
See Also: PluginCreateRule
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.
Returns: The pattern value
Parameters: matchPattern is the digester match pattern that is associated with this rule instance, eg "root/widget".
Throws: PluginConfigurationException
See PluginRules for more info.
See PluginRules for more info.