Package com.tangosol.util.function
Class Remote
- java.lang.Object
-
- com.tangosol.util.function.Remote
-
public class Remote extends Object
Helper interfaces and methods that enable capture of standard JDK functional interfaces as serializable lambdas.- Since:
- 12.2.1
- Author:
- as 2014.07.16
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
Remote.BiConsumer<T,U>
Represents an operation that accepts two input arguments and returns no result.static interface
Remote.BiFunction<T,U,R>
Represents a function that accepts two arguments and produces a result.static interface
Remote.BinaryOperator<T>
Represents an operation upon two operands of the same type, producing a result of the same type as the operands.static interface
Remote.BiPredicate<T,U>
Represents a predicate (boolean-valued function) of two arguments.static interface
Remote.BooleanSupplier
Represents a supplier ofboolean
-valued results.static interface
Remote.Callable<V>
A task that returns a result and may throw an exception.static interface
Remote.Comparator<T>
A comparison function, which imposes a total ordering on some collection of objects.static interface
Remote.Consumer<T>
Represents an operation that accepts a single input argument and returns no result.static interface
Remote.DoubleBinaryOperator
Represents an operation upon twodouble
-valued operands and producing adouble
-valued result.static interface
Remote.DoubleConsumer
Represents an operation that accepts a singledouble
-valued argument and returns no result.static interface
Remote.DoubleFunction<R>
Represents a function that accepts a double-valued argument and produces a result.static interface
Remote.DoublePredicate
Represents a predicate (boolean-valued function) of onedouble
-valued argument.static interface
Remote.DoubleSupplier
Represents a supplier ofdouble
-valued results.static interface
Remote.DoubleToIntFunction
Represents a function that accepts a double-valued argument and produces an int-valued result.static interface
Remote.DoubleToLongFunction
Represents a function that accepts a double-valued argument and produces a long-valued result.static interface
Remote.DoubleUnaryOperator
Represents an operation on a singledouble
-valued operand that produces adouble
-valued result.static interface
Remote.Function<T,R>
Represents a function that accepts one argument and produces a result.static interface
Remote.IntBinaryOperator
Represents an operation upon twoint
-valued operands and producing anint
-valued result.static interface
Remote.IntConsumer
Represents an operation that accepts a singleint
-valued argument and returns no result.static interface
Remote.IntFunction<R>
Represents a function that accepts an int-valued argument and produces a result.static interface
Remote.IntPredicate
Represents a predicate (boolean-valued function) of oneint
-valued argument.static interface
Remote.IntSupplier
Represents a supplier ofint
-valued results.static interface
Remote.IntToDoubleFunction
Represents a function that accepts an int-valued argument and produces a double-valued result.static interface
Remote.IntToLongFunction
Represents a function that accepts an int-valued argument and produces a long-valued result.static interface
Remote.IntUnaryOperator
Represents an operation on a singleint
-valued operand that produces anint
-valued result.static interface
Remote.LongBinaryOperator
Represents an operation upon twolong
-valued operands and producing along
-valued result.static interface
Remote.LongConsumer
Represents an operation that accepts a singlelong
-valued argument and returns no result.static interface
Remote.LongFunction<R>
Represents a function that accepts a long-valued argument and produces a result.static interface
Remote.LongPredicate
Represents a predicate (boolean-valued function) of onelong
-valued argument.static interface
Remote.LongSupplier
Represents a supplier oflong
-valued results.static interface
Remote.LongToDoubleFunction
Represents a function that accepts a long-valued argument and produces a double-valued result.static interface
Remote.LongToIntFunction
Represents a function that accepts a long-valued argument and produces an int-valued result.static interface
Remote.LongUnaryOperator
Represents an operation on a singlelong
-valued operand that produces along
-valued result.static interface
Remote.ObjDoubleConsumer<T>
Represents an operation that accepts an object-valued and adouble
-valued argument, and returns no result.static interface
Remote.ObjIntConsumer<T>
Represents an operation that accepts an object-valued and aint
-valued argument, and returns no result.static interface
Remote.ObjLongConsumer<T>
Represents an operation that accepts an object-valued and along
-valued argument, and returns no result.static interface
Remote.Predicate<T>
Represents a predicate (boolean-valued function) of one argument.static interface
Remote.Runnable
TheRunnable
interface should be implemented by any class whose instances are intended to be executed by a thread.static interface
Remote.Supplier<T>
Represents a supplier of results.static interface
Remote.ToBigDecimalFunction<T>
Represents a function that produces a BigDecimal-valued result.static interface
Remote.ToComparableFunction<T,R extends Comparable<? super R>>
Represents a function that produces a Comparable-valued result.static interface
Remote.ToDoubleBiFunction<T,U>
Represents a function that accepts two arguments and produces a double-valued result.static interface
Remote.ToDoubleFunction<T>
Represents a function that produces a double-valued result.static interface
Remote.ToIntBiFunction<T,U>
Represents a function that accepts two arguments and produces an int-valued result.static interface
Remote.ToIntFunction<T>
Represents a function that produces an int-valued result.static interface
Remote.ToLongBiFunction<T,U>
Represents a function that accepts two arguments and produces a long-valued result.static interface
Remote.ToLongFunction<T>
Represents a function that produces a long-valued result.static interface
Remote.UnaryOperator<T>
Represents an operation on a single operand that produces a result of the same type as its operand.
-
Constructor Summary
Constructors Constructor Description Remote()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T,U>
Remote.BiConsumer<T,U>biConsumer(Remote.BiConsumer<T,U> biConsumer)
Capture serializable BiConsumer.static <T,U,R>
Remote.BiFunction<T,U,R>biFunction(Remote.BiFunction<T,U,R> biFunction)
Capture serializable BiFunction.static <T> Remote.BinaryOperator<T>
binaryOperator(Remote.BinaryOperator<T> operator)
Capture serializable BinaryOperator.static <T,U>
Remote.BiPredicate<T,U>biPredicate(Remote.BiPredicate<T,U> biPredicate)
Capture serializable BiPredicate.static Remote.BooleanSupplier
booleanSupplier(Remote.BooleanSupplier supplier)
Capture serializable BooleanSupplier.static <V> Remote.Callable<V>
callable(Remote.Callable<V> callable)
Capture serializable Callable.static <T> Remote.Comparator<T>
comparator(Remote.Comparator<T> comparator)
Capture serializable Comparator.static <T,E extends Comparable<? super E>>
Remote.Comparator<T>comparator(ValueExtractor<? super T,? extends E> extractor)
CreateRemote.Comparator
for the specified extractor that returns aComparable
value.static <T> Remote.Consumer<T>
consumer(Remote.Consumer<T> consumer)
Capture serializable Consumer.static Remote.DoubleBinaryOperator
doubleBinaryOperator(Remote.DoubleBinaryOperator operator)
Capture serializable DoubleBinaryOperator.static Remote.DoubleConsumer
doubleConsumer(Remote.DoubleConsumer consumer)
Capture serializable DoubleConsumer.static <R> Remote.DoubleFunction<R>
doubleFunction(Remote.DoubleFunction<R> function)
Capture serializable DoubleFunction.static Remote.DoublePredicate
doublePredicate(Remote.DoublePredicate predicate)
Capture serializable DoublePredicate.static Remote.DoubleSupplier
doubleSupplier(Remote.DoubleSupplier supplier)
Capture serializable DoubleSupplier.static Remote.DoubleToIntFunction
doubleToIntFunction(Remote.DoubleToIntFunction function)
Capture serializable DoubleToIntFunction.static Remote.DoubleToLongFunction
doubleToLongFunction(Remote.DoubleToLongFunction function)
Capture serializable DoubleToLongFunction.static Remote.DoubleUnaryOperator
doubleUnaryOperator(Remote.DoubleUnaryOperator operator)
Capture serializable DoubleUnaryOperator.static <T,R>
Remote.Function<T,R>function(Remote.Function<T,R> function)
Capture serializable Function.static Remote.IntBinaryOperator
intBinaryOperator(Remote.IntBinaryOperator operator)
Capture serializable IntBinaryOperator.static Remote.IntConsumer
intConsumer(Remote.IntConsumer consumer)
Capture serializable IntConsumer.static <R> Remote.IntFunction<R>
intFunction(Remote.IntFunction<R> function)
Capture serializable IntFunction.static Remote.IntPredicate
intPredicate(Remote.IntPredicate predicate)
Capture serializable IntPredicate.static Remote.IntSupplier
intSupplier(Remote.IntSupplier supplier)
Capture serializable IntSupplier.static Remote.IntToDoubleFunction
intToDoubleFunction(Remote.IntToDoubleFunction function)
Capture serializable IntToDoubleFunction.static Remote.IntToLongFunction
intToLongFunction(Remote.IntToLongFunction function)
Capture serializable IntToLongFunction.static Remote.IntUnaryOperator
intUnaryOperator(Remote.IntUnaryOperator operator)
Capture serializable IntUnaryOperator.static Remote.LongBinaryOperator
longBinaryOperator(Remote.LongBinaryOperator operator)
Capture serializable LongBinaryOperator.static Remote.LongConsumer
longConsumer(Remote.LongConsumer consumer)
Capture serializable LongConsumer.static <R> Remote.LongFunction<R>
longFunction(Remote.LongFunction<R> function)
Capture serializable LongFunction.static Remote.LongPredicate
longPredicate(Remote.LongPredicate predicate)
Capture serializable LongPredicate.static Remote.LongSupplier
longSupplier(Remote.LongSupplier supplier)
Capture serializable LongSupplier.static Remote.LongToDoubleFunction
longToDoubleFunction(Remote.LongToDoubleFunction function)
Capture serializable LongToDoubleFunction.static Remote.LongToIntFunction
longToIntFunction(Remote.LongToIntFunction function)
Capture serializable LongToIntFunction.static Remote.LongUnaryOperator
longUnaryOperator(Remote.LongUnaryOperator operator)
Capture serializable LongUnaryOperator.static <T> Remote.ObjDoubleConsumer<T>
objDoubleConsumer(Remote.ObjDoubleConsumer<T> consumer)
Capture serializable ObjDoubleConsumer.static <T> Remote.ObjIntConsumer<T>
objIntConsumer(Remote.ObjIntConsumer<T> consumer)
Capture serializable ObjIntConsumer.static <T> Remote.ObjLongConsumer<T>
objLongConsumer(Remote.ObjLongConsumer<T> consumer)
Capture serializable ObjLongConsumer.static <T> Remote.Predicate<T>
predicate(Remote.Predicate<T> predicate)
Capture serializable Predicate.static Remote.Runnable
runnable(Remote.Runnable runnable)
Capture serializable Runnable.static <T> Remote.Supplier<T>
supplier(Remote.Supplier<T> supplier)
Capture serializable Supplier.static <T,U>
Remote.ToDoubleBiFunction<T,U>toDoubleBiFunction(Remote.ToDoubleBiFunction<T,U> biFunction)
Capture serializable ToDoubleBiFunction.static <T> Remote.ToDoubleFunction<T>
toDoubleFunction(Remote.ToDoubleFunction<T> function)
Capture serializable ToDoubleFunction.static <T,U>
Remote.ToIntBiFunction<T,U>toIntBiFunction(Remote.ToIntBiFunction<T,U> biFunction)
Capture serializable ToIntBiFunction.static <T> Remote.ToIntFunction<T>
toIntFunction(Remote.ToIntFunction<T> function)
Capture serializable ToIntFunction.static <T,U>
Remote.ToLongBiFunction<T,U>toLongBiFunction(Remote.ToLongBiFunction<T,U> biFunction)
Capture serializable ToLongBiFunction.static <T> Remote.ToLongFunction<T>
toLongFunction(Remote.ToLongFunction<T> function)
Capture serializable ToLongFunction.static <T> Remote.UnaryOperator<T>
unaryOperator(Remote.UnaryOperator<T> operator)
Capture serializable UnaryOperator.
-
-
-
Method Detail
-
consumer
public static <T> Remote.Consumer<T> consumer(Remote.Consumer<T> consumer)
Capture serializable Consumer.- Type Parameters:
T
- the type of the input to the operation- Parameters:
consumer
- lambda to capture- Returns:
- serializable Consumer
-
biConsumer
public static <T,U> Remote.BiConsumer<T,U> biConsumer(Remote.BiConsumer<T,U> biConsumer)
Capture serializable BiConsumer.- Type Parameters:
T
- the type of the input to the operationU
- the type of the second argument to the operation- Parameters:
biConsumer
- lambda to capture- Returns:
- serializable BiConsumer
-
doubleConsumer
public static Remote.DoubleConsumer doubleConsumer(Remote.DoubleConsumer consumer)
Capture serializable DoubleConsumer.- Parameters:
consumer
- lambda to capture- Returns:
- serializable DoubleConsumer
-
intConsumer
public static Remote.IntConsumer intConsumer(Remote.IntConsumer consumer)
Capture serializable IntConsumer.- Parameters:
consumer
- lambda to capture- Returns:
- serializable IntConsumer
-
longConsumer
public static Remote.LongConsumer longConsumer(Remote.LongConsumer consumer)
Capture serializable LongConsumer.- Parameters:
consumer
- lambda to capture- Returns:
- serializable LongConsumer
-
objDoubleConsumer
public static <T> Remote.ObjDoubleConsumer<T> objDoubleConsumer(Remote.ObjDoubleConsumer<T> consumer)
Capture serializable ObjDoubleConsumer.- Type Parameters:
T
- the type of the object argument to the operation- Parameters:
consumer
- lambda to capture- Returns:
- serializable ObjDoubleConsumer
-
objIntConsumer
public static <T> Remote.ObjIntConsumer<T> objIntConsumer(Remote.ObjIntConsumer<T> consumer)
Capture serializable ObjIntConsumer.- Type Parameters:
T
- the type of the object argument to the operation- Parameters:
consumer
- lambda to capture- Returns:
- serializable ObjIntConsumer
-
objLongConsumer
public static <T> Remote.ObjLongConsumer<T> objLongConsumer(Remote.ObjLongConsumer<T> consumer)
Capture serializable ObjLongConsumer.- Type Parameters:
T
- the type of the object argument to the operation- Parameters:
consumer
- lambda to capture- Returns:
- serializable ObjLongConsumer
-
function
public static <T,R> Remote.Function<T,R> function(Remote.Function<T,R> function)
Capture serializable Function.- Type Parameters:
T
- the type of the input to the functionR
- the type of the result of the function- Parameters:
function
- lambda to capture- Returns:
- serializable Function
-
biFunction
public static <T,U,R> Remote.BiFunction<T,U,R> biFunction(Remote.BiFunction<T,U,R> biFunction)
Capture serializable BiFunction.- Type Parameters:
T
- the type of the first argument to the functionU
- the type of the second argument to the functionR
- the type of the result of the function- Parameters:
biFunction
- lambda to capture- Returns:
- serializable BiFunction
-
doubleFunction
public static <R> Remote.DoubleFunction<R> doubleFunction(Remote.DoubleFunction<R> function)
Capture serializable DoubleFunction.- Type Parameters:
R
- the type of the result of the function- Parameters:
function
- lambda to capture- Returns:
- serializable DoubleFunction
-
doubleToIntFunction
public static Remote.DoubleToIntFunction doubleToIntFunction(Remote.DoubleToIntFunction function)
Capture serializable DoubleToIntFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable DoubleToIntFunction
-
doubleToLongFunction
public static Remote.DoubleToLongFunction doubleToLongFunction(Remote.DoubleToLongFunction function)
Capture serializable DoubleToLongFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable DoubleToLongFunction
-
intFunction
public static <R> Remote.IntFunction<R> intFunction(Remote.IntFunction<R> function)
Capture serializable IntFunction.- Type Parameters:
R
- the type of the result of the function- Parameters:
function
- lambda to capture- Returns:
- serializable IntFunction
-
intToDoubleFunction
public static Remote.IntToDoubleFunction intToDoubleFunction(Remote.IntToDoubleFunction function)
Capture serializable IntToDoubleFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable IntToDoubleFunction
-
intToLongFunction
public static Remote.IntToLongFunction intToLongFunction(Remote.IntToLongFunction function)
Capture serializable IntToLongFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable IntToLongFunction
-
longFunction
public static <R> Remote.LongFunction<R> longFunction(Remote.LongFunction<R> function)
Capture serializable LongFunction.- Type Parameters:
R
- the type of the result of the function- Parameters:
function
- lambda to capture- Returns:
- serializable LongFunction
-
longToDoubleFunction
public static Remote.LongToDoubleFunction longToDoubleFunction(Remote.LongToDoubleFunction function)
Capture serializable LongToDoubleFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable LongToDoubleFunction
-
longToIntFunction
public static Remote.LongToIntFunction longToIntFunction(Remote.LongToIntFunction function)
Capture serializable LongToIntFunction.- Parameters:
function
- lambda to capture- Returns:
- serializable LongToIntFunction
-
toDoubleFunction
public static <T> Remote.ToDoubleFunction<T> toDoubleFunction(Remote.ToDoubleFunction<T> function)
Capture serializable ToDoubleFunction.- Type Parameters:
T
- the type of the input to the function- Parameters:
function
- lambda to capture- Returns:
- serializable ToDoubleFunction
-
toIntFunction
public static <T> Remote.ToIntFunction<T> toIntFunction(Remote.ToIntFunction<T> function)
Capture serializable ToIntFunction.- Type Parameters:
T
- the type of the input to the function- Parameters:
function
- lambda to capture- Returns:
- serializable ToIntFunction
-
toLongFunction
public static <T> Remote.ToLongFunction<T> toLongFunction(Remote.ToLongFunction<T> function)
Capture serializable ToLongFunction.- Type Parameters:
T
- the type of the input to the function- Parameters:
function
- lambda to capture- Returns:
- serializable ToLongFunction
-
toDoubleBiFunction
public static <T,U> Remote.ToDoubleBiFunction<T,U> toDoubleBiFunction(Remote.ToDoubleBiFunction<T,U> biFunction)
Capture serializable ToDoubleBiFunction.- Type Parameters:
T
- the type of the first argument to the functionU
- the type of the second argument to the function- Parameters:
biFunction
- lambda to capture- Returns:
- serializable ToDoubleBiFunction
-
toIntBiFunction
public static <T,U> Remote.ToIntBiFunction<T,U> toIntBiFunction(Remote.ToIntBiFunction<T,U> biFunction)
Capture serializable ToIntBiFunction.- Type Parameters:
T
- the type of the first argument to the functionU
- the type of the second argument to the function- Parameters:
biFunction
- lambda to capture- Returns:
- serializable ToIntBiFunction
-
toLongBiFunction
public static <T,U> Remote.ToLongBiFunction<T,U> toLongBiFunction(Remote.ToLongBiFunction<T,U> biFunction)
Capture serializable ToLongBiFunction.- Type Parameters:
T
- the type of the first argument to the functionU
- the type of the second argument to the function- Parameters:
biFunction
- lambda to capture- Returns:
- serializable ToLongBiFunction
-
predicate
public static <T> Remote.Predicate<T> predicate(Remote.Predicate<T> predicate)
Capture serializable Predicate.- Type Parameters:
T
- the type of the input to the predicate- Parameters:
predicate
- lambda to capture- Returns:
- serializable Predicate
-
biPredicate
public static <T,U> Remote.BiPredicate<T,U> biPredicate(Remote.BiPredicate<T,U> biPredicate)
Capture serializable BiPredicate.- Type Parameters:
T
- the type of the first argument to the predicateU
- the type of the second argument the predicate- Parameters:
biPredicate
- lambda to capture- Returns:
- serializable BiPredicate
-
doublePredicate
public static Remote.DoublePredicate doublePredicate(Remote.DoublePredicate predicate)
Capture serializable DoublePredicate.- Parameters:
predicate
- lambda to capture- Returns:
- serializable DoublePredicate
-
intPredicate
public static Remote.IntPredicate intPredicate(Remote.IntPredicate predicate)
Capture serializable IntPredicate.- Parameters:
predicate
- lambda to capture- Returns:
- serializable IntPredicate
-
longPredicate
public static Remote.LongPredicate longPredicate(Remote.LongPredicate predicate)
Capture serializable LongPredicate.- Parameters:
predicate
- lambda to capture- Returns:
- serializable LongPredicate
-
supplier
public static <T> Remote.Supplier<T> supplier(Remote.Supplier<T> supplier)
Capture serializable Supplier.- Type Parameters:
T
- the type of results supplied by this supplier- Parameters:
supplier
- lambda to capture- Returns:
- serializable Supplier
-
booleanSupplier
public static Remote.BooleanSupplier booleanSupplier(Remote.BooleanSupplier supplier)
Capture serializable BooleanSupplier.- Parameters:
supplier
- lambda to capture- Returns:
- serializable BooleanSupplier
-
doubleSupplier
public static Remote.DoubleSupplier doubleSupplier(Remote.DoubleSupplier supplier)
Capture serializable DoubleSupplier.- Parameters:
supplier
- lambda to capture- Returns:
- serializable DoubleSupplier
-
intSupplier
public static Remote.IntSupplier intSupplier(Remote.IntSupplier supplier)
Capture serializable IntSupplier.- Parameters:
supplier
- lambda to capture- Returns:
- serializable IntSupplier
-
longSupplier
public static Remote.LongSupplier longSupplier(Remote.LongSupplier supplier)
Capture serializable LongSupplier.- Parameters:
supplier
- lambda to capture- Returns:
- serializable LongSupplier
-
binaryOperator
public static <T> Remote.BinaryOperator<T> binaryOperator(Remote.BinaryOperator<T> operator)
Capture serializable BinaryOperator.- Type Parameters:
T
- the type of the operands and result of the operator- Parameters:
operator
- lambda to capture- Returns:
- serializable BinaryOperator
-
doubleBinaryOperator
public static Remote.DoubleBinaryOperator doubleBinaryOperator(Remote.DoubleBinaryOperator operator)
Capture serializable DoubleBinaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable DoubleBinaryOperator
-
intBinaryOperator
public static Remote.IntBinaryOperator intBinaryOperator(Remote.IntBinaryOperator operator)
Capture serializable IntBinaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable IntBinaryOperator
-
longBinaryOperator
public static Remote.LongBinaryOperator longBinaryOperator(Remote.LongBinaryOperator operator)
Capture serializable LongBinaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable LongBinaryOperator
-
unaryOperator
public static <T> Remote.UnaryOperator<T> unaryOperator(Remote.UnaryOperator<T> operator)
Capture serializable UnaryOperator.- Type Parameters:
T
- the type of the operand and result of the operator- Parameters:
operator
- lambda to capture- Returns:
- serializable UnaryOperator
-
doubleUnaryOperator
public static Remote.DoubleUnaryOperator doubleUnaryOperator(Remote.DoubleUnaryOperator operator)
Capture serializable DoubleUnaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable DoubleUnaryOperator
-
intUnaryOperator
public static Remote.IntUnaryOperator intUnaryOperator(Remote.IntUnaryOperator operator)
Capture serializable IntUnaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable IntUnaryOperator
-
longUnaryOperator
public static Remote.LongUnaryOperator longUnaryOperator(Remote.LongUnaryOperator operator)
Capture serializable LongUnaryOperator.- Parameters:
operator
- lambda to capture- Returns:
- serializable LongUnaryOperator
-
comparator
public static <T> Remote.Comparator<T> comparator(Remote.Comparator<T> comparator)
Capture serializable Comparator.- Parameters:
comparator
- lambda to capture- Returns:
- serializable Comparator
-
comparator
public static <T,E extends Comparable<? super E>> Remote.Comparator<T> comparator(ValueExtractor<? super T,? extends E> extractor)
CreateRemote.Comparator
for the specified extractor that returns aComparable
value.- Parameters:
extractor
- aValueExtractor
that returns aComparable
value- Returns:
- a Comparator instance
-
runnable
public static Remote.Runnable runnable(Remote.Runnable runnable)
Capture serializable Runnable.- Parameters:
runnable
- lambda to capture- Returns:
- serializable Runnable
-
callable
public static <V> Remote.Callable<V> callable(Remote.Callable<V> callable)
Capture serializable Callable.- Parameters:
callable
- lambda to capture- Returns:
- serializable Callable
-
-