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

    java.lang.Object
      com.google.common.collect.ForwardingObject
          com.google.common.util.concurrent.ForwardingFuture<V>
              com.google.common.util.concurrent.ForwardingListenableFuture<V>
                  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.0
Author:
  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>`

Copyright © 2010-2012. All Rights Reserved.