Class BaseFuture<V>
java.lang.Object
org.elasticsearch.common.util.concurrent.BaseFuture<V>
- All Implemented Interfaces:
java.util.concurrent.Future<V>
- Direct Known Subclasses:
AdapterActionFuture
,ListenableFuture
,PlainTransportFuture
public abstract class BaseFuture<V>
extends java.lang.Object
implements java.util.concurrent.Future<V>
-
Constructor Summary
Constructors Constructor Description BaseFuture()
-
Method Summary
Modifier and Type Method Description protected boolean
blockingAllowed()
boolean
cancel(boolean mayInterruptIfRunning)
protected void
done(boolean success)
Called when theBaseFuture
is completed.V
get()
V
get(long timeout, java.util.concurrent.TimeUnit unit)
protected void
interruptTask()
Subclasses can override this method to implement interruption of the future's computation.boolean
isCancelled()
boolean
isDone()
protected boolean
set(V value)
Subclasses should invoke this method to set the result of the computation tovalue
.protected boolean
setException(java.lang.Throwable throwable)
Subclasses should invoke this method to set the result of the computation to an error,throwable
.
-
Constructor Details
-
BaseFuture
public BaseFuture()
-
-
Method Details
-
get
public V get(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException, java.util.concurrent.ExecutionExceptionThe default
BaseFuture
implementation throwsInterruptedException
if the current thread is interrupted before or during the call, even if the value is already available.- Specified by:
get
in interfacejava.util.concurrent.Future<V>
- Throws:
java.lang.InterruptedException
- if the current thread was interrupted before or during the call (optional but recommended).java.util.concurrent.CancellationException
java.util.concurrent.TimeoutException
java.util.concurrent.ExecutionException
-
get
The default
BaseFuture
implementation throwsInterruptedException
if the current thread is interrupted before or during the call, even if the value is already available.- Specified by:
get
in interfacejava.util.concurrent.Future<V>
- Throws:
java.lang.InterruptedException
- if the current thread was interrupted before or during the call (optional but recommended).java.util.concurrent.CancellationException
java.util.concurrent.ExecutionException
-
blockingAllowed
protected boolean blockingAllowed() -
isDone
public boolean isDone()- Specified by:
isDone
in interfacejava.util.concurrent.Future<V>
-
isCancelled
public boolean isCancelled()- Specified by:
isCancelled
in interfacejava.util.concurrent.Future<V>
-
cancel
public boolean cancel(boolean mayInterruptIfRunning)- Specified by:
cancel
in interfacejava.util.concurrent.Future<V>
-
interruptTask
protected void interruptTask()Subclasses can override this method to implement interruption of the future's computation. The method is invoked automatically by a successful call tocancel(true)
.The default implementation does nothing.
- Since:
- 10.0
-
set
Subclasses should invoke this method to set the result of the computation tovalue
. This will set the state of the future toBaseFuture.Sync.COMPLETED
and calldone(boolean)
if the state was successfully changed.- Parameters:
value
- the value that was the result of the task.- Returns:
- true if the state was successfully changed.
-
setException
protected boolean setException(java.lang.Throwable throwable)Subclasses should invoke this method to set the result of the computation to an error,throwable
. This will set the state of the future toBaseFuture.Sync.COMPLETED
and calldone(boolean)
if the state was successfully changed.- Parameters:
throwable
- the exception that the task failed with.- Returns:
- true if the state was successfully changed.
- Throws:
java.lang.Error
- if the throwable was anError
.
-
done
protected void done(boolean success)Called when theBaseFuture
is completed. Thesuccess
boolean indicates if theBaseFuture
was successfully completed (the value istrue
). In the cases theBaseFuture
was completed with an error or cancelled the value isfalse
.- Parameters:
success
- indicates if theBaseFuture
was completed with success (true); in other cases it equals to false
-