public class PresentFuture<V>
extends java.lang.Object
implements java.util.concurrent.Future<V>
This is thought for situations where normally a Future is awaited, but sometimes the object is already given. It is just a small wrapper around the object.
Constructor and Description |
---|
PresentFuture(V value)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
boolean |
cancel(boolean mayInterruptIfRunning)
Attempts to cancel execution of this task.
|
V |
get()
Waits if necessary for the computation to complete, and then
retrieves its result.
|
V |
get(long timeout,
java.util.concurrent.TimeUnit unit)
Waits if necessary for at most the given time for the computation
to complete, and then retrieves its result, if available.
|
boolean |
isCancelled()
Returns true if this task was cancelled before it completed
normally.
|
boolean |
isDone()
Returns true if this task completed.
|
public PresentFuture(V value)
value
- value which is returned by get()public boolean cancel(boolean mayInterruptIfRunning)
After this method returns, subsequent calls to isDone()
will
always return true. Subsequent calls to isCancelled()
will always return true if this method returned true.
cancel
in interface java.util.concurrent.Future<V>
mayInterruptIfRunning
- true if the thread executing this
task should be interrupted; otherwise, in-progress tasks are allowed
to completepublic boolean isCancelled()
isCancelled
in interface java.util.concurrent.Future<V>
public boolean isDone()
Completion may be due to normal termination, an exception, or cancellation -- in all of these cases, this method will return true.
isDone
in interface java.util.concurrent.Future<V>
public V get() throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
get
in interface java.util.concurrent.Future<V>
java.util.concurrent.CancellationException
- if the computation was cancelledjava.util.concurrent.ExecutionException
- if the computation threw an
exceptionjava.lang.InterruptedException
- if the current thread was interrupted
while waitingpublic V get(long timeout, @NotNull java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
get
in interface java.util.concurrent.Future<V>
timeout
- the maximum time to waitunit
- the time unit of the timeout argumentjava.util.concurrent.CancellationException
- if the computation was cancelledjava.util.concurrent.ExecutionException
- if the computation threw an
exceptionjava.lang.InterruptedException
- if the current thread was interrupted
while waitingjava.util.concurrent.TimeoutException
- if the wait timed out