Class AbstractCheckedFuture<V,X extends java.lang.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.ForwardingListenableFuture.SimpleForwardingListenableFuture<V>
-
- com.google.common.util.concurrent.AbstractCheckedFuture<V,X>
-
- All Implemented Interfaces:
CheckedFuture<V,X>,ListenableFuture<V>,java.util.concurrent.Future<V>
@Beta @GwtIncompatible public abstract class AbstractCheckedFuture<V,X extends java.lang.Exception> extends ForwardingListenableFuture.SimpleForwardingListenableFuture<V> implements CheckedFuture<V,X>
A delegating wrapper around aListenableFuturethat adds support for thecheckedGet()andcheckedGet(long, TimeUnit)methods.- Since:
- 1.0
-
-
Nested Class Summary
-
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
Constructors Modifier Constructor Description protectedAbstractCheckedFuture(ListenableFuture<V> delegate)Constructs anAbstractCheckedFuturethat wraps a delegate.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description VcheckedGet()Exception checking version ofFuture.get()that will translateInterruptedException,CancellationExceptionandExecutionExceptioninto application-specific exceptions.VcheckedGet(long timeout, java.util.concurrent.TimeUnit unit)Exception checking version ofFuture.get(long, TimeUnit)that will translateInterruptedException,CancellationExceptionandExecutionExceptioninto application-specific exceptions.protected abstract XmapException(java.lang.Exception e)Translates from anInterruptedException,CancellationExceptionorExecutionExceptionthrown bygetto an exception of typeXto be thrown bycheckedGet.-
Methods inherited from class com.google.common.util.concurrent.ForwardingListenableFuture.SimpleForwardingListenableFuture
delegate
-
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
-
-
-
-
Constructor Detail
-
AbstractCheckedFuture
protected AbstractCheckedFuture(ListenableFuture<V> delegate)
Constructs anAbstractCheckedFuturethat wraps a delegate.
-
-
Method Detail
-
mapException
protected abstract X mapException(java.lang.Exception e)
Translates from anInterruptedException,CancellationExceptionorExecutionExceptionthrown bygetto an exception of typeXto be thrown bycheckedGet. Subclasses must implement this method.If
eis anInterruptedException, the callingcheckedGetmethod has already restored the interrupt after catching the exception. If an implementation ofmapException(Exception)wishes to swallow the interrupt, it can do so by callingThread.interrupted().Subclasses may choose to throw, rather than return, a subclass of
RuntimeExceptionto allow creating a CheckedFuture that throws both checked and unchecked exceptions.
-
checkedGet
public V checkedGet() throws X extends java.lang.Exception
Exception checking version ofFuture.get()that will translateInterruptedException,CancellationExceptionandExecutionExceptioninto application-specific exceptions.This implementation calls
ForwardingFuture.get()and maps that method's standard exceptions to instances of typeXusingmapException(java.lang.Exception).In addition, if
getthrows anInterruptedException, this implementation will set the current thread's interrupt status before callingmapException.- Specified by:
checkedGetin interfaceCheckedFuture<V,X extends java.lang.Exception>- Returns:
- the result of executing the future.
- Throws:
X- ifForwardingFuture.get()throws anInterruptedException,CancellationException, orExecutionExceptionX extends java.lang.Exception
-
checkedGet
public V checkedGet(long timeout, java.util.concurrent.TimeUnit unit) throws java.util.concurrent.TimeoutException, X extends java.lang.Exception
Exception checking version ofFuture.get(long, TimeUnit)that will translateInterruptedException,CancellationExceptionandExecutionExceptioninto application-specific exceptions. On timeout this method throws a normalTimeoutException.This implementation calls
ForwardingFuture.get(long, TimeUnit)and maps that method's standard exceptions (excludingTimeoutException, which is propagated) to instances of typeXusingmapException(java.lang.Exception).In addition, if
getthrows anInterruptedException, this implementation will set the current thread's interrupt status before callingmapException.- Specified by:
checkedGetin interfaceCheckedFuture<V,X extends java.lang.Exception>- Returns:
- the result of executing the future.
- Throws:
X- ifForwardingFuture.get()throws anInterruptedException,CancellationException, orExecutionExceptionjava.util.concurrent.TimeoutException- if retrieving the result timed out.X extends java.lang.Exception
-
-