net.sf.saxon.pattern
public final class LocationPathPattern extends Pattern
Field Summary | |
---|---|
Pattern | ancestorPattern |
protected Expression | equivalentExpr |
protected Expression[] | filters |
protected boolean | firstElementPattern |
protected boolean | lastElementPattern |
NodeTest | nodeTest |
protected int | numberOfFilters |
Pattern | parentPattern |
protected boolean | specialFilter |
Constructor Summary | |
---|---|
LocationPathPattern()
Create a LocationPathPattern |
Method Summary | |
---|---|
void | addFilter(Expression filter)
Add a filter to the pattern (while under construction)
|
int | allocateSlots(StaticContext env, SlotManager slotManager, int nextFree)
Allocate slots to any variables used within the pattern |
Pattern | analyze(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the pattern, performing any type-dependent optimizations. |
boolean | equals(Object other)
Determine whether this pattern is the same as another pattern |
Pattern | getAncestorPattern()
Get the pattern applying to an ancestor node, if there is one |
int | getDependencies()
Get the dependencies of the pattern. |
Expression[] | getFilters()
Get the filters assocated with the last step in the pattern |
int | getFingerprint()
Determine the fingerprint of nodes to which this pattern applies.
|
int | getNodeKind()
Determine the types of nodes to which this pattern applies. |
NodeTest | getNodeTest()
Get a NodeTest that all the nodes matching this pattern must satisfy |
Pattern | getParentPattern()
Get the pattern applying to the parent node, if there is one |
int | hashCode()
Hashcode supporting equals() |
protected boolean | internalMatches(NodeInfo node, XPathContext context)
Test whether the pattern matches, but without changing the current() node |
Iterator | iterateSubExpressions()
Iterate over the subexpressions within this pattern |
boolean | matches(NodeInfo node, XPathContext context)
Determine whether the pattern matches a given node.
|
void | promote(PromotionOffer offer, Expression parent)
Offer promotion for subexpressions within this pattern. |
boolean | replaceSubExpression(Expression original, Expression replacement)
Replace one subexpression by a replacement subexpression
|
void | resolveCurrent(LetExpression let, PromotionOffer offer, boolean topLevel)
If the pattern contains any calls on current(), this method is called to modify such calls
to become variable references to a variable declared in a specially-allocated local variable
|
void | setExecutable(Executable executable)
Set the executable containing this pattern
|
void | setLineNumber(int lineNumber) |
void | setSystemId(String systemId) |
Pattern | simplify(ExpressionVisitor visitor)
Simplify the pattern: perform any context-independent optimisations |
Parameters: filter The predicate (a boolean expression or numeric expression) to be added
Parameters: env the static context in the XSLT stylesheet slotManager nextFree the next slot that is free to be allocated @return the next slot that is free to be allocated
Parameters: visitor an expression visitor contextItemType the type of the context item at the point where the pattern appears
Returns: the optimised Pattern
Parameters: other the other object
Returns: the ancestor pattern, for example if the pattern is a/b[1]//c then the ancestor pattern is a/b[1]
Returns: an array of expression holding the filter predicates in order
Returns: the fingerprint of nodes matched by this pattern.
Returns: the type of node matched by this pattern. e.g. Node.ELEMENT or Node.TEXT
Returns: the parent pattern, for example if the pattern is a/b[1]/c then the parent pattern is a/b[1]
Parameters: node the node to be tested
Returns: true if the pattern matches, else false
Unlike the corresponding method on Expression, this method does not return anything: it can make internal changes to the pattern, but cannot return a different pattern. Only certain kinds of promotion are applicable within a pattern: specifically, promotions affecting local variable references within the pattern.
Parameters: offer details of the offer, for example the offer to move expressions that don't depend on the context to an outer level in the containing expression parent
Throws: net.sf.saxon.trans.XPathException if any error is detected
Parameters: original the original subexpression replacement the replacement subexpression
Returns: true if the original subexpression is found
Parameters: let the expression that assigns the local variable. This returns a dummy result, and is executed just before evaluating the pattern, to get the value of the context item into the variable. offer A PromotionOffer used to process the expressions and change the call on current() into a variable reference topLevel
Throws: XPathException
Parameters: executable the executable
Parameters: visitor an expression visitor