net.sf.saxon.pattern
public final class KeyPattern extends Pattern
Constructor Summary | |
---|---|
KeyPattern(int namecode, Expression key)
Constructor |
Method Summary | |
---|---|
Pattern | analyze(StaticContext env, ItemType contextItemType)
Type-check the pattern. |
int | getDependencies()
Get the dependencies of the pattern. |
NodeTest | getNodeTest()
Get a NodeTest that all the nodes matching this pattern must satisfy |
Iterator | iterateSubExpressions()
Iterate over the subexpressions within this pattern |
boolean | matches(NodeInfo e, XPathContext context)
Determine whether this Pattern matches the given Node. |
void | promote(PromotionOffer offer)
Offer promotion for subexpressions within this pattern. |
Parameters: namecode the name of the key key the value of the key: either a StringValue or a VariableReference
Returns: the optimised Pattern
Parameters: e The NodeInfo representing the Element or other node to be tested against the Pattern
Returns: true if the node matches the Pattern, false otherwise
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
Throws: net.sf.saxon.trans.XPathException if any error is detected