public class CallableDelegate extends java.lang.Object implements Callable
Callable
that allows the logic to be supplied as a lambda expression.
On Java, it's possible to assign a lambda expression directly to a Callable. But on C#, a Callable isn't a delegate, so lambda expressions can't be used directly; instead, this class is provided as a proxy.
Modifier and Type | Class and Description |
---|---|
static interface |
CallableDelegate.Lambda |
Constructor and Description |
---|
CallableDelegate(CallableDelegate.Lambda expression)
Construct a
Callable by supplying an implementation in the form of a lambda expression |
Modifier and Type | Method and Description |
---|---|
Sequence |
call(XPathContext context,
Sequence[] arguments)
Call the Callable.
|
public CallableDelegate(CallableDelegate.Lambda expression)
Callable
by supplying an implementation in the form of a lambda expressionexpression
- a lambda expression (typically) that is invoked to evaluate the Callable
public Sequence call(XPathContext context, Sequence[] arguments) throws XPathException
Callable
call
in interface Callable
context
- the dynamic evaluation contextarguments
- the values of the arguments, supplied as Sequences.
Generally it is advisable, if calling iterate() to process a supplied sequence, to
call it only once; if the value is required more than once, it should first be converted
to a GroundedValue
by calling the utility method
SequenceTool.toGroundedValue().
If the expected value is a single item, the item should be obtained by calling
Sequence.head(): it cannot be assumed that the item will be passed as an instance of
Item
or AtomicValue
.
It is the caller's responsibility to perform any type conversions required to convert arguments to the type expected by the callee. An exception is where this Callable is explicitly an argument-converting wrapper around the original Callable.
XPathException
- if a dynamic error occurs during the evaluation of the expressionCopyright (c) 2004-2022 Saxonica Limited. All rights reserved.