Class LocationPathPattern
java.lang.Object
com.icl.saxon.pattern.Pattern
com.icl.saxon.pattern.LocationPathPattern
A LocationPathPattern represents a path, e.g. of the form A/B/C... The components are represented
as a linked list, each component pointing to its predecessor
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Expressionprotected Expression[]protected booleanprotected booleanprotected intprotected booleanFields inherited from class Pattern
originalText, staticContext -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFilter(Expression filter) Add a filter to the pattern (while under construction)intDetermine the fingerprint of nodes to which this pattern applies.shortDetermine the types of nodes to which this pattern applies.booleanDetermine if the pattern uses positional filtersbooleanDetermine whether this Pattern matches the given NodebooleanDetermine whether the pattern matches a given node.simplify()Simplify the pattern: perform any context-independent optimisationsMethods inherited from class Pattern
getDefaultPriority, getLineNumber, getStaticContext, getSystemId, make, setOriginalText, setStaticContext, toString
-
Field Details
-
parentPattern
-
ancestorPattern
-
nodeTest
-
filters
-
numberOfFilters
protected int numberOfFilters -
equivalentExpr
-
firstElementPattern
protected boolean firstElementPattern -
lastElementPattern
protected boolean lastElementPattern -
specialFilter
protected boolean specialFilter
-
-
Constructor Details
-
LocationPathPattern
public LocationPathPattern()
-
-
Method Details
-
addFilter
Add a filter to the pattern (while under construction)- Parameters:
filter- The predicate (a boolean expression or numeric expression) to be added
-
simplify
Simplify the pattern: perform any context-independent optimisations- Overrides:
simplifyin classPattern- Returns:
- the optimised Pattern
- Throws:
XPathException
-
matchesX
Determine whether the pattern matches a given node.- Parameters:
node- the node to be tested- Returns:
- true if the pattern matches, else false
- Throws:
XPathException
-
matches
Description copied from class:PatternDetermine whether this Pattern matches the given Node- Specified by:
matchesin classPattern- Parameters:
node- The NodeInfo representing the Element or other node to be tested against the Patterncontext- The context in which the match is to take place. Only relevant if the pattern uses variables.- Returns:
- true if the node matches the Pattern, false otherwise
- Throws:
XPathException
-
getNodeType
public short getNodeType()Determine the types of nodes to which this pattern applies. Used for optimisation. For patterns that match nodes of several types, return Node.NODE- Overrides:
getNodeTypein classPattern- Returns:
- the type of node matched by this pattern. e.g. Node.ELEMENT or Node.TEXT
-
getFingerprint
public int getFingerprint()Determine the fingerprint of nodes to which this pattern applies. Used for optimisation.- Overrides:
getFingerprintin classPattern- Returns:
- the fingerprint of nodes matched by this pattern.
-
isRelative
Determine if the pattern uses positional filters- Returns:
- true if there is a numeric filter in the pattern, or one that uses the position() or last() functions
- Throws:
XPathException
-