net.sf.saxon.functions
Class KeyFn
java.lang.Object
net.sf.saxon.expr.ComputedExpression
net.sf.saxon.expr.FunctionCall
net.sf.saxon.functions.SystemFunction
net.sf.saxon.functions.KeyFn
- All Implemented Interfaces:
- java.io.Serializable, javax.xml.transform.SourceLocator, Container, Expression, XSLTFunction, InstructionInfoProvider
public class KeyFn
- extends SystemFunction
- implements XSLTFunction
- See Also:
- Serialized Form
Constructor Summary |
KeyFn()
|
Methods inherited from class net.sf.saxon.functions.SystemFunction |
addContextDocumentArgument, computeCardinality, display, getDetails, getErrorCodeForTypeErrors, getItemType, getRequiredType, main, makeSystemFunction, setDetails, useContextItemAsDefault |
Methods inherited from class net.sf.saxon.expr.FunctionCall |
checkArgumentCount, getArguments, getDisplayName, getFunctionNameCode, getNumberOfArguments, iterateSubExpressions, optimize, promote, replaceSubExpression, setArguments, setFunctionNameCode, simplifyArguments |
Methods inherited from class net.sf.saxon.expr.ComputedExpression |
adoptChildExpression, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getColumnNumber, getConstructType, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getLineNumber, getLocationId, getLocationProvider, getParentExpression, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasBadParentPointer, markTailFunctionCalls, process, resetStaticProperties, setLocationId, setParentExpression, setParentExpression, suppressValidation, typeError |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
KeyFn
public KeyFn()
typeCheck
public Expression typeCheck(StaticContext env,
ItemType contextItemType)
throws XPathException
- 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.
- Specified by:
typeCheck
in interface Expression
- Overrides:
typeCheck
in class FunctionCall
- Parameters:
env
- the static context of the expressioncontextItemType
- the static type of "." at the point where this expression is invoked.
The parameter is set to null if it is known statically that the context item will be undefined.
If the type of the context item is not known statically, the argument is set to
Type.ITEM_TYPE
- Returns:
- the original expression, rewritten to perform necessary run-time type checks,
and to perform other type-related optimizations
- Throws:
StaticError
- if an error is discovered during this phase
(typically a type error)
XPathException
internalKeyCall
public static KeyFn internalKeyCall(NamePool pool,
int fingerprint,
java.lang.String name,
Expression value,
Expression doc)
- Non-standard constructor to create an internal call on key() with a known key fingerprint
simplify
public Expression simplify(StaticContext env)
throws XPathException
- Simplify: add a third implicit argument, the context document
- Specified by:
simplify
in interface Expression
- Overrides:
simplify
in class FunctionCall
- Parameters:
env
- the static context
- Returns:
- the simplified expression
- Throws:
XPathException
- if an error is discovered during expression
rewriting
checkArguments
public void checkArguments(StaticContext env)
throws XPathException
- Description copied from class:
SystemFunction
- Method called during static type checking
- Overrides:
checkArguments
in class SystemFunction
- Throws:
XPathException
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
a property bit is set, it is true, but if it is unset, the value is unknown.
- Overrides:
computeSpecialProperties
in class SystemFunction
preEvaluate
public Expression preEvaluate(StaticContext env)
- preEvaluate: this method suppresses compile-time evaluation by doing nothing
- Overrides:
preEvaluate
in class FunctionCall
iterate
public SequenceIterator iterate(XPathContext context)
throws XPathException
- Enumerate the results of the expression
- Specified by:
iterate
in interface Expression
- Overrides:
iterate
in class ComputedExpression
- Parameters:
context
- supplies the context for evaluation
- Returns:
- a SequenceIterator that can be used to iterate over the result
of the expression
- Throws:
XPathException
- if any dynamic error occurs evaluating the
expression