Class PluginContext
- java.lang.Object
-
- org.apache.commons.digester.plugins.PluginContext
-
public class PluginContext extends java.lang.Object
Provides data and services which should exist only once per digester.This class holds a number of useful items which should be shared by all plugin objects. Such data cannot be stored on the PluginRules or PluginManager classes, as there can be multiple instances of these at various times during a parse.
The name "Context" refers to the similarity between this class and a ServletContext class in a servlet engine. A ServletContext object provides access to the container's services such as obtaining global configuration parameters for the container, or getting access to logging services. For plugins, a Digester instance can be regarded as "the container".
- Since:
- 1.6
-
-
Field Summary
Fields Modifier and Type Field Description java.lang.String
DFLT_PLUGIN_CLASS_ATTR
java.lang.String
DFLT_PLUGIN_CLASS_ATTR_NS
java.lang.String
DFLT_PLUGIN_ID_ATTR
java.lang.String
DFLT_PLUGIN_ID_ATTR_NS
private java.lang.String
pluginClassAttr
private java.lang.String
pluginClassAttrNs
private java.lang.String
pluginIdAttr
private java.lang.String
pluginIdAttrNs
private java.util.List
ruleFinders
A list of RuleFinder objects used by all Declarations (and thus indirectly by all PluginCreateRules to locate the custom rules for plugin classes.
-
Constructor Summary
Constructors Constructor Description PluginContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String
getPluginClassAttr()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which class is to be plugged in.java.lang.String
getPluginClassAttrNs()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which class is to be plugged in.java.lang.String
getPluginIdAttr()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which previous plugin declaration should be used.java.lang.String
getPluginIdAttrNs()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which previous plugin declaration should be used.java.util.List
getRuleFinders()
Return the list of RuleFinder objects.void
setPluginClassAttribute(java.lang.String namespaceUri, java.lang.String attrName)
Sets the xml attribute which the input xml uses to indicate to a PluginCreateRule which class should be instantiated.void
setPluginIdAttribute(java.lang.String namespaceUri, java.lang.String attrName)
Sets the xml attribute which the input xml uses to indicate to a PluginCreateRule which plugin declaration is being referenced.void
setRuleFinders(java.util.List ruleFinders)
Set the list of RuleFinder objects.
-
-
-
Field Detail
-
DFLT_PLUGIN_CLASS_ATTR_NS
public final java.lang.String DFLT_PLUGIN_CLASS_ATTR_NS
-
DFLT_PLUGIN_CLASS_ATTR
public final java.lang.String DFLT_PLUGIN_CLASS_ATTR
- See Also:
- Constant Field Values
-
DFLT_PLUGIN_ID_ATTR_NS
public final java.lang.String DFLT_PLUGIN_ID_ATTR_NS
-
DFLT_PLUGIN_ID_ATTR
public final java.lang.String DFLT_PLUGIN_ID_ATTR
- See Also:
- Constant Field Values
-
pluginClassAttrNs
private java.lang.String pluginClassAttrNs
-
pluginClassAttr
private java.lang.String pluginClassAttr
-
pluginIdAttrNs
private java.lang.String pluginIdAttrNs
-
pluginIdAttr
private java.lang.String pluginIdAttr
-
ruleFinders
private java.util.List ruleFinders
A list of RuleFinder objects used by all Declarations (and thus indirectly by all PluginCreateRules to locate the custom rules for plugin classes.
-
-
Method Detail
-
getRuleFinders
public java.util.List getRuleFinders()
Return the list of RuleFinder objects. Under normal circumstances this method creates a default list of these objects when first called (ie "on-demand" or "lazy initialization"). However if setRuleFinders has been called first, then the list specified there is returned.It is explicitly permitted for the caller to modify this list by inserting or removing RuleFinder objects.
-
setRuleFinders
public void setRuleFinders(java.util.List ruleFinders)
Set the list of RuleFinder objects. This may be useful if working in a non-english language, allowing the application developer to replace the standard list with a list of objects which look for xml attributes in the local language.If the intent is just to add an additional rule-finding algorithm, then it may be better to call #getRuleFinders, and insert a new object into the start of the list.
-
setPluginClassAttribute
public void setPluginClassAttribute(java.lang.String namespaceUri, java.lang.String attrName)
Sets the xml attribute which the input xml uses to indicate to a PluginCreateRule which class should be instantiated.Example:
setPluginClassAttribute(null, "class");
will allow this in the input xml:<root> <some-plugin class="com.acme.widget"> ......
instead of the default syntax:<root> <some-plugin plugin-class="com.acme.widget"> ......
This is particularly useful if the input xml document is not in English.Note that the xml attributes used by PluginDeclarationRules are not affected by this method.
- Parameters:
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.
-
setPluginIdAttribute
public void setPluginIdAttribute(java.lang.String namespaceUri, java.lang.String attrName)
Sets the xml attribute which the input xml uses to indicate to a PluginCreateRule which plugin declaration is being referenced.Example:
setPluginIdAttribute(null, "id");
will allow this in the input xml:<root> <some-plugin id="widget"> ......
rather than the default behaviour:<root> <some-plugin plugin-id="widget"> ......
This is particularly useful if the input xml document is not in English.Note that the xml attributes used by PluginDeclarationRules are not affected by this method.
- Parameters:
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.
-
getPluginClassAttrNs
public java.lang.String getPluginClassAttrNs()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which class is to be plugged in.May be null (in fact, normally will be).
-
getPluginClassAttr
public java.lang.String getPluginClassAttr()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which class is to be plugged in.The return value is never null.
-
getPluginIdAttrNs
public java.lang.String getPluginIdAttrNs()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which previous plugin declaration should be used.May be null (in fact, normally will be).
-
getPluginIdAttr
public java.lang.String getPluginIdAttr()
Get the namespace for the xml attribute which indicates to a PluginCreateRule which previous plugin declaration should be used.The return value is never null.
-
-