Class AbstractCheckedFuture<V,X extends Exception>
- All Implemented Interfaces:
CheckedFuture<V,
,X> ListenableFuture<V>
,Future<V>
ListenableFuture
that adds support for the checkedGet()
and checkedGet(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>
Nested classes/interfaces inherited from interface java.util.concurrent.Future
Future.State
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractCheckedFuture
(ListenableFuture<V> delegate) Constructs anAbstractCheckedFuture
that wraps a delegate. -
Method Summary
Modifier and TypeMethodDescriptionException checking version ofFuture.get()
that will translateInterruptedException
,CancellationException
andExecutionException
into application-specific exceptions.checkedGet
(long timeout, TimeUnit unit) Exception checking version ofFuture.get(long, TimeUnit)
that will translateInterruptedException
,CancellationException
andExecutionException
into application-specific exceptions.protected abstract X
Translates from anInterruptedException
,CancellationException
orExecutionException
thrown byget
to an exception of typeX
to 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 java.util.concurrent.Future
cancel, exceptionNow, get, get, isCancelled, isDone, resultNow, state
Methods inherited from interface com.google.common.util.concurrent.ListenableFuture
addListener
-
Constructor Details
-
AbstractCheckedFuture
Constructs anAbstractCheckedFuture
that wraps a delegate.
-
-
Method Details
-
mapException
Translates from anInterruptedException
,CancellationException
orExecutionException
thrown byget
to an exception of typeX
to be thrown bycheckedGet
. Subclasses must implement this method.If
e
is anInterruptedException
, the callingcheckedGet
method 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
RuntimeException
to allow creating a CheckedFuture that throws both checked and unchecked exceptions. -
checkedGet
Exception checking version ofFuture.get()
that will translateInterruptedException
,CancellationException
andExecutionException
into application-specific exceptions.This implementation calls
ForwardingFuture.get()
and maps that method's standard exceptions to instances of typeX
usingmapException(java.lang.Exception)
.In addition, if
get
throws anInterruptedException
, this implementation will set the current thread's interrupt status before callingmapException
.- Specified by:
checkedGet
in interfaceCheckedFuture<V,
X extends Exception> - Returns:
- the result of executing the future.
- Throws:
X
- ifForwardingFuture.get()
throws anInterruptedException
,CancellationException
, orExecutionException
-
checkedGet
Exception checking version ofFuture.get(long, TimeUnit)
that will translateInterruptedException
,CancellationException
andExecutionException
into 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 typeX
usingmapException(java.lang.Exception)
.In addition, if
get
throws anInterruptedException
, this implementation will set the current thread's interrupt status before callingmapException
.- Specified by:
checkedGet
in interfaceCheckedFuture<V,
X extends Exception> - Returns:
- the result of executing the future.
- Throws:
X
- ifForwardingFuture.get()
throws anInterruptedException
,CancellationException
, orExecutionException
TimeoutException
- if retrieving the result timed out.
-