org.apache.commons.digester3.plugins.strategies
Class FinderFromDfltClass

java.lang.Object
  extended by org.apache.commons.digester3.plugins.RuleFinder
      extended by org.apache.commons.digester3.plugins.strategies.FinderFromDfltClass

public class FinderFromDfltClass
extends RuleFinder

A rule-finding algorithm which looks for a method with a specific name on a class whose name is derived from the plugin class name.

Since:
1.6

Constructor Summary
FinderFromDfltClass()
          See findLoader(org.apache.commons.digester3.Digester, java.lang.Class, java.util.Properties).
FinderFromDfltClass(String rulesClassSuffix, String methodName)
          Create a rule-finder which invokes a method on a class whenever dynamic rules for a plugin need to be loaded.
 
Method Summary
 RuleLoader findLoader(Digester digester, Class<?> pluginClass, Properties p)
          If there exists a class whose name is the plugin class name + the suffix specified to the constructor, then load that class, locate the appropriate rules-adding method on that class, and return an object encapsulating that info.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FinderFromDfltClass

public FinderFromDfltClass()
See findLoader(org.apache.commons.digester3.Digester, java.lang.Class, java.util.Properties).


FinderFromDfltClass

public FinderFromDfltClass(String rulesClassSuffix,
                           String methodName)
Create a rule-finder which invokes a method on a class whenever dynamic rules for a plugin need to be loaded. See the findRules method for more info.

Parameters:
rulesClassSuffix - must be non-null.
methodName - may be null.
Method Detail

findLoader

public RuleLoader findLoader(Digester digester,
                             Class<?> pluginClass,
                             Properties p)
                      throws PluginException
If there exists a class whose name is the plugin class name + the suffix specified to the constructor, then load that class, locate the appropriate rules-adding method on that class, and return an object encapsulating that info.

If there is no such class, then just return null.

The returned object (when non-null) will invoke the target method on the selected class whenever its addRules method is invoked. The target method is expected to have the following prototype: public static void xxxxx(Digester d, String patternPrefix);

Specified by:
findLoader in class RuleFinder
Parameters:
digester - The digester instance where locating plugin classes
pluginClass - The plugin Java class
p - The properties object that holds any xml attributes the user may have specified on the plugin declaration in order to indicate how to locate the plugin rules.
Returns:
a source of digester rules for the specified plugin class.
Throws:
PluginException - if the algorithm finds a source of rules, but there is something invalid about that source.


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.