public class Mode
extends java.lang.Object
implements java.io.Serializable
| Modifier and Type | Field and Description |
|---|---|
static StructuredQName |
ALL_MODES |
static int |
NAMED_MODE |
static int |
STRIPPER_MODE |
static int |
UNNAMED_MODE |
static StructuredQName |
UNNAMED_MODE_NAME |
| Constructor and Description |
|---|
Mode(int usage,
StructuredQName modeName)
Default constructor - creates a Mode containing no rules
|
Mode(Mode omniMode,
StructuredQName modeName)
Construct a new Mode, copying the contents of an existing Mode
|
| Modifier and Type | Method and Description |
|---|---|
void |
addRule(Pattern pattern,
RuleTarget action,
StylesheetModule module,
double priority,
boolean explicitMode)
Add a rule to the Mode.
|
void |
allocatePatternSlots(int slots)
Specify how many slots for local variables are required by a particular pattern
|
void |
computeRankings()
Compute a rank for each rule, as a combination of the precedence and priority, to allow
rapid comparison.
|
void |
explainTemplateRules(ExpressionPresenter presenter)
Explain all template rules in this mode by showing their
expression tree represented in XML.
|
BuiltInRuleSet |
getBuiltInRuleSet()
Get the built-in template rules to be used with this Mode in the case where there is no
explicit template rule
|
StructuredQName |
getModeName()
Get the name of the mode (for diagnostics only)
|
Rule |
getNextMatchRule(NodeInfo node,
Rule currentRule,
XPathContext context)
Get the rule corresponding to a given Node, by finding the next-best Pattern match
after the specified object.
|
int |
getRecoveryPolicy()
Get the policy for handling recoverable errors.
|
Rule |
getRule(NodeInfo node,
int min,
int max,
XPathContext context)
Get the rule corresponding to a given Node, by finding the best Pattern match, subject to a minimum
and maximum precedence.
|
Rule |
getRule(NodeInfo node,
XPathContext context)
Get the rule corresponding to a given Node, by finding the best Pattern match.
|
Rule |
getRule(NodeInfo node,
XPathContext context,
net.sf.saxon.trans.Mode.RuleFilter filter)
Get the rule corresponding to a given Node, by finding the best Pattern match.
|
void |
invertStreamableTemplates(Optimizer opt)
For a streamable mode, invert all the templates to generate streamable code
|
boolean |
isDefaultMode()
Determine if this is the default mode
|
boolean |
isEmpty()
Ask whether there are any template rules in this mode
(a mode could exist merely because it is referenced in apply-templates)
|
boolean |
isStreamable()
Ask whether this mode is streamable
|
void |
processRules(net.sf.saxon.trans.Mode.RuleAction action)
Walk over all the rules, applying a specified action to each one.
|
void |
setBuiltInRuleSet(BuiltInRuleSet defaultRules)
Set the built-in template rules to be used with this Mode in the case where there is no
explicit template rule
|
void |
setRecoveryPolicy(int policy)
Set the policy for handling recoverable errrors.
|
void |
setStreamable(boolean streamable)
Say that this mode is (or is not) streamable
|
public static final int UNNAMED_MODE
public static final int NAMED_MODE
public static final int STRIPPER_MODE
public static final StructuredQName ALL_MODES
public static final StructuredQName UNNAMED_MODE_NAME
public Mode(int usage,
StructuredQName modeName)
usage - one of UNNAMED_MODE, NAMED_MODE, STRIPPER_MODEmodeName - the name of the modepublic Mode(Mode omniMode, StructuredQName modeName)
omniMode - the existing mode. May be null, in which case it is not copiedmodeName - the name of the new mode to be createdpublic void setBuiltInRuleSet(BuiltInRuleSet defaultRules)
defaultRules - the built-in rule setpublic BuiltInRuleSet getBuiltInRuleSet()
public boolean isDefaultMode()
public StructuredQName getModeName()
public boolean isEmpty()
public void setRecoveryPolicy(int policy)
policy - the recovery policy to be used. The options are Configuration.RECOVER_SILENTLY,
Configuration.RECOVER_WITH_WARNINGS, or Configuration.DO_NOT_RECOVER.public int getRecoveryPolicy()
public void setStreamable(boolean streamable)
throws XPathException
streamable - true if this mode is a streamable modeXPathExceptionpublic boolean isStreamable()
public void addRule(Pattern pattern, RuleTarget action, StylesheetModule module, double priority, boolean explicitMode)
pattern - a Patternaction - the Object to return from getRule() when the supplied node matches this Patternmodule - the stylesheet module containing the ruleexplicitMode - true if adding a template rule for a specific (default or named) mode;
false if adding a rule because it applies to all modespublic void allocatePatternSlots(int slots)
slots - the number of slots neededpublic Rule getRule(NodeInfo node, XPathContext context) throws XPathException
node - the NodeInfo referring to the node to be matchedcontext - the XPath dynamic evaluation contextXPathExceptionpublic Rule getRule(NodeInfo node, XPathContext context, net.sf.saxon.trans.Mode.RuleFilter filter) throws XPathException
node - the NodeInfo referring to the node to be matchedcontext - the XPath dynamic evaluation contextXPathExceptionpublic Rule getRule(NodeInfo node, int min, int max, XPathContext context) throws XPathException
node - the NodeInfo referring to the node to be matchedmin - the minimum import precedencemax - the maximum import precedencecontext - the XPath dynamic evaluation contextXPathExceptionpublic Rule getNextMatchRule(NodeInfo node, Rule currentRule, XPathContext context) throws XPathException
node - the NodeInfo referring to the node to be matchedcurrentRule - the current rule; we are looking for the next match after the current rulecontext - the XPath dynamic evaluation contextXPathExceptionpublic void processRules(net.sf.saxon.trans.Mode.RuleAction action)
throws XPathException
action - an action that is to be applied to all the rules in this ModeXPathExceptionpublic void invertStreamableTemplates(Optimizer opt) throws XPathException
XPathExceptionpublic void explainTemplateRules(ExpressionPresenter presenter)
presenter - used to display the expression treepublic void computeRankings()
throws XPathException
XPathException