net.sf.saxon.pattern
Class IDPattern
- Container, PatternFinder, Serializable, SourceLocator
public final class IDPattern
An IDPattern is a pattern of the form id("literal") or id($variable)
allocateSlots , analyze , getColumnNumber , getDefaultPriority , getDependencies , getExecutable , getFingerprint , getHostLanguage , getLineNumber , getLocationProvider , getNodeKind , getNodeTest , getPublicId , getSystemId , internalMatches , iterateSubExpressions , make , makeSearchExpression , matches , promote , replaceSubExpression , selectNodes , setExecutable , setLineNumber , setOriginalText , setSystemId , simplify , toString |
IDPattern
public IDPattern(Expression id)
Create an id pattern.
id
- Either a StringValue or a VariableReference
getDependencies
public int getDependencies()
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.
- getDependencies in interface Pattern
getNodeKind
public int getNodeKind()
Determine the type of nodes to which this pattern applies.
- getNodeKind in interface Pattern
getNodeTest
public NodeTest getNodeTest()
Get a NodeTest that all the nodes matching this pattern must satisfy
- getNodeTest in interface Pattern
iterateSubExpressions
public Iterator iterateSubExpressions()
Iterate over the subexpressions within this pattern
- iterateSubExpressions in interface Pattern
matches
public boolean matches(NodeInfo e,
XPathContext context)
throws XPathException
Determine whether this Pattern matches the given Node
- matches in interface Pattern
e
- The NodeInfo representing the Element or other node to be tested against the Pattern
- true if the node matches the Pattern, false otherwise
promote
public void promote(PromotionOffer offer)
throws XPathException
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
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.
- promote in interface Pattern
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