Package jadex.future

Class TerminableFuture<E>

java.lang.Object
jadex.future.Future<E>
jadex.future.TerminableFuture<E>
All Implemented Interfaces:
IBackwardCommandFuture, IForwardCommandFuture, IFuture<E>, ITerminableFuture<E>, Supplier<E>

public class TerminableFuture<E> extends Future<E> implements ITerminableFuture<E>
Future that can be terminated from caller side. A termination request leads to setException() being called with a FutureTerminatedException. The future can be supplied with a command that gets executed if terminate is called.
  • Field Details

    • terminate

      protected ITerminationCommand terminate
      The termination code.
    • bcommands

      protected Map<jadex.common.ICommand<Object>,jadex.common.IFilter<Object>> bcommands
      The list of backward commands.
  • Constructor Details

    • TerminableFuture

      public TerminableFuture()
      Create a new future.
    • TerminableFuture

      public TerminableFuture(ITerminationCommand terminate)
      Create a future that is already done.
      Parameters:
      terminate - The termination command.
  • Method Details

    • 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(Exception reason)
      Terminate the future and supply a custom reason.
      Specified by:
      terminate in interface ITerminableFuture<E>
    • sendBackwardCommand

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

      public void addBackwardCommand(jadex.common.IFilter<Object> filter, jadex.common.ICommand<Object> command)
      Add a backward command with a filter. Whenever the future receives an info it will check all registered filters.
    • removeBackwardCommand

      public void removeBackwardCommand(jadex.common.ICommand<Object> command)
      Add a command with a filter. Whenever the future receives an info it will check all registered filters.
    • setTerminationCommand

      public void setTerminationCommand(ITerminationCommand terminate)
      Set the termination command.
      Parameters:
      terminate - The termination command.