|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.saxon.lib.ExtensionFunctionCall com.saxonica.functions.hof.DynamicFunctionCallDefinition.DynamicFunctionCall
public static class DynamicFunctionCallDefinition.DynamicFunctionCall
Constructor Summary | |
---|---|
DynamicFunctionCallDefinition.DynamicFunctionCall()
|
Method Summary | |
---|---|
SequenceIterator<? extends Item> |
call(SequenceIterator<? extends Item>[] arguments,
XPathContext context)
Evaluate this function call at run-time |
Expression |
rewrite(StaticContext context,
Expression[] arguments)
Rewrite the function call. |
Methods inherited from class net.sf.saxon.lib.ExtensionFunctionCall |
---|
copyLocalData, effectiveBooleanValue, getContainer, getDefinition, getExecutable, setDefinition, supplyStaticContext |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public DynamicFunctionCallDefinition.DynamicFunctionCall()
Method Detail |
---|
public Expression rewrite(StaticContext context, Expression[] arguments) throws XPathException
There is also an opportunity to perform static checking at this stage and to throw an error if the arguments are invalid.
rewrite
in class ExtensionFunctionCall
context
- The static context in which the function call appears. The method must not modify
the static context.arguments
- The XPath expressions supplied in the call to this function. This method is called
after type-checking, so these expressions may have been modified by adding atomization operators
or type-checking operations, for example.
Literal
representing the result of the function call if the function call
can be precomputed at compile time
XPathException
- if the implementation is able to detect a static error in the way the
function is being called (for example it might require that the types of the arguments are
consistent with each other).public SequenceIterator<? extends Item> call(SequenceIterator<? extends Item>[] arguments, XPathContext context) throws XPathException
call
in class ExtensionFunctionCall
arguments
- The values of the arguments to the function call. Each argument value (which is in general
a sequence) is supplied in the form of an iterator over the items in the sequence. Any required conversions
to the declared types of the arguments will already have been performed.
If required, the supplied sequence can be materialized by calling, for example,
new SequenceExtent(arguments[i])
.
If the argument is always a singleton, then the single item may be obtained by calling
arguments[i].next()
.
The implementation is not obliged to read all the items in each SequenceIterator
if they are not required to compute the result; but if any SequenceIterator
is not read
to completion, it is good practice to call its close()
method.
context
- The XPath dynamic evaluation context
The implementation is responsible for ensuring that the result is a valid instance of the declared
result type. Saxon will check that this is the case if the ExtensionFunctionDefinition.trustResultType()
method returns false, but it will never convert the supplied result value to the declared result type.
If the result is a single item, it can be returned in the form of a SingletonIterator
.
If the result is an empty sequence, the method should return EmptyIterator.getInstance()
XPathException
- if a dynamic error occurs during evaluation of the function. The Saxon run-time
code will add information about the error location.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |