net.sf.saxon.trans
Class RuleManager
java.lang.Object
net.sf.saxon.trans.RuleManager
- Serializable
public final class RuleManager
extends java.lang.Object
implements Serializable
RuleManager maintains a set of template rules, one set for each mode
10 December 1999: carved out of the old Controller classRuleManager() - create a RuleManager and initialise variables.
|
void | explainTemplateRules(ExpressionPresenter presenter) - Explain (that is, output the expression tree) all template rules
|
Mode | getDefaultMode() - Get the mode object for the default (unnamed) mode
|
Mode | getMode(StructuredQName modeName, boolean createIfAbsent) - Get the Mode object for a named mode.
|
Rule | getNextMatchHandler(NodeInfo node, Mode mode, Rule currentRule, XPathContext c) - Get the next-match handler after the current one
|
Rule | getTemplateRule(NodeInfo node, Mode mode, int min, int max, XPathContext c) - Get a template rule whose import precedence is in a particular range.
|
Rule | getTemplateRule(NodeInfo node, Mode mode, XPathContext c) - Find the template rule registered for a particular node in a specific mode.
|
void | resetHandlers() - Set up a new table of handlers.
|
void | setHandler(Pattern pattern, Template eh, Mode mode, int precedence) - Register a handler for a particular pattern.
|
void | setHandler(Pattern pattern, Template eh, Mode mode, int precedence, double priority) - Register a template for a particular pattern.
|
RuleManager
public RuleManager()
create a RuleManager and initialise variables.
explainTemplateRules
public void explainTemplateRules(ExpressionPresenter presenter)
Explain (that is, output the expression tree) all template rules
getDefaultMode
public Mode getDefaultMode()
Get the mode object for the default (unnamed) mode
getMode
public Mode getMode(StructuredQName modeName,
boolean createIfAbsent)
Get the Mode object for a named mode. If there is not one already registered.
a new Mode is created.
modeName
- The name of the mode. Supply null to get the default
mode or Mode.ALL_MODES to get the Mode object containing "mode=all" rulescreateIfAbsent
- if true, then if the mode does not already exist it will be created.
If false, then if the mode does not already exist the method returns null.
getNextMatchHandler
public Rule getNextMatchHandler(NodeInfo node,
Mode mode,
Rule currentRule,
XPathContext c)
throws XPathException
Get the next-match handler after the current one
node
- The node to be matchedmode
- The processing modecurrentRule
- The current template rulec
- The dynamic context for the transformation
- The template rule to be executed
getTemplateRule
public Rule getTemplateRule(NodeInfo node,
Mode mode,
int min,
int max,
XPathContext c)
throws XPathException
Get a template rule whose import precedence is in a particular range. This is used to support
the xsl:apply-imports function
node
- The node to be matchedmode
- The mode for which a rule is requiredmin
- The minimum import precedence that the rule must havemax
- The maximum import precedence that the rule must havec
- The Controller for the transformation
- The template rule to be invoked
getTemplateRule
public Rule getTemplateRule(NodeInfo node,
Mode mode,
XPathContext c)
throws XPathException
Find the template rule registered for a particular node in a specific mode.
node
- The NodeInfo for the relevant nodemode
- The processing modec
- The controller for this transformation
- The template rule that will process this node
Returns null if there is no specific handler registered.
resetHandlers
public void resetHandlers()
Set up a new table of handlers.
setHandler
public void setHandler(Pattern pattern,
Template eh,
Mode mode,
int precedence)
Register a handler for a particular pattern. The priority of the rule
is the default priority for the pattern, which depends on the syntax of
the pattern suppllied.
pattern
- A match patterneh
- The ElementHandler to be usedmode
- The processing modeprecedence
- The import precedence (use 0 by default)
setHandler
public void setHandler(Pattern pattern,
Template eh,
Mode mode,
int precedence,
double priority)
Register a template for a particular pattern.
pattern
- Must be a valid Pattern.eh
- The Template to be usedmode
- The processing mode to which this template appliesprecedence
- The import precedence of this rulepriority
- The priority of the rule: if an element matches several patterns, the
one with highest priority is used