com.google.common.util.concurrent
Class ForwardingCheckedFuture<V,X extends Exception>

java.lang.Object
  extended by com.google.common.collect.ForwardingObject
      extended by com.google.common.util.concurrent.ForwardingFuture<V>
          extended by com.google.common.util.concurrent.ForwardingListenableFuture<V>
              extended by com.google.common.util.concurrent.ForwardingCheckedFuture<V,X>
Type Parameters:
V - The result type returned by this Future's get method
X - The type of the Exception thrown by the Future's checkedGet method
All Implemented Interfaces:
CheckedFuture<V,X>, ListenableFuture<V>, Future<V>
Direct Known Subclasses:
ForwardingCheckedFuture.SimpleForwardingCheckedFuture

@Beta
public abstract class ForwardingCheckedFuture<V,X extends Exception>
extends ForwardingListenableFuture<V>
implements CheckedFuture<V,X>

A future which forwards all its method calls to another future. Subclasses should override one or more methods to modify the behavior of the backing future as desired per the decorator pattern.

Most subclasses can simply extend ForwardingCheckedFuture.SimpleForwardingCheckedFuture.

Since:
9
Author:
azana@google.com (Anthony Zana)

Nested Class Summary
static class ForwardingCheckedFuture.SimpleForwardingCheckedFuture<V,X extends Exception>
          A simplified version of ForwardingCheckedFuture where subclasses can pass in an already constructed CheckedFuture as the delegate.
 
Nested classes/interfaces inherited from class com.google.common.util.concurrent.ForwardingListenableFuture
ForwardingListenableFuture.SimpleForwardingListenableFuture<V>
 
Nested classes/interfaces inherited from class com.google.common.util.concurrent.ForwardingFuture
ForwardingFuture.SimpleForwardingFuture<V>
 
Constructor Summary
ForwardingCheckedFuture()
           
 
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.
protected abstract  CheckedFuture<V,X> delegate()
          Returns the backing delegate instance that methods are forwarded to.
 
Methods inherited from class com.google.common.util.concurrent.ForwardingListenableFuture
addListener
 
Methods inherited from class com.google.common.util.concurrent.ForwardingFuture
cancel, get, get, isCancelled, isDone
 
Methods inherited from class com.google.common.collect.ForwardingObject
toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.google.common.util.concurrent.ListenableFuture
addListener
 
Methods inherited from interface java.util.concurrent.Future
cancel, get, get, isCancelled, isDone
 

Constructor Detail

ForwardingCheckedFuture

public ForwardingCheckedFuture()
Method Detail

checkedGet

public V checkedGet()
             throws X extends Exception
Description copied from interface: CheckedFuture
Exception checking version of Future.get() that will translate InterruptedException, CancellationException and ExecutionException into application-specific exceptions.

Specified by:
checkedGet in interface CheckedFuture<V,X extends Exception>
Returns:
the result of executing the future.
Throws:
X - on interruption, cancellation or execution exceptions.
X extends Exception

checkedGet

public V checkedGet(long timeout,
                    TimeUnit unit)
             throws TimeoutException,
                    X extends Exception
Description copied from interface: CheckedFuture
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.

Specified by:
checkedGet in interface CheckedFuture<V,X extends Exception>
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

delegate

protected abstract CheckedFuture<V,X> delegate()
Description copied from class: ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such as ForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.

Specified by:
delegate in class ForwardingListenableFuture<V>