Class AbstractShutDownTask

java.lang.Object
jmri.implementation.AbstractShutDownTask
All Implemented Interfaces:
PropertyChangeListener, Runnable, Callable<Boolean>, EventListener, ShutDownTask
Direct Known Subclasses:
CbusEventTableShutdownTask, DispatcherShutDownTask, SwingShutDownTask, WarrantShutdownTask

public abstract class AbstractShutDownTask extends Object implements ShutDownTask
Abstract ShutDownTask implementation.

This implementation provides a "doRun" property with a protected getter and setter to allow subclasses to set the "doRun" property to true inside call() so that the property can be checked inside ShutDownTask.run() to determine if anything should be done during shut down.

  • Constructor Details

    • AbstractShutDownTask

      Constructor specifies the name
      Parameters:
      name - Name to give this task
  • Method Details

    • call

      public Boolean call()
      Ask if shut down is allowed.

      The shut down manager calls this method first on all the tasks before starting to execute the method ShutDownTask.run() on the tasks.

      If this method returns false on any task, the shut down process must be aborted. This implementation merely sets the "doRun" property to true, and should be overridden for any real checking. Note that overriding implementations should call setDoRun(boolean) correctly.

      Specified by:
      call in interface Callable<Boolean>
      Specified by:
      call in interface ShutDownTask
      Returns:
      true if it is OK to shut down, false to abort shut down.
    • getName

      public String getName()
      Description copied from interface: ShutDownTask
      Name to be provided to the user when information about this task is presented.
      Specified by:
      getName in interface ShutDownTask
      Returns:
      the name
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • propertyChange

      Note that overriding implementations should call this implementation to set the doRun property correctly.
      Specified by:
      propertyChange in interface PropertyChangeListener
    • isDoRun

      public boolean isDoRun()
      Check if action should be taken in ShutDownTask.run() method. This defaults to false, although the default implementation of call() sets this to true.
      Returns:
      true if action should be taken; false otherwise
    • setDoRun

      public void setDoRun(boolean flag)
      Set if action should be taken in ShutDownTask.run() method. Overriding implementations of call() must call this to set isDoRun() to true.
      Parameters:
      flag - true if action should be taken; false otherwise