com.google.common.util.concurrent
Interface CheckedFuture<V,X extends Exception>

All Superinterfaces:
Future<V>, ListenableFuture<V>
All Known Implementing Classes:
AbstractCheckedFuture, ForwardingCheckedFuture, ForwardingCheckedFuture.SimpleForwardingCheckedFuture

@Beta
public interface CheckedFuture<V,X extends Exception>
extends ListenableFuture<V>

A CheckedFuture is an extension of Future that includes versions of the get methods that can throw a checked exception and allows listeners to be attached to the future. This makes it easier to create a future that executes logic which can throw an exception.

Common implementations include com.google.common.labs.concurrent.ValueCheckedFuture and Futures.immediateCheckedFuture(V).

Implementations of this interface must adapt the exceptions thrown by Future#get(): CancellationException, ExecutionException and InterruptedException into the type specified by the E type parameter.

This interface also extends the ListenableFuture interface to allow listeners to be added. This allows the future to be used as a normal Future or as an asynchronous callback mechanism as needed. This allows multiple callbacks to be registered for a particular task, and the future will guarantee execution of all listeners when the task completes.

Since:
1
Author:
Sven Mawson

Method Summary
 V checkedGet()
          Exception checking version of Future.get() that will translate InterruptedException, CancellationException and ExecutionException into application-specific exceptions.
 V checkedGet(long timeout, TimeUnit unit)
          Exception checking version of Future.get(long, TimeUnit) that will translate InterruptedException, CancellationException and ExecutionException into application-specific exceptions.
 
Methods inherited from interface com.google.common.util.concurrent.ListenableFuture
addListener
 
Methods inherited from interface java.util.concurrent.Future
cancel, get, get, isCancelled, isDone
 

Method Detail

checkedGet

V checkedGet()
             throws X extends Exception
Exception checking version of Future.get() that will translate InterruptedException, CancellationException and ExecutionException into application-specific exceptions.

Returns:
the result of executing the future.
Throws:
X - on interruption, cancellation or execution exceptions.
X extends Exception

checkedGet

V checkedGet(long timeout,
             TimeUnit unit)
             throws TimeoutException,
                    X extends Exception
Exception checking version of Future.get(long, TimeUnit) that will translate InterruptedException, CancellationException and ExecutionException into application-specific exceptions. On timeout this method throws a normal TimeoutException.

Returns:
the result of executing the future.
Throws:
TimeoutException - if retrieving the result timed out.
X - on interruption, cancellation or execution exceptions.
X extends Exception