Saxon.Api
Class ExtensionFunctionCall
-
public abstract class ExtensionFunctionCall
An instance of this class will be created by the compiler for each function call to
this extension function
that is found in the source code. The class is always instantiated by calling the
method MakeFunctionCall()
of the corresponding ExtensionFunctionDefinition
.
The implementation may therefore retain information about the static context of the
call. Once compiled, however, the instance object must be immutable.
Method Summary |
|
---|---|
IEnumerator<XdmItem> | Call(IEnumerator<XdmItem> arguments, DynamicContext context) Method called at run time to evaluate the function. |
void | CopyLocalData(ExtensionFunctionCall destination)
A subclass must implement this method if it retains any local data at the instance
level. On some occasions
(for example, when XSLT or XQuery code is inlined), Saxon will make a copy of an |
void | SupplyStaticContext(StaticContext context) Method called by the compiler (at compile time) to provide information about the static context of the function call. The implementation may retain this information for use at run-time, if the result of the function depends on information in the static context. |
Method Detail
Call
DynamicContext context)
CopyLocalData
A subclass must implement this method if it retains any local data at the instance
level. On some occasions
(for example, when XSLT or XQuery code is inlined), Saxon will make a copy of an ExtensionFunction
object.
It will then call this method on the old object, supplying the new object as the value
of the argument, and the
method must copy all local data items from the old object to the new.
Parameters:
destination
- The new extension function object. This will always be an instance of the same
class as the existing object.SupplyStaticContext
Method called by the compiler (at compile time) to provide information about the static context of the function call. The implementation may retain this information for use at run-time, if the result of the function depends on information in the static context.
For efficiency, the implementation should only retain copies of the information that it actually needs. It is not a good idea to hold a reference to the static context itself, since that can result in a great deal of compile-time information being locked into memory during run-time execution.
Parameters:
context
- Information about the static context in which the function is called
Method called at run time to evaluate the function.
Parameters:
arguments
- The values of the arguments to the function, supplied as iterators over XPath sequence values.context
- The dynamic context for evaluation of the function. This provides access to the context item, position, and size, and if required to internal data maintained by the Saxon engine.Returns:
last()
is used) Saxon may clone the returned iterator by calling itsGetAnother()
method, allowing the function results to be read more than once.