Class PluginManager
java.lang.Object
org.apache.commons.digester.plugins.PluginManager
Coordinates between PluginDeclarationRule and PluginCreateRule objects,
providing a place to share data between instances of these rules.
One instance of this class exists per PluginRules instance.
- Since:
- 1.6
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate HashMap<String,
Declaration> Map of classname->Declarationprivate HashMap<String,
Declaration> Map of id->Declarationprivate PluginManager
the parent manager to which this one may delegate lookups.private PluginContext
The object containing data that should only exist once for each Digester instance. -
Constructor Summary
ConstructorsConstructorDescriptionConstruct a "root" PluginManager, ie one with no parent.PluginManager
(PluginManager parent) Construct a "child" PluginManager. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addDeclaration
(Declaration decl) Add the declaration to the set of known declarations.findLoader
(Digester digester, String id, Class<?> pluginClass, Properties props) Given a plugin class and some associated properties, scan the list of known RuleFinder instances until one detects a source of custom rules for this plugin (aka a RuleLoader).getDeclarationByClass
(String className) Return the declaration object with the specified class.Return the declaration object with the specified id.
-
Field Details
-
declarationsByClass
Map of classname->Declaration -
declarationsById
Map of id->Declaration -
parent
the parent manager to which this one may delegate lookups. -
pluginContext
The object containing data that should only exist once for each Digester instance.
-
-
Constructor Details
-
PluginManager
Construct a "root" PluginManager, ie one with no parent. -
PluginManager
Construct a "child" PluginManager. When declarations are added to a "child", they are stored within the child and do not modify the parent, so when the child goes out of scope, those declarations disappear. When asking a "child" to retrieve a declaration, it delegates the search to its parent if it does not hold a matching entry itself.- Parameters:
parent
- must be non-null.
-
-
Method Details
-
addDeclaration
Add the declaration to the set of known declarations.TODO: somehow get a reference to a Digester object so that we can really log here. Currently, all logging is disabled from this method.
- Parameters:
decl
- an object representing a plugin class.
-
getDeclarationByClass
Return the declaration object with the specified class. If no such plugin is known, null is returned. -
getDeclarationById
Return the declaration object with the specified id. If no such plugin is known, null is returned.- Parameters:
id
- Description of the Parameter- Returns:
- The declaration value
-
findLoader
public RuleLoader findLoader(Digester digester, String id, Class<?> pluginClass, Properties props) throws PluginException Given a plugin class and some associated properties, scan the list of known RuleFinder instances until one detects a source of custom rules for this plugin (aka a RuleLoader).If no source of custom rules can be found, null is returned.
- Throws:
PluginException
-