Package net.sf.saxon.pattern
Class AnchorPattern
- java.lang.Object
-
- net.sf.saxon.pattern.Pattern
-
- net.sf.saxon.pattern.AnchorPattern
-
- All Implemented Interfaces:
java.io.Serializable,javax.xml.transform.SourceLocator,Container,PatternFinder
public class AnchorPattern extends Pattern
This is a special pattern that matches the "anchor node"; it is not used for XSLT patterns, but for the selectors that arise when evaluating XPath expressions in streaming mode; the anchor node is the context node for the streamed XPath evaluation.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description AnchorPattern()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Patternanalyze(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType)Type-check the pattern.ItemTypegetItemType()Get a NodeTest that all the nodes matching this pattern must satisfyprotected booleaninternalMatches(NodeInfo node, NodeInfo anchor, XPathContext context)Determine whether this Pattern matches the given Node.booleanmatches(Item item, XPathContext context)Determine whether this Pattern matches the given Node.booleanmatchesBeneathAnchor(NodeInfo node, NodeInfo anchor, XPathContext context)Determine whether this pattern matches a given Node within the subtree rooted at a given anchor node.java.lang.StringtoString()Get the original pattern text-
Methods inherited from class net.sf.saxon.pattern.Pattern
allocateSlots, getColumnNumber, getContainerGranularity, getDefaultPriority, getDependencies, getExecutable, getFingerprint, getHostLanguage, getLineNumber, getLocationProvider, getNodeKind, getPublicId, getSystemId, iterateSubExpressions, make, promote, replaceSubExpression, resolveCurrent, selectNodes, setExecutable, setLineNumber, setOriginalText, setSystemId, setVariableBindingExpression, simplify
-
-
-
-
Method Detail
-
analyze
public Pattern analyze(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException
Type-check the pattern.- Overrides:
analyzein classPattern- Parameters:
visitor- the expression visitorcontextItemType- the type of the context item at the point where the pattern is defined. Set to null if it is known that the context item is undefined.- Returns:
- the optimised Pattern
- Throws:
XPathException- if a static error is discovered
-
matchesBeneathAnchor
public boolean matchesBeneathAnchor(NodeInfo node, NodeInfo anchor, XPathContext context) throws XPathException
Determine whether this pattern matches a given Node within the subtree rooted at a given anchor node. This method is used when the pattern is used for streaming.- Overrides:
matchesBeneathAnchorin classPattern- Parameters:
node- The NodeInfo representing the Element or other node to be tested against the Patternanchor- The anchor node, which must match any AnchorPattern subpatterncontext- The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().- Returns:
- true if the node matches the Pattern, false otherwise
- Throws:
XPathException- if a dynamic error occurs during pattern matching
-
matches
public boolean matches(Item item, XPathContext context) throws XPathException
Determine whether this Pattern matches the given Node. This is the main external interface for matching patterns: it sets current() to the node being tested- Specified by:
matchesin classPattern- Parameters:
item- The NodeInfo representing the Element or other node to be tested against the Patterncontext- The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().- Returns:
- true if the node matches the Pattern, false otherwise
- Throws:
XPathException- if a dynamic error occurs during pattern matching
-
internalMatches
protected boolean internalMatches(NodeInfo node, NodeInfo anchor, XPathContext context) throws XPathException
Determine whether this Pattern matches the given Node. This is an internal interface used for matching sub-patterns; it does not alter the value of current(). The default implementation is identical to matches().- Overrides:
internalMatchesin classPattern- Parameters:
node- The NodeInfo representing the Element or other node to be tested against the Patternanchor-context- The dynamic context. Only relevant if the pattern uses variables, or contains calls on functions such as document() or key().- Returns:
- true if the node matches the Pattern, false otherwise
- Throws:
XPathException- if a dynamic error occurs during pattern matching
-
getItemType
public ItemType getItemType()
Get a NodeTest that all the nodes matching this pattern must satisfy- Specified by:
getItemTypein classPattern- Returns:
- a NodeTest, as specific as possible, which all the matching nodes satisfy
-
-