Package org.forgerock.util
Class CloseSilentlyAsyncFunction<VIN extends Closeable,VOUT,E extends Exception>
java.lang.Object
org.forgerock.util.CloseSilentlyAsyncFunction<VIN,VOUT,E>
- Type Parameters:
VIN
- The type of the async function input-parameter, which implementsCloseable
.VOUT
- The type of the async function result, orVoid
if the async function does not return anything (i.e. it only has side-effects).E
- The type of the exception thrown by the async function, orNeverThrowsException
if no exception is thrown by the function.
- All Implemented Interfaces:
AsyncFunction<VIN,
VOUT, E>
public final class CloseSilentlyAsyncFunction<VIN extends Closeable,VOUT,E extends Exception>
extends Object
implements AsyncFunction<VIN,VOUT,E>
AsyncFunction
that silently closes an input-parameter after
a delegate-function's AsyncFunction.apply(Object)
is completed.-
Method Summary
Modifier and TypeMethodDescriptionInvokes the delegate async function'sAsyncFunction.apply(Object)
with the input parametervalue
, closes it when the delegated promise completes.static <IN extends Closeable,
OUT, EX extends Exception>
AsyncFunction<IN,OUT, EX> closeSilently
(AsyncFunction<IN, OUT, EX> delegate) Wraps a delegate asynchronous function in aCloseSilentlyAsyncFunction
.
-
Method Details
-
closeSilently
public static <IN extends Closeable,OUT, AsyncFunction<IN,EX extends Exception> OUT, closeSilentlyEX> (AsyncFunction<IN, OUT, EX> delegate) Wraps a delegate asynchronous function in aCloseSilentlyAsyncFunction
.- Type Parameters:
IN
- The type of the asynchronous function input-parameter, which implementsCloseable
.OUT
- The type of the function result, orVoid
if the async function does not return anything (i.e. it only has side-effects).EX
- The type of the exception thrown by the async function, orNeverThrowsException
if no exception is thrown by the function.- Parameters:
delegate
- Delegate asynchronous function.- Returns:
- New
CloseSilentlyAsyncFunction
instance.
-
apply
Invokes the delegate async function'sAsyncFunction.apply(Object)
with the input parametervalue
, closes it when the delegated promise completes.- Specified by:
apply
in interfaceAsyncFunction<VIN extends Closeable,
VOUT, E extends Exception> - Parameters:
value
-Closeable
input parameter.- Returns:
- The result of applying delegate function to
value
. - Throws:
E
- PropagatesException
thrown by delegateAsyncFunction
.
-