org.apache.commons.digester.xmlrules

Class DigesterRuleParser

public class DigesterRuleParser extends RuleSetBase

This is a RuleSet that parses XML into Digester rules, and then adds those rules to a 'target' Digester.

Since: 1.2

Nested Class Summary
protected classDigesterRuleParser.CallMethodRuleFactory
Factory for creating a CallMethodRule.
protected classDigesterRuleParser.CallParamRuleFactory
Factory for creating a CallParamRule.
protected classDigesterRuleParser.FactoryCreateRuleFactory
Factory for creating a FactoryCreateRule
protected classDigesterRuleParser.NodeCreateRuleFactory
Factory for creating a NodeCreateRule
protected classDigesterRuleParser.ObjectCreateRuleFactory
Factory for creating a ObjectCreateRule
protected classDigesterRuleParser.ObjectParamRuleFactory
Factory for creating a ObjectParamRule
protected classDigesterRuleParser.PatternStack
A stack whose toString method returns a '/'-separated concatenation of all the elements in the stack.
protected classDigesterRuleParser.SetNestedPropertiesAliasRule
A rule for adding a attribute-property alias to the custom alias mappings of the containing SetNestedPropertiesRule rule.
protected classDigesterRuleParser.SetNestedPropertiesRuleFactory
Factory for creating a SetNestedPropertiesRule
protected classDigesterRuleParser.SetNextRuleFactory
Factory for creating a SetNextRuleFactory
protected classDigesterRuleParser.SetPropertiesAliasRule
A rule for adding a attribute-property alias to the custom alias mappings of the containing SetPropertiesRule rule.
protected classDigesterRuleParser.SetPropertiesRuleFactory
Factory for creating a SetPropertiesRule
protected classDigesterRuleParser.SetPropertyRuleFactory
Factory for creating a SetPropertyRule
protected classDigesterRuleParser.SetRootRuleFactory
Factory for creating a SetRootRuleFactory
protected classDigesterRuleParser.SetTopRuleFactory
Factory for creating a SetTopRuleFactory
Field Summary
protected StringbasePath
static StringDIGESTER_PUBLIC_ID
protected DigesterRuleParser.PatternStackpatternStack
A stack used to maintain the current pattern.
protected DigestertargetDigester
This is the digester to which we are adding the rules that we parse from the Rules XML document.
Constructor Summary
DigesterRuleParser()
Constructs a DigesterRuleParser.
DigesterRuleParser(Digester targetDigester)
Constructs a rule set for converting XML digester rule descriptions into Rule objects, and adding them to the given Digester
Method Summary
voidadd(Rule rule)
Adds a rule the the target digester.
voidaddRuleInstances(Digester digester)
Add to the given digester the set of Rule instances used to parse an XML document defining Digester rules.
protected StringgetDigesterRulesDTD()
Returns the location of the DTD used to validate the digester rules XML document.
voidsetBasePath(String path)
Set a base pattern beneath which all the rules loaded by this object will be registered.
voidsetDigesterRulesDTD(String dtdURL)
Sets the location of the digester rules DTD.
voidsetTarget(Digester d)
Sets the digester into which to add the parsed rules

Field Detail

basePath

protected String basePath
See DigesterRuleParser.

DIGESTER_PUBLIC_ID

public static final String DIGESTER_PUBLIC_ID

patternStack

protected DigesterRuleParser.PatternStack patternStack
A stack used to maintain the current pattern. The Rules XML document type allows nesting of patterns. If an element defines a matching pattern, the resulting pattern is a concatenation of that pattern with all the ancestor elements' patterns. Hence the need for a stack.

targetDigester

protected Digester targetDigester
This is the digester to which we are adding the rules that we parse from the Rules XML document.

Constructor Detail

DigesterRuleParser

public DigesterRuleParser()
Constructs a DigesterRuleParser. This object will be inoperable until the target digester is set, via setTarget(Digester)

DigesterRuleParser

public DigesterRuleParser(Digester targetDigester)
Constructs a rule set for converting XML digester rule descriptions into Rule objects, and adding them to the given Digester

Parameters: targetDigester the Digester to add the rules to

Method Detail

add

public void add(Rule rule)
Adds a rule the the target digester. After a rule has been created by parsing the XML, it is added to the digester by calling this method. Typically, this method is called via reflection, when executing a SetNextRule, from the Digester that is parsing the rules XML.

Parameters: rule a Rule to add to the target digester.

addRuleInstances

public void addRuleInstances(Digester digester)
Add to the given digester the set of Rule instances used to parse an XML document defining Digester rules. When the digester parses an XML file, it will add the resulting rules & patterns to the 'target digester' that was passed in this RuleSet's constructor.

If you extend this class to support additional rules, your implementation should of this method should call this implementation first: i.e. super.addRuleInstances(digester);

getDigesterRulesDTD

protected String getDigesterRulesDTD()
Returns the location of the DTD used to validate the digester rules XML document.

setBasePath

public void setBasePath(String path)
Set a base pattern beneath which all the rules loaded by this object will be registered. If this string is not empty, and does not end in a "/", then one will be added.

Since: 1.6

setDigesterRulesDTD

public void setDigesterRulesDTD(String dtdURL)
Sets the location of the digester rules DTD. This is the DTD used to validate the rules XML file.

setTarget

public void setTarget(Digester d)
Sets the digester into which to add the parsed rules

Parameters: d the Digester to add the rules to

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