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

java.lang.Object
  extended by org.apache.commons.digester.plugins.RuleFinder
      extended by org.apache.commons.digester.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

Field Summary
static String DFLT_METHOD_NAME
           
static String DFLT_RULECLASS_SUFFIX
           
 
Constructor Summary
FinderFromDfltClass()
          See findLoader(org.apache.commons.digester.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
 

Field Detail

DFLT_RULECLASS_SUFFIX

public static String DFLT_RULECLASS_SUFFIX

DFLT_METHOD_NAME

public static String DFLT_METHOD_NAME
Constructor Detail

FinderFromDfltClass

public FinderFromDfltClass()
See findLoader(org.apache.commons.digester.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
Throws:
PluginException


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