net.sf.saxon.functions

Class Idref

public class Idref extends SystemFunction

Method Summary
PathMap.PathMapNodeSetaddToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of a doc() call or similar function to a PathMap.
voidcheckArguments(ExpressionVisitor visitor)
intcomputeSpecialProperties()
Get the static properties of this expression (other than its type).
Expressioncopy()
Copy an expression.
static SequenceIteratorgetIdrefMultiple(DocumentInfo doc, SequenceIterator keys, XPathContext context)
Get the result when multiple idref values are supplied.
SequenceIteratoriterate(XPathContext context)
Enumerate the results of the expression
ExpressionpreEvaluate(ExpressionVisitor visitor)
preEvaluate: this method suppresses compile-time evaluation by doing nothing
Expressionsimplify(ExpressionVisitor visitor)
Simplify: add a second implicit argument, the context document
ExpressiontypeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression.

Method Detail

addToPathMap

public PathMap.PathMapNodeSet addToPathMap(PathMap pathMap, PathMap.PathMapNodeSet pathMapNodeSet)
Add a representation of a doc() call or similar function to a PathMap. This is a convenience method called by the addToPathMap() methods for doc(), document(), collection() and similar functions. These all create a new root expression in the path map.

Parameters: pathMap the PathMap to which the expression should be added pathMapNodeSet

Returns: the pathMapNode representing the focus established by this expression, in the case where this expression is the first operand of a path expression or filter expression

checkArguments

public void checkArguments(ExpressionVisitor visitor)

computeSpecialProperties

public int computeSpecialProperties()
Get the static properties of this expression (other than its type). The result is bit-signficant. These properties are used for optimizations. In general, if property bit is set, it is true, but if it is unset, the value is unknown.

copy

public Expression copy()
Copy an expression. This makes a deep copy.

Returns: the copy of the original expression

getIdrefMultiple

public static SequenceIterator getIdrefMultiple(DocumentInfo doc, SequenceIterator keys, XPathContext context)
Get the result when multiple idref values are supplied. Note this is also called from compiled XQuery code.

Parameters: doc the document to be searched keys the idref values supplied context the dynamic execution context

Returns: iterator over the result of the function

Throws: XPathException

iterate

public SequenceIterator iterate(XPathContext context)
Enumerate the results of the expression

preEvaluate

public Expression preEvaluate(ExpressionVisitor visitor)
preEvaluate: this method suppresses compile-time evaluation by doing nothing

Parameters: visitor an expression visitor

simplify

public Expression simplify(ExpressionVisitor visitor)
Simplify: add a second implicit argument, the context document

Parameters: visitor an expression visitor

typeCheck

public Expression typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression. This also calls preEvaluate() to evaluate the function if all the arguments are constant; functions that do not require this behavior can override the preEvaluate method.