Package jadex.commons.future
Class TerminableDelegationFuture<E>
- java.lang.Object
-
- jadex.commons.future.Future<E>
-
- jadex.commons.future.TerminableDelegationFuture<E>
-
- All Implemented Interfaces:
IBackwardCommandFuture
,IForwardCommandFuture
,IFuture<E>
,ITerminableFuture<E>
public class TerminableDelegationFuture<E> extends Future<E> implements ITerminableFuture<E>
A terminable delegation future can be used when a termination future should be delegated. This kind of future needs to be connected to the termination source (another delegation or a real future). Termination calls are forwarded to the termination source. The future remembers when terminate() was called in unconnected state and forwards the request as soon as the connection is established.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jadex.commons.future.IForwardCommandFuture
IForwardCommandFuture.Type
-
-
Field Summary
Fields Modifier and Type Field Description protected TerminableDelegationFutureHandler<E>
handler
The forward/backward handling helper.-
Fields inherited from class jadex.commons.future.Future
CALLER_QUEUED, CALLER_RESUMED, CALLER_SUSPENDED, callers, creation, DEBUG, exception, first, listeners, NO_STACK_COMPACTION, NONE, notcommand, NOTIFICATIONS, notificount, notified, result, resultavailable, undone, UNSET
-
-
Constructor Summary
Constructors Constructor Description TerminableDelegationFuture()
Create a new future.TerminableDelegationFuture(ITerminableFuture<E> src)
Create a new future.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
delegateFrom(IFuture<E> source)
Delegate the result and exception from another future.void
sendBackwardCommand(java.lang.Object info)
Send a backward command in direction of the source.void
setTerminationSource(ITerminableFuture<E> src)
Set the termination source.void
terminate()
Terminate the future.void
terminate(java.lang.Exception reason)
Terminate the future and supply a custom reason.-
Methods inherited from class jadex.commons.future.Future
abortGet, addResultListener, catchEx, catchEx, catchEx, delegate, delegateTo, doAddResultListener, doSetException, doSetResult, doStartScheduledNotifications, executeNotification, get, get, get, get, get, getEmptyFuture, getException, getFuture, getNotificationCommand, hasResultListener, isDone, isNotified, resume, scheduleNotification, scheduleNotification, sendForwardCommand, setException, setExceptionIfUndone, setResult, setResultIfUndone, startScheduledNotifications, then, thenAccept, thenAccept, thenApply, thenApply, thenCombine, thenCompose, thenCompose, throwException
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface jadex.commons.future.IFuture
addResultListener, catchEx, catchEx, catchEx, delegate, delegateTo, get, get, get, get, get, getException, isDone, then, thenApply, thenApply, thenCompose, thenCompose
-
-
-
-
Field Detail
-
handler
protected TerminableDelegationFutureHandler<E> handler
The forward/backward handling helper.
-
-
Constructor Detail
-
TerminableDelegationFuture
public TerminableDelegationFuture()
Create a new future.
-
TerminableDelegationFuture
public TerminableDelegationFuture(ITerminableFuture<E> src)
Create a new future.
-
-
Method Detail
-
setTerminationSource
public void setTerminationSource(ITerminableFuture<E> src)
Set the termination source.
-
terminate
public void terminate()
Terminate the future. The exception will be set to FutureTerminatedException.- Specified by:
terminate
in interfaceITerminableFuture<E>
-
terminate
public void terminate(java.lang.Exception reason)
Terminate the future and supply a custom reason.- Specified by:
terminate
in interfaceITerminableFuture<E>
-
delegateFrom
public void delegateFrom(IFuture<E> source)
Delegate the result and exception from another future.- Overrides:
delegateFrom
in classFuture<E>
- Parameters:
source
- The source future.
-
sendBackwardCommand
public void sendBackwardCommand(java.lang.Object info)
Send a backward command in direction of the source.- Specified by:
sendBackwardCommand
in interfaceIBackwardCommandFuture
- Parameters:
info
- The command info.
-
-