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 Pattern
analyze(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType)
Type-check the pattern.ItemType
getItemType()
Get a NodeTest that all the nodes matching this pattern must satisfyprotected boolean
internalMatches(NodeInfo node, NodeInfo anchor, XPathContext context)
Determine whether this Pattern matches the given Node.boolean
matches(Item item, XPathContext context)
Determine whether this Pattern matches the given Node.boolean
matchesBeneathAnchor(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.String
toString()
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:
analyze
in 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:
matchesBeneathAnchor
in 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:
matches
in 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:
internalMatches
in 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:
getItemType
in classPattern
- Returns:
- a NodeTest, as specific as possible, which all the matching nodes satisfy
-
-