Package com.saxonica.ee.trans
Class PreconditionMatcher
- java.lang.Object
-
- net.sf.saxon.trans.rules.RuleSearchState
-
- com.saxonica.ee.trans.PreconditionMatcher
-
public class PreconditionMatcher extends RuleSearchState
This class contains the stateful part of the precondition checker. A new PreconditionMatcher is allocated when searching a rule chain to find the best matching rule for a given node (or other item). It holds the values of preconditions and characteristics. A precondition is a boolean property of an item that must be true if the item is to match a particular pattern; once the precondition has been evaluated, its value can be used to eliminate other rules with the same precondition. A characteristic is a property of an item that must match a corresponding property of a rule if the rule is to match; for example, a property might be "name of parent element". Once the value of a characteristic (for example, the name of the parent element) has been evaluated, a rule can be eliminated if it requires a different value for the characteristic.
-
-
Constructor Summary
Constructors Constructor Description PreconditionMatcher(RuleChain chain, XPathContext context)Allocate a PreconditionMatcher for a given set of rules
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.BooleangetPreconditionState(int slot)Get the state of a given precondition.<T> TobtainCharacteristic(Characteristic<T> chic)Get the value of a particular characteristic of the item being matched, evaluating it if it has not already been evaluated, and retaining its value for future usevoidsetPreconditionState(int slot, boolean value)Set the value of a given precondition.
-
-
-
Constructor Detail
-
PreconditionMatcher
public PreconditionMatcher(RuleChain chain, XPathContext context)
Allocate a PreconditionMatcher for a given set of rules- Parameters:
chain- the set of rules being matchedcontext- the XPath evaluation context; the context item is the item being matched against the set of rules
-
-
Method Detail
-
getPreconditionState
public java.lang.Boolean getPreconditionState(int slot)
Get the state of a given precondition.- Parameters:
slot- the slot number allocated to the precondition- Returns:
- true if the precondition is known to be true for the item being matched; false if it is known to be false; or null if its value is not known
-
setPreconditionState
public void setPreconditionState(int slot, boolean value)Set the value of a given precondition.- Parameters:
slot- the slot number allocated to the preconditionvalue- true if the precondition (for the item being matched) is known to be true, false if it is known to be false.
-
obtainCharacteristic
public <T> T obtainCharacteristic(Characteristic<T> chic) throws XPathException
Get the value of a particular characteristic of the item being matched, evaluating it if it has not already been evaluated, and retaining its value for future use- Type Parameters:
T- the type of value of this characteristic- Parameters:
chic- the characteristic to be evaluated- Returns:
- the value of the characteristic
- Throws:
XPathException- if evaluation of the characteristic failed
-
-