Class OfflineTaskGroup

java.lang.Object
offlineProcessing.OfflineTaskGroup
All Implemented Interfaces:
PamSettings, SettingsNameProvider

public class OfflineTaskGroup extends Object implements PamSettings
Author:
Doug Gillespie Handles a series of offline tasks which all use a common data block so that data can be loaded, a whole series of tasks completed and the data then saved in a single operation.

This will be the primary interface to OfflineTasks - even if there is only one task it will be in a group of one !

  • Constructor Details

    • OfflineTaskGroup

      public OfflineTaskGroup(PamControlledUnit pamControlledUnit, String settingsName)
      PamControlledunit required in constructor since some bookkeeping will be going on in the background which will need the unit type and name.
      Parameters:
      pamControlledUnit - host controlled unit.
      settingsName - Name to be used in PamSettings for storing some basic information (which tasks are selected)
  • Method Details

    • setSummaryLists

      public void setSummaryLists()
      Setup summary lists of required and affected datablocks based on which tasks are actually going to run .
    • runTasks

      public boolean runTasks()
      Run all the tasks.
      Parameters:
      offlineClassifierParams -
      Returns:
    • killTasks

      public void killTasks()
    • addTasks

      public int addTasks(List<OfflineTask> tasks)
      Add a list of offline tasks. Checks that tasks are not already included in the task list and doesn't add them if they already exist.
      Parameters:
      tasks - list of tasks.
      Returns:
      number added.
    • haveTask

      public boolean haveTask(OfflineTask task)
      See if a task already exists.
      Parameters:
      task - offline tasks.
      Returns:
      true if it exists
    • haveTaskClass

      public boolean haveTaskClass(OfflineTask task)
      See if we already have a task of the same class.
      Parameters:
      task - task to check
      Returns:
      true if a task of the same class already exists.
    • addTask

      public boolean addTask(OfflineTask task)
      Parameters:
      task - task to add to the group
    • getNTasks

      public int getNTasks()
      Returns:
      the number of tasks in the group
    • getTask

      public OfflineTask getTask(int iTask)
      Parameters:
      iTask - the task number
      Returns:
      the task.
    • getProcessTime

      public int getProcessTime()
      Returns:
      the processTime
    • getPrimaryDataBlock

      public PamDataBlock getPrimaryDataBlock()
      Returns:
      the primaryDataBlock
    • setPrimaryDataBlock

      public void setPrimaryDataBlock(PamDataBlock primaryDataBlock)
      Parameters:
      primaryDataBlock - the primaryDataBlock to set
    • getTaskMonitor

      public TaskMonitor getTaskMonitor()
      Returns:
      the taskMonitor
    • setTaskMonitor

      public void setTaskMonitor(TaskMonitor taskMonitor)
      Parameters:
      taskMonitor - the taskMonitor to set
    • tasksDone

      public void tasksDone()
      some bookkeeping - write information about task completion to the database.
    • getSettingsReference

      public Serializable getSettingsReference()
      Specified by:
      getSettingsReference in interface PamSettings
      Returns:
      The serialisable object that will be stored
    • getSettingsVersion

      public long getSettingsVersion()
      Specified by:
      getSettingsVersion in interface PamSettings
      Returns:
      An integer version number for the settings
    • getUnitName

      public String getUnitName()
      Specified by:
      getUnitName in interface SettingsNameProvider
      Returns:
      A Name specific to this instance of the particular class, e.g. Sperm whale detector, Beaked whale detector, etc.
    • getUnitType

      public String getUnitType()
      Specified by:
      getUnitType in interface PamSettings
      Returns:
      A Name specific to the type, e.g. Click detector
    • restoreSettings

      public boolean restoreSettings(PamControlledUnitSettings pamControlledUnitSettings)
      Specified by:
      restoreSettings in interface PamSettings
      Returns:
      true if successful The object performs final checks (if needed) and then casts the settings data pamcontrolledunitSettings.settings into the correct type and uses as required
    • getTaskGroupParams

      public TaskGroupParams getTaskGroupParams()
      Returns:
      the taskGroupParams
    • getDataTimeLimits

      public DataTimeLimits getDataTimeLimits()
      Returns:
      the dataTimeLimits
    • setDataTimeLimits

      public void setDataTimeLimits(DataTimeLimits dataTimeLimits)
      Parameters:
      dataTimeLimits - the dataTimeLimits to set
    • isTaskCancelled

      public boolean isTaskCancelled()
      Check whether the task has been cancelled. Sometime used if processing a data unit takes a long time and should be cancelled
      Returns:
      true if task has been cancelled.
    • setSuperDetectionFilter

      public void setSuperDetectionFilter(OfflineSuperDetFilter superDetectionFilter)
      Set a super detection filter (null if no super detection system available)
      Parameters:
      superDetectionFilter - Super detection filter.
    • getSuperDetectionFilter

      public OfflineSuperDetFilter getSuperDetectionFilter()
      Returns:
      the superDetectionFilter
    • clearTasks

      public void clearTasks()
      Clear all task from the task group. This also clears affected and required datablocks.