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 TypeMethodDescriptionvoid
explainTemplateRules
(ExpressionPresenter presenter) Explain (that is, output the expression tree) all template rulesGet the mode object for the default (unnamed) modegetMode
(StructuredQName modeName, boolean createIfAbsent) 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:
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.- 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
-
explainTemplateRules
Explain (that is, output the expression tree) all template rules
-