Package net.sf.saxon.trans
Class RuleManager
java.lang.Object
net.sf.saxon.trans.RuleManager
- All Implemented Interfaces:
Serializable
RuleManager maintains a set of template rules, one set for each mode
- Version:
- 10 December 1999: carved out of the old Controller class
- Author:
- Michael H. Kay
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet the mode object for the default (unnamed) modegetMode
(int modeNameCode) Get the Mode object for a named mode.getNextMatchHandler
(NodeInfo node, Mode mode, Rule currentRule, XPathContext c) Get the next-match handler after the current onegetTemplateRule
(NodeInfo node, Mode mode, int min, int max, XPathContext c) Get a template rule whose import precedence is in a particular range.getTemplateRule
(NodeInfo node, Mode mode, XPathContext c) Find the template rule registered for a particular node in a specific mode.void
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.
-
Constructor Details
-
RuleManager
public RuleManager()create a RuleManager and initialise variables.
-
-
Method Details
-
resetHandlers
public void resetHandlers()Set up a new table of handlers. -
getDefaultMode
Get the mode object for the default (unnamed) mode -
getMode
Get the Mode object for a named mode. If there is not one already registered. a new Mode is created.- Parameters:
modeNameCode
- The name code of the mode. Supply Mode.DEFAULT_MODE to get the default mode or Mode.ALL_MODES to get the Mode object containing "mode=all" rules- Returns:
- the Mode with this name
-
setHandler
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.- Parameters:
pattern
- A match patterneh
- The ElementHandler to be usedmode
- The processing modeprecedence
- The import precedence (use 0 by default)
-
setHandler
Register a template for a particular pattern.- Parameters:
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- See Also:
-
getTemplateRule
Find the template rule registered for a particular node in a specific mode.- Parameters:
node
- The NodeInfo for the relevant nodemode
- The processing modec
- The controller for this transformation- Returns:
- The template rule that will process this node Returns null if there is no specific handler registered.
- Throws:
XPathException
-
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- Parameters:
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- Returns:
- The template rule to be invoked
- Throws:
XPathException
-
getNextMatchHandler
public Rule getNextMatchHandler(NodeInfo node, Mode mode, Rule currentRule, XPathContext c) throws XPathException Get the next-match handler after the current one- Parameters:
node
- The node to be matchedmode
- The processing modecurrentRule
- The current template rulec
- The dynamic context for the transformation- Returns:
- The template rule to be executed
- Throws:
XPathException
-