Class PipelineTask

java.lang.Object
mgui.interfaces.AbstractInterfaceObject
mgui.pipelines.PipelineTask
All Implemented Interfaces:
java.awt.datatransfer.Transferable, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<PipelineTask>, InterfaceObject, NamedObject, TaskTreeNodeListener, TreeObject, CleanableObject, XMLObject, IconObject
Direct Known Subclasses:
InterfacePipeline, PipelineFork, PipelineProcessInstance

public abstract class PipelineTask
extends AbstractInterfaceObject
implements IconObject, java.io.Serializable, TaskTreeNodeListener, XMLObject, java.lang.Cloneable, java.awt.datatransfer.Transferable, java.lang.Comparable<PipelineTask>
A task is a launchable component of a pipeline. Tasks can be either pipelines themselves or the process instances that execute data processing.
Since:
1.0
Version:
1.0
Author:
Andrew Reid
See Also:
Serialized Form
  • Field Details

    • start

      protected long start
    • current

      protected long current
    • attributes

      protected AttributeList attributes
  • Constructor Details

    • PipelineTask

      protected PipelineTask()
    • PipelineTask

      protected PipelineTask​(java.lang.String name)
  • Method Details

    • compareTo

      public int compareTo​(PipelineTask task)
      Specified by:
      compareTo in interface java.lang.Comparable<PipelineTask>
    • setName

      public void setName​(java.lang.String name)
      Description copied from interface: NamedObject
      Sets the name for this object.
      Specified by:
      setName in interface NamedObject
      Overrides:
      setName in class AbstractInterfaceObject
    • getName

      public java.lang.String getName()
      Description copied from interface: NamedObject
      Gets the name for this object.
      Specified by:
      getName in interface NamedObject
      Overrides:
      getName in class AbstractInterfaceObject
      Returns:
    • getPipeline

      public abstract InterfacePipeline getPipeline()
    • setPipeline

      public abstract void setPipeline​(InterfacePipeline pipeline)
    • getStatus

      public PipelineTask.Status getStatus()
      Returns the status of this task; one of:
      • NotStarted
      • Processing
      • Success
      • Failure
      Returns:
    • reset

      public void reset()
      Resets this task, and sets its status to NotStarted.
    • interrupt

      public boolean interrupt() throws PipelineException
      Attempts to terminate the execution of this task, if it is started, and sets its status to Terminated.
      Throws:
      PipelineException
    • getElapsedTime

      public long getElapsedTime()
      Returns the time, in milliseconds, elapsed since this task was started.
      Returns:
    • getStatusStr

      public java.lang.String getStatusStr()
      Returns the status of this task as a string; one of:
      • NotStarted
      • Processing
      • Success
      • Failure
      Returns:
    • getPipelineTreeLabel

      public java.lang.String getPipelineTreeLabel()
    • setStatus

      protected void setStatus​(PipelineTask.Status s)
    • fireStatusChanged

      public void fireStatusChanged()
      Notifies this task's listeners that its status has changed.
    • updateListeners

      protected void updateListeners()
    • addListener

      public void addListener​(PipelineTaskListener l)
    • removeListener

      public void removeListener​(PipelineTaskListener l)
    • treeNodeDetached

      public void treeNodeDetached​(TaskTreeNodeEvent e)
      Specified by:
      treeNodeDetached in interface TaskTreeNodeListener
    • getSuccessMessage

      public abstract java.lang.String getSuccessMessage()
      Message to display if this task terminated successfully
      Returns:
    • getFailureMessage

      public abstract java.lang.String getFailureMessage()
      Message to display if this task failed
      Returns:
    • launch

      public abstract boolean launch() throws PipelineException
      Launches this task
      Returns:
      true, if this launch was successful
      Throws:
      PipelineException - If some exception was encountered during execution
    • launch

      public abstract boolean launch​(java.lang.String instance, java.lang.String root) throws PipelineException
      Launches this task with the given project instance and root directory
      Parameters:
      instance - The project instance for which to launch this task
      root - The project root directory
      Returns:
      true, if this launch was successful
      Throws:
      PipelineException - If some exception was encountered during execution
    • launch

      public abstract boolean launch​(boolean blocking) throws PipelineException
      Launches this task
      Parameters:
      blocking - Indicates whether this task should block or return immediately
      Returns:
      true, if this launch was successful
      Throws:
      PipelineException - If some exception was encountered during execution
    • launch

      public abstract boolean launch​(java.lang.String instance, java.lang.String root, boolean blocking) throws PipelineException
      Launches this task with the given project instance and root directory
      Parameters:
      instance - The project instance for which to launch this task
      root - The project root directory
      blocking - Indicates whether this task should block or return immediately
      Returns:
      true, if this launch was successful
      Throws:
      PipelineException - If some exception was encountered during execution
    • launch

      public boolean launch​(java.lang.String instance, InterfaceProject project) throws PipelineException
      Launches this task with the given project instance and project
      Parameters:
      instance -
      project -
      Returns:
      Throws:
      PipelineException
    • launch

      public abstract boolean launch​(java.lang.String instance, InterfaceProject project, boolean blocking) throws PipelineException
      Throws:
      PipelineException
    • getDTD

      public java.lang.String getDTD()
      Description copied from interface: XMLObject
      Returns the Data Type Declaration (DTD) for this object's XML representation

      See http://en.wikipedia.org/wiki/Document_Type_Definition for a description.

      Specified by:
      getDTD in interface XMLObject
      Returns:
    • getLocalName

      public java.lang.String getLocalName()
      Description copied from interface: XMLObject
      Returns the local name associated with this XML object.
      Specified by:
      getLocalName in interface XMLObject
      Returns:
    • getShortXML

      public java.lang.String getShortXML​(int tab)
      Description copied from interface: XMLObject
      Returns a short XML representation of this object.
      Specified by:
      getShortXML in interface XMLObject
      Returns:
    • getXML

      public java.lang.String getXML()
      Description copied from interface: XMLObject
      Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Returns:
    • getXML

      public java.lang.String getXML​(int tab)
      Description copied from interface: XMLObject
      Returns this object's XML representation as a single string. NOTE: this is not feasible for larger objects and containers, thus may not be implemented for these objects. Use the XMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater) functions to write larger objects to file.
      Specified by:
      getXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the opening XML wrapper
      Returns:
    • getXMLSchema

      public java.lang.String getXMLSchema()
      Description copied from interface: XMLObject
      Returns the XML schema for this object's XML representation

      See http://en.wikipedia.org/wiki/XML_schema.

      Specified by:
      getXMLSchema in interface XMLObject
      Returns:
    • handleXMLElementEnd

      public void handleXMLElementEnd​(java.lang.String localName)
      Description copied from interface: XMLObject
      Handles the end of an XML element.
      Specified by:
      handleXMLElementEnd in interface XMLObject
      Parameters:
      localName - Local name of the element
    • handleXMLElementStart

      public void handleXMLElementStart​(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
      Description copied from interface: XMLObject
      Handles the start of an XML element.
      Specified by:
      handleXMLElementStart in interface XMLObject
      Parameters:
      localName - Local name of the element
      attributes - Set of element attributes
      type - The XMLType of this element
    • handleXMLString

      public void handleXMLString​(java.lang.String s)
      Description copied from interface: XMLObject
      Handles a string within an XML element.
      Specified by:
      handleXMLString in interface XMLObject
      Parameters:
      s - String to handle
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file, as XMLType.Normal. The default format of XMLFormat.Ascii will be used. The basic contract for this method is that it should not write a newline character at its start or end.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • writeXML

      public void writeXML​(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOException
      Description copied from interface: XMLObject
      Writes the XML representation of this object to file. The basic contract for this method is that it should not write a newline character at its start or end. The default format of XMLFormat.Ascii will be used.
      Specified by:
      writeXML in interface XMLObject
      Parameters:
      tab - The number of tabs to place before the XML text
      writer - The writer
      options - XMLOutputOptions defining the write parameters
      progress_bar - Optional progress updater (may be null)
      Throws:
      java.io.IOException
    • getDataFlavor

      public abstract java.awt.datatransfer.DataFlavor getDataFlavor()
    • getTransferData

      public java.lang.Object getTransferData​(java.awt.datatransfer.DataFlavor flavor) throws java.awt.datatransfer.UnsupportedFlavorException, java.io.IOException
      Specified by:
      getTransferData in interface java.awt.datatransfer.Transferable
      Throws:
      java.awt.datatransfer.UnsupportedFlavorException
      java.io.IOException
    • getTransferDataFlavors

      public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()
      Specified by:
      getTransferDataFlavors in interface java.awt.datatransfer.Transferable
    • isDataFlavorSupported

      public boolean isDataFlavorSupported​(java.awt.datatransfer.DataFlavor flavor)
      Specified by:
      isDataFlavorSupported in interface java.awt.datatransfer.Transferable
    • clone

      protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
      Overrides:
      clone in class java.lang.Object
      Throws:
      java.lang.CloneNotSupportedException
    • issueTreeNode

      public InterfaceTreeNode issueTreeNode()
      Description copied from class: AbstractInterfaceObject
      Issues a new tree node and sets it using AbstractInterfaceObject.setTreeNode(mgui.interfaces.trees.InterfaceTreeNode). The tree node is stored in this object, which facilitates their destruction when necessary (e.g., when this object is destroyed). All issued tree nodes can informed of changes to their user object using the method AbstractInterfaceObject.updateTreeNodes().
      Specified by:
      issueTreeNode in interface TreeObject
      Overrides:
      issueTreeNode in class AbstractInterfaceObject
      Returns:
      a new InterfaceTreeNode