Package mgui.pipelines
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
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PipelineTask.Status
Nested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject
XMLObject.XMLEncoding, XMLObject.XMLType
-
Field Summary
Fields Modifier and Type Field Description protected AttributeList
attributes
protected long
current
protected long
start
Fields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes
-
Constructor Summary
Constructors Modifier Constructor Description protected
PipelineTask()
protected
PipelineTask(java.lang.String name)
-
Method Summary
Modifier and Type Method Description void
addListener(PipelineTaskListener l)
protected java.lang.Object
clone()
int
compareTo(PipelineTask task)
void
fireStatusChanged()
Notifies this task's listeners that its status has changed.abstract java.awt.datatransfer.DataFlavor
getDataFlavor()
java.lang.String
getDTD()
Returns the Data Type Declaration (DTD) for this object's XML representationlong
getElapsedTime()
Returns the time, in milliseconds, elapsed since this task was started.abstract java.lang.String
getFailureMessage()
Message to display if this task failedjava.lang.String
getLocalName()
Returns the local name associated with this XML object.java.lang.String
getName()
Gets the name for this object.abstract InterfacePipeline
getPipeline()
java.lang.String
getPipelineTreeLabel()
java.lang.String
getShortXML(int tab)
Returns a short XML representation of this object.PipelineTask.Status
getStatus()
Returns the status of this task; one of:NotStarted
Processing
Success
Failure
java.lang.String
getStatusStr()
Returns the status of this task as a string; one of:NotStarted
Processing
Success
Failure
abstract java.lang.String
getSuccessMessage()
Message to display if this task terminated successfullyjava.lang.Object
getTransferData(java.awt.datatransfer.DataFlavor flavor)
java.awt.datatransfer.DataFlavor[]
getTransferDataFlavors()
java.lang.String
getXML()
Returns this object's XML representation as a single string.java.lang.String
getXML(int tab)
Returns this object's XML representation as a single string.java.lang.String
getXMLSchema()
Returns the XML schema for this object's XML representationvoid
handleXMLElementEnd(java.lang.String localName)
Handles the end of an XML element.void
handleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)
Handles the start of an XML element.void
handleXMLString(java.lang.String s)
Handles a string within an XML element.boolean
interrupt()
Attempts to terminate the execution of this task, if it is started, and sets its status toTerminated
.boolean
isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)
InterfaceTreeNode
issueTreeNode()
Issues a new tree node and sets it usingAbstractInterfaceObject.setTreeNode(mgui.interfaces.trees.InterfaceTreeNode)
.abstract boolean
launch()
Launches this taskabstract boolean
launch(boolean blocking)
Launches this taskabstract boolean
launch(java.lang.String instance, java.lang.String root)
Launches this task with the given project instance and root directoryabstract boolean
launch(java.lang.String instance, java.lang.String root, boolean blocking)
Launches this task with the given project instance and root directoryboolean
launch(java.lang.String instance, InterfaceProject project)
Launches this task with the given project instance and projectabstract boolean
launch(java.lang.String instance, InterfaceProject project, boolean blocking)
void
removeListener(PipelineTaskListener l)
void
reset()
Resets this task, and sets its status toNotStarted
.void
setName(java.lang.String name)
Sets the name for this object.abstract void
setPipeline(InterfacePipeline pipeline)
protected void
setStatus(PipelineTask.Status s)
void
treeNodeDetached(TaskTreeNodeEvent e)
protected void
updateListeners()
void
writeXML(int tab, java.io.Writer writer)
Writes the XML representation of this object to file.void
writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)
Writes the XML representation of this object to file, asXMLType.Normal
.void
writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar)
Writes the XML representation of this object to file.Methods inherited from class mgui.interfaces.AbstractInterfaceObject
clean, destroy, getTreeLabel, isDestroyed, setTreeNode, updateTreeNodes
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface mgui.resources.icons.IconObject
getObjectIcon
-
Field Details
-
start
protected long start -
current
protected long current -
attributes
-
-
Constructor Details
-
PipelineTask
protected PipelineTask() -
PipelineTask
protected PipelineTask(java.lang.String name)
-
-
Method Details
-
compareTo
- Specified by:
compareTo
in interfacejava.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 interfaceNamedObject
- Overrides:
setName
in classAbstractInterfaceObject
-
getName
public java.lang.String getName()Description copied from interface:NamedObject
Gets the name for this object.- Specified by:
getName
in interfaceNamedObject
- Overrides:
getName
in classAbstractInterfaceObject
- Returns:
-
getPipeline
-
setPipeline
-
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 toNotStarted
. -
interrupt
Attempts to terminate the execution of this task, if it is started, and sets its status toTerminated
.- 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
-
fireStatusChanged
public void fireStatusChanged()Notifies this task's listeners that its status has changed. -
updateListeners
protected void updateListeners() -
addListener
-
removeListener
-
treeNodeDetached
- Specified by:
treeNodeDetached
in interfaceTaskTreeNodeListener
-
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
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 PipelineExceptionLaunches this task with the given project instance and root directory- Parameters:
instance
- The project instance for which to launch this taskroot
- The project root directory- Returns:
true
, if this launch was successful- Throws:
PipelineException
- If some exception was encountered during execution
-
launch
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 PipelineExceptionLaunches this task with the given project instance and root directory- Parameters:
instance
- The project instance for which to launch this taskroot
- The project root directoryblocking
- 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 PipelineExceptionLaunches 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 representationSee http://en.wikipedia.org/wiki/Document_Type_Definition for a description.
-
getLocalName
public java.lang.String getLocalName()Description copied from interface:XMLObject
Returns the local name associated with this XML object.- Specified by:
getLocalName
in interfaceXMLObject
- 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 interfaceXMLObject
- 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 theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)
functions to write larger objects to file. -
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 theXMLObject.writeXML(int,java.io.Writer,mgui.io.standard.xml.XMLOutputOptions,mgui.interfaces.ProgressUpdater)
functions to write larger objects to file. -
getXMLSchema
public java.lang.String getXMLSchema()Description copied from interface:XMLObject
Returns the XML schema for this object's XML representation- Specified by:
getXMLSchema
in interfaceXMLObject
- 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 interfaceXMLObject
- 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 interfaceXMLObject
- Parameters:
localName
- Local name of the elementattributes
- Set of element attributestype
- TheXMLType
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 interfaceXMLObject
- Parameters:
s
- String to handle
-
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription 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 ofXMLFormat.Ascii
will be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObject
Writes the XML representation of this object to file, asXMLType.Normal
. The default format ofXMLFormat.Ascii
will be used. The basic contract for this method is that it should not write a newline character at its start or end. -
writeXML
public void writeXML(int tab, java.io.Writer writer, XMLOutputOptions options, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription 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 ofXMLFormat.Ascii
will be used. -
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 interfacejava.awt.datatransfer.Transferable
- Throws:
java.awt.datatransfer.UnsupportedFlavorException
java.io.IOException
-
getTransferDataFlavors
public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()- Specified by:
getTransferDataFlavors
in interfacejava.awt.datatransfer.Transferable
-
isDataFlavorSupported
public boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)- Specified by:
isDataFlavorSupported
in interfacejava.awt.datatransfer.Transferable
-
clone
protected java.lang.Object clone() throws java.lang.CloneNotSupportedException- Overrides:
clone
in classjava.lang.Object
- Throws:
java.lang.CloneNotSupportedException
-
issueTreeNode
Description copied from class:AbstractInterfaceObject
Issues a new tree node and sets it usingAbstractInterfaceObject.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 methodAbstractInterfaceObject.updateTreeNodes()
.- Specified by:
issueTreeNode
in interfaceTreeObject
- Overrides:
issueTreeNode
in classAbstractInterfaceObject
- Returns:
- a new
InterfaceTreeNode
-