Class 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.
    • Field Detail

      • notify

        protected boolean notify
        Flag if source has to be notified.
      • notified

        protected boolean notified
        Flag if source has been notified.
      • reason

        protected java.lang.Exception reason
        Exception used for notification.
      • storedinfos

        protected java.util.List<java.lang.Object> storedinfos
        The list of stored infos, to be sent when src is connected.
    • Constructor Detail

      • TerminableDelegationFuture

        public TerminableDelegationFuture()
        Create a new future.
      • TerminableDelegationFuture

        public TerminableDelegationFuture​(ITerminableFuture<?> src)
        Create a new future.
    • Method Detail

      • setTerminationSource

        public void setTerminationSource​(ITerminableFuture<?> src)
        Set the termination source.
      • terminate

        public void terminate()
        Terminate the future. The exception will be set to FutureTerminatedException.
        Specified by:
        terminate in interface ITerminableFuture<E>
      • terminate

        public void terminate​(java.lang.Exception reason)
        Terminate the future and supply a custom reason.
        Specified by:
        terminate in interface ITerminableFuture<E>
      • sendBackwardCommand

        public void sendBackwardCommand​(java.lang.Object info)
        Send a backward command in direction of the source.
        Specified by:
        sendBackwardCommand in interface IBackwardCommandFuture
        Parameters:
        info - The command info.