Package com.landawn.abacus.util
Class ContinuableFuture<T>
java.lang.Object
com.landawn.abacus.util.ContinuableFuture<T>
- Type Parameters:
T
-
- All Implemented Interfaces:
Future<T>
- Since:
- 0.8
- Author:
- Haiyang Li
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic <T> ContinuableFuture<T>
static <T> ContinuableFuture<T>
<R> ContinuableFuture<R>
callAfterBoth
(ContinuableFuture<?> other, Callable<R> action) Call after both.<U,
R, E extends Exception>
ContinuableFuture<R>callAfterBoth
(ContinuableFuture<U> other, Throwables.BiFunction<? super T, ? super U, R, E> action) Call after both.<U,
R, E extends Exception>
ContinuableFuture<R>callAfterBoth
(ContinuableFuture<U> other, Throwables.Function<? super Tuple.Tuple4<T, ? super Exception, U, ? super Exception>, R, E> action) Call after both.<U,
R, E extends Exception>
ContinuableFuture<R>callAfterBoth
(ContinuableFuture<U> other, Throwables.QuadFunction<T, ? super Exception, U, ? super Exception, R, E> action) Call after both.<R> ContinuableFuture<R>
callAfterEither
(ContinuableFuture<?> other, Callable<R> action) Call after either.<R,
E extends Exception>
ContinuableFuture<R>callAfterEither
(ContinuableFuture<? extends T> other, Throwables.BiFunction<? super T, ? super Exception, R, E> action) Call after either.<R,
E extends Exception>
ContinuableFuture<R>callAfterEither
(ContinuableFuture<? extends T> other, Throwables.Function<? super T, R, E> action) Call after either.boolean
cancel
(boolean mayInterruptIfRunning) boolean
cancelAll
(boolean mayInterruptIfRunning) Cancel this future and all the previous stage future recursively.static <T> ContinuableFuture<T>
completed
(T result) get()
Gets the now.gett()
Gets the t.Gets the t.<E extends Exception>
voidgetThenAccept
(long timeout, TimeUnit unit, Throwables.BiConsumer<? super T, ? super Exception, E> action) Gets the then accept.<E extends Exception>
voidgetThenAccept
(long timeout, TimeUnit unit, Throwables.Consumer<? super T, E> action) Gets the then accept.<E extends Exception>
voidgetThenAccept
(Throwables.BiConsumer<? super T, ? super Exception, E> action) Gets the then accept.<E extends Exception>
voidgetThenAccept
(Throwables.Consumer<? super T, E> action) Gets the then accept.<U,
E extends Exception>
UgetThenApply
(long timeout, TimeUnit unit, Throwables.BiFunction<? super T, ? super Exception, U, E> action) Gets the then apply.<U,
E extends Exception>
UgetThenApply
(long timeout, TimeUnit unit, Throwables.Function<? super T, U, E> action) Gets the then apply.<U,
E extends Exception>
UgetThenApply
(Throwables.BiFunction<? super T, ? super Exception, U, E> action) Gets the then apply.<U,
E extends Exception>
UgetThenApply
(Throwables.Function<? super T, U, E> action) Gets the then apply.boolean
Returns true if this future and all previous stage futures have been recursively cancelled, otherwise false is returned.boolean
Checks if is cancelled.boolean
isDone()
Checks if is done.<U,
E extends Exception>
ContinuableFuture<U>map
(Throwables.Function<? super T, U, E> func) static <E extends Exception>
ContinuableFuture<Void>run
(Throwables.Runnable<E> action) static <E extends Exception>
ContinuableFuture<Void>run
(Throwables.Runnable<E> action, Executor executor) <E extends Exception>
ContinuableFuture<Void>runAfterBoth
(ContinuableFuture<?> other, Throwables.Runnable<E> action) Run after both.<U,
E extends Exception>
ContinuableFuture<Void>runAfterBoth
(ContinuableFuture<U> other, Throwables.BiConsumer<? super T, ? super U, E> action) Run after both.<U,
E extends Exception>
ContinuableFuture<Void>runAfterBoth
(ContinuableFuture<U> other, Throwables.Consumer<? super Tuple.Tuple4<T, ? super Exception, U, ? super Exception>, E> action) Run after both.<U,
E extends Exception>
ContinuableFuture<Void>runAfterBoth
(ContinuableFuture<U> other, Throwables.QuadConsumer<T, ? super Exception, U, ? super Exception, E> action) Run after both.<E extends Exception>
ContinuableFuture<Void>runAfterEither
(ContinuableFuture<?> other, Throwables.Runnable<E> action) Run after either.<E extends Exception>
ContinuableFuture<Void>runAfterEither
(ContinuableFuture<? extends T> other, Throwables.BiConsumer<? super T, ? super Exception, E> action) Run after either.<E extends Exception>
ContinuableFuture<Void>runAfterEither
(ContinuableFuture<? extends T> other, Throwables.Consumer<? super T, E> action) Run after either.<R,
E extends Exception>
ContinuableFuture<R>thenCall
(Throwables.BiFunction<? super T, ? super Exception, R, E> action) <R,
E extends Exception>
ContinuableFuture<R>thenCall
(Throwables.Function<? super T, R, E> action) <R> ContinuableFuture<R>
<E extends Exception>
ContinuableFuture<Void>thenRun
(Throwables.BiConsumer<? super T, ? super Exception, E> action) <E extends Exception>
ContinuableFuture<Void>thenRun
(Throwables.Consumer<? super T, E> action) <E extends Exception>
ContinuableFuture<Void>thenRun
(Throwables.Runnable<E> action) static <T> ContinuableFuture<T>
-
Method Details
-
run
- Type Parameters:
E
-- Parameters:
action
-- Returns:
- See Also:
-
run
public static <E extends Exception> ContinuableFuture<Void> run(Throwables.Runnable<E> action, Executor executor) - Type Parameters:
E
-- Parameters:
action
-executor
-- Returns:
-
call
- Type Parameters:
T
-E
-- Parameters:
action
-- Returns:
- See Also:
-
call
- Type Parameters:
T
-E
-- Parameters:
action
-executor
-- Returns:
-
completed
- Type Parameters:
T
-- Parameters:
result
-- Returns:
- a ContinuableFuture which is already done by passing the result to it directly.
-
wrap
- Type Parameters:
T
-- Parameters:
future
-- Returns:
-
cancel
public boolean cancel(boolean mayInterruptIfRunning) -
isCancelled
public boolean isCancelled()Checks if is cancelled.- Specified by:
isCancelled
in interfaceFuture<T>
- Returns:
- true, if is cancelled
-
cancelAll
public boolean cancelAll(boolean mayInterruptIfRunning) Cancel this future and all the previous stage future recursively.- Parameters:
mayInterruptIfRunning
-- Returns:
-
isAllCancelled
public boolean isAllCancelled()Returns true if this future and all previous stage futures have been recursively cancelled, otherwise false is returned.- Returns:
- true, if is all cancelled
-
isDone
public boolean isDone()Checks if is done. -
get
- Specified by:
get
in interfaceFuture<T>
- Returns:
- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exception
-
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException - Specified by:
get
in interfaceFuture<T>
- Parameters:
timeout
-unit
-- Returns:
- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exceptionTimeoutException
- the timeout exception
-
gett
Gets the t.- Returns:
-
gett
Gets the t.- Parameters:
timeout
-unit
-- Returns:
-
getNow
Gets the now.- Parameters:
defaultValue
-- Returns:
- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exception
-
getThenApply
public <U,E extends Exception> U getThenApply(Throwables.Function<? super T, U, throws InterruptedException, ExecutionException, EE> action) Gets the then apply.- Type Parameters:
U
-E
-- Parameters:
action
-- Returns:
- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exceptionE
- the e
-
getThenApply
public <U,E extends Exception> U getThenApply(long timeout, TimeUnit unit, Throwables.Function<? super T, U, throws InterruptedException, ExecutionException, TimeoutException, EE> action) Gets the then apply.- Type Parameters:
U
-E
-- Parameters:
timeout
-unit
-action
-- Returns:
- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exceptionTimeoutException
- the timeout exceptionE
- the e
-
getThenApply
public <U,E extends Exception> U getThenApply(Throwables.BiFunction<? super T, ? super Exception, throws EU, E> action) Gets the then apply.- Type Parameters:
U
-E
-- Parameters:
action
-- Returns:
- Throws:
E
- the e
-
getThenApply
public <U,E extends Exception> U getThenApply(long timeout, TimeUnit unit, Throwables.BiFunction<? super T, ? super Exception, throws EU, E> action) Gets the then apply.- Type Parameters:
U
-E
-- Parameters:
timeout
-unit
-action
-- Returns:
- Throws:
E
- the e
-
getThenAccept
public <E extends Exception> void getThenAccept(Throwables.Consumer<? super T, E> action) throws InterruptedException, ExecutionException, EGets the then accept.- Type Parameters:
E
-- Parameters:
action
-- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exceptionE
- the e
-
getThenAccept
public <E extends Exception> void getThenAccept(long timeout, TimeUnit unit, Throwables.Consumer<? super T, E> action) throws InterruptedException, ExecutionException, TimeoutException, EGets the then accept.- Type Parameters:
E
-- Parameters:
timeout
-unit
-action
-- Throws:
InterruptedException
- the interrupted exceptionExecutionException
- the execution exceptionTimeoutException
- the timeout exceptionE
- the e
-
getThenAccept
public <E extends Exception> void getThenAccept(Throwables.BiConsumer<? super T, ? super Exception, throws EE> action) Gets the then accept.- Type Parameters:
E
-- Parameters:
action
-- Throws:
E
- the e
-
getThenAccept
public <E extends Exception> void getThenAccept(long timeout, TimeUnit unit, Throwables.BiConsumer<? super T, ? super Exception, throws EE> action) Gets the then accept.- Type Parameters:
E
-- Parameters:
timeout
-unit
-action
-- Throws:
E
- the e
-
map
- Type Parameters:
U
-E
-- Parameters:
func
-- Returns:
-
thenRun
- Type Parameters:
E
-- Parameters:
action
-- Returns:
-
thenRun
public <E extends Exception> ContinuableFuture<Void> thenRun(Throwables.Consumer<? super T, E> action) - Type Parameters:
E
-- Parameters:
action
-- Returns:
-
thenRun
public <E extends Exception> ContinuableFuture<Void> thenRun(Throwables.BiConsumer<? super T, ? super Exception, E> action) - Type Parameters:
E
-- Parameters:
action
-- Returns:
-
thenCall
- Type Parameters:
R
-E
-- Parameters:
action
-- Returns:
-
thenCall
public <R,E extends Exception> ContinuableFuture<R> thenCall(Throwables.Function<? super T, R, E> action) - Type Parameters:
R
-E
-- Parameters:
action
-- Returns:
-
thenCall
public <R,E extends Exception> ContinuableFuture<R> thenCall(Throwables.BiFunction<? super T, ? super Exception, R, E> action) - Type Parameters:
R
-E
-- Parameters:
action
-- Returns:
-
runAfterBoth
public <E extends Exception> ContinuableFuture<Void> runAfterBoth(ContinuableFuture<?> other, Throwables.Runnable<E> action) Run after both.- Type Parameters:
E
-- Parameters:
other
-action
-- Returns:
-
runAfterBoth
public <U,E extends Exception> ContinuableFuture<Void> runAfterBoth(ContinuableFuture<U> other, Throwables.BiConsumer<? super T, ? super U, E> action) Run after both.- Type Parameters:
U
-E
-- Parameters:
other
-action
-- Returns:
-
runAfterBoth
public <U,E extends Exception> ContinuableFuture<Void> runAfterBoth(ContinuableFuture<U> other, Throwables.Consumer<? super Tuple.Tuple4<T, ? super Exception, U, ? super Exception>, E> action) Run after both.- Type Parameters:
U
-E
-- Parameters:
other
-action
-- Returns:
-
runAfterBoth
public <U,E extends Exception> ContinuableFuture<Void> runAfterBoth(ContinuableFuture<U> other, Throwables.QuadConsumer<T, ? super Exception, U, ? super Exception, E> action) Run after both.- Type Parameters:
U
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterBoth
Call after both.- Type Parameters:
R
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterBoth
public <U,R, ContinuableFuture<R> callAfterBothE extends Exception> (ContinuableFuture<U> other, Throwables.BiFunction<? super T, ? super U, R, E> action) Call after both.- Type Parameters:
U
-R
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterBoth
public <U,R, ContinuableFuture<R> callAfterBothE extends Exception> (ContinuableFuture<U> other, Throwables.Function<? super Tuple.Tuple4<T, ? super Exception, U, ? super Exception>, R, E> action) Call after both.- Type Parameters:
U
-R
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterBoth
public <U,R, ContinuableFuture<R> callAfterBothE extends Exception> (ContinuableFuture<U> other, Throwables.QuadFunction<T, ? super Exception, U, ? super Exception, R, E> action) Call after both.- Type Parameters:
U
-R
-E
-- Parameters:
other
-action
-- Returns:
-
runAfterEither
public <E extends Exception> ContinuableFuture<Void> runAfterEither(ContinuableFuture<?> other, Throwables.Runnable<E> action) Run after either.- Type Parameters:
E
-- Parameters:
other
-action
-- Returns:
-
runAfterEither
public <E extends Exception> ContinuableFuture<Void> runAfterEither(ContinuableFuture<? extends T> other, Throwables.Consumer<? super T, E> action) Run after either.- Type Parameters:
E
-- Parameters:
other
-action
-- Returns:
-
runAfterEither
public <E extends Exception> ContinuableFuture<Void> runAfterEither(ContinuableFuture<? extends T> other, Throwables.BiConsumer<? super T, ? super Exception, E> action) Run after either.- Type Parameters:
E
-- Parameters:
other
-action
-- Returns:
-
callAfterEither
Call after either.- Type Parameters:
R
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterEither
public <R,E extends Exception> ContinuableFuture<R> callAfterEither(ContinuableFuture<? extends T> other, Throwables.Function<? super T, R, E> action) Call after either.- Type Parameters:
R
-E
-- Parameters:
other
-action
-- Returns:
-
callAfterEither
public <R,E extends Exception> ContinuableFuture<R> callAfterEither(ContinuableFuture<? extends T> other, Throwables.BiFunction<? super T, ? super Exception, R, E> action) Call after either.- Type Parameters:
R
-E
-- Parameters:
other
-action
-- Returns:
-
thenDelay
- Parameters:
delay
-unit
-- Returns:
-
thenUse
- Parameters:
executor
-- Returns:
-