| java.lang.Object net.sf.saxon.pattern.Pattern net.sf.saxon.pattern.LocationPathPattern
LocationPathPattern | final public class LocationPathPattern extends Pattern (Code) | | A LocationPathPattern represents a path, for example of the form A/B/C... The components are represented
as a linked list, each component pointing to its predecessor
|
firstElementPattern | protected boolean firstElementPattern(Code) | | |
lastElementPattern | protected boolean lastElementPattern(Code) | | |
numberOfFilters | protected int numberOfFilters(Code) | | |
specialFilter | protected boolean specialFilter(Code) | | |
addFilter | public void addFilter(Expression filter)(Code) | | Add a filter to the pattern (while under construction)
Parameters: filter - The predicate (a boolean expression or numeric expression) to be added |
getDependencies | public int getDependencies()(Code) | | Get the dependencies of the pattern. The only possible dependency for a pattern is
on local variables. This is analyzed in those patterns where local variables may appear.
|
getFingerprint | public int getFingerprint()(Code) | | Determine the fingerprint of nodes to which this pattern applies.
Used for optimisation.
the fingerprint of nodes matched by this pattern. |
getNodeKind | public int getNodeKind()(Code) | | Determine the types of nodes to which this pattern applies. Used for optimisation.
For patterns that match nodes of several types, return Node.NODE
the type of node matched by this pattern. e.g. Node.ELEMENT or Node.TEXT |
getNodeTest | public NodeTest getNodeTest()(Code) | | Get a NodeTest that all the nodes matching this pattern must satisfy
|
iterateSubExpressions | public Iterator iterateSubExpressions()(Code) | | Iterate over the subexpressions within this pattern
|
matches | public boolean matches(NodeInfo node, XPathContext context) throws XPathException(Code) | | Determine whether the pattern matches a given node.
Parameters: node - the node to be tested true if the pattern matches, else false |
promote | public void promote(PromotionOffer offer) throws XPathException(Code) | | Offer promotion for subexpressions within this pattern. The offer will be accepted if the subexpression
is not dependent on the factors (e.g. the context item) identified in the PromotionOffer.
By default the offer is not accepted - this is appropriate in the case of simple expressions
such as constant values and variable references where promotion would give no performance
advantage. This method is always called at compile time.
Unlike the corresponding method on
net.sf.saxon.expr.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 moveexpressions that don't depend on the context to an outer level inthe containing expression throws: net.sf.saxon.trans.XPathException - if any error is detected |
resolveCurrent | public void resolveCurrent(LetExpression let, PromotionOffer offer) throws XPathException(Code) | | 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
Parameters: let - the expression that assigns the local variable. This returns a dummy result, and is executedjust before evaluating the pattern, to get the value of the context item into the variable. Parameters: offer - A PromotionOffer used to process the expressions and change the call on current() intoa variable reference throws: XPathException - |
|
|