|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.commons.digester3.Rule org.apache.commons.digester3.plugins.PluginCreateRule
public class PluginCreateRule
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.
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)
This method is called when the body of a matching XML element is encountered. |
void |
end(String namespace,
String name)
This method is called when the end of a matching XML element is encountered. |
void |
fireBeginMethods(List<Rule> rules,
String namespace,
String name,
Attributes list)
Duplicate the processing that the Digester does when firing the begin methods of rules. |
void |
fireEndMethods(List<Rule> 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)
Called after this Rule object has been added to the list of all Rules. |
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. |
Methods inherited from class org.apache.commons.digester3.Rule |
---|
finish, getDigester, getNamespaceURI, setDigester, setNamespaceURI |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public PluginCreateRule(Class<?> baseClass)
baseClass
- is the class which any specified plugin must be descended from.public PluginCreateRule(Class<?> baseClass, Class<?> dfltPluginClass)
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.public PluginCreateRule(Class<?> baseClass, Class<?> dfltPluginClass, RuleLoader dfltPluginRuleLoader)
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.Method Detail |
---|
public void setPluginClassAttribute(String namespaceUri, String attrName)
See PluginRules.setPluginClassAttribute(java.lang.String, java.lang.String)
for more info.
namespaceUri
- is the namespace uri that the specified attribute is in. If the attribute is in no namespace,
then this should be null. Note that if a namespace is used, the attrName value should not
contain any kind of namespace-prefix. Note also that if you are using a non-namespace-aware parser,
this parameter must be null.attrName
- is the attribute whose value contains the name of the class to be instantiated.public void setPluginIdAttribute(String namespaceUri, String attrName)
See PluginRules.setPluginIdAttribute(java.lang.String, java.lang.String)
for more info.
namespaceUri
- is the namespace uri that the specified attribute is in. If the attribute is in no namespace,
then this should be null. Note that if a namespace is used, the attrName value should not
contain any kind of namespace-prefix. Note also that if you are using a non-namespace-aware parser,
this parameter must be null.attrName
- is the attribute whose value contains the id of the plugin declaration to be used when
instantiating an object.public void postRegisterInit(String matchPattern)
postRegisterInit
in interface InitializableRule
matchPattern
- is the digester match pattern that will trigger this rule.public void begin(String namespace, String name, Attributes attributes) throws Exception
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.
begin
in class Rule
namespace
- the namespace URI of the matching element, or an empty string if the parser is not namespace
aware or the element has no namespacename
- the local name if the parser is namespace aware, or just the element name otherwiseattributes
- The attribute list of this element
Exception
- if any error occurspublic void body(String namespace, String name, String text) throws Exception
body
in class Rule
namespace
- the namespace URI of the matching element, or an empty string if the parser is not namespace
aware or the element has no namespacename
- the local name if the parser is namespace aware, or just the element name otherwisetext
- The text of the body of this element
Exception
- if any error occurspublic void end(String namespace, String name) throws Exception
end
in class Rule
namespace
- the namespace URI of the matching element, or an empty string if the parser is not namespace
aware or the element has no namespacename
- the local name if the parser is namespace aware, or just the element name otherwise
Exception
- if any error occurspublic String getPattern()
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.
public void fireBeginMethods(List<Rule> rules, String namespace, String name, Attributes list) throws Exception
rules
- The rules which Rule.begin(String, String, Attributes)
method has to be firednamespace
- the namespace URI of the matching element, or an empty string if the parser is not namespace
aware or the element has no namespacename
- the local name if the parser is namespace aware, or just the element name otherwiselist
- The attribute list of this element
Exception
- if any error occurspublic void fireEndMethods(List<Rule> rules, String namespaceURI, String name) throws Exception
rules
- The rules which Rule.end(String, String)
method has to be firednamespaceURI
- the namespace URI of the matching element, or an empty string if the parser is not namespace
aware or the element has no namespacename
- the local name if the parser is namespace aware, or just the element name otherwise
Exception
- if any error occurs
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |