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 classPipelineTask.StatusNested classes/interfaces inherited from interface mgui.interfaces.xml.XMLObject
XMLObject.XMLEncoding, XMLObject.XMLType -
Field Summary
Fields Modifier and Type Field Description protected AttributeListattributesprotected longcurrentprotected longstartFields inherited from class mgui.interfaces.AbstractInterfaceObject
isDestroyed, tree_nodes -
Constructor Summary
Constructors Modifier Constructor Description protectedPipelineTask()protectedPipelineTask(java.lang.String name) -
Method Summary
Modifier and Type Method Description voidaddListener(PipelineTaskListener l)protected java.lang.Objectclone()intcompareTo(PipelineTask task)voidfireStatusChanged()Notifies this task's listeners that its status has changed.abstract java.awt.datatransfer.DataFlavorgetDataFlavor()java.lang.StringgetDTD()Returns the Data Type Declaration (DTD) for this object's XML representationlonggetElapsedTime()Returns the time, in milliseconds, elapsed since this task was started.abstract java.lang.StringgetFailureMessage()Message to display if this task failedjava.lang.StringgetLocalName()Returns the local name associated with this XML object.java.lang.StringgetName()Gets the name for this object.abstract InterfacePipelinegetPipeline()java.lang.StringgetPipelineTreeLabel()java.lang.StringgetShortXML(int tab)Returns a short XML representation of this object.PipelineTask.StatusgetStatus()Returns the status of this task; one of:NotStartedProcessingSuccessFailurejava.lang.StringgetStatusStr()Returns the status of this task as a string; one of:NotStartedProcessingSuccessFailureabstract java.lang.StringgetSuccessMessage()Message to display if this task terminated successfullyjava.lang.ObjectgetTransferData(java.awt.datatransfer.DataFlavor flavor)java.awt.datatransfer.DataFlavor[]getTransferDataFlavors()java.lang.StringgetXML()Returns this object's XML representation as a single string.java.lang.StringgetXML(int tab)Returns this object's XML representation as a single string.java.lang.StringgetXMLSchema()Returns the XML schema for this object's XML representationvoidhandleXMLElementEnd(java.lang.String localName)Handles the end of an XML element.voidhandleXMLElementStart(java.lang.String localName, org.xml.sax.Attributes attributes, XMLObject.XMLType type)Handles the start of an XML element.voidhandleXMLString(java.lang.String s)Handles a string within an XML element.booleaninterrupt()Attempts to terminate the execution of this task, if it is started, and sets its status toTerminated.booleanisDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)InterfaceTreeNodeissueTreeNode()Issues a new tree node and sets it usingAbstractInterfaceObject.setTreeNode(mgui.interfaces.trees.InterfaceTreeNode).abstract booleanlaunch()Launches this taskabstract booleanlaunch(boolean blocking)Launches this taskabstract booleanlaunch(java.lang.String instance, java.lang.String root)Launches this task with the given project instance and root directoryabstract booleanlaunch(java.lang.String instance, java.lang.String root, boolean blocking)Launches this task with the given project instance and root directorybooleanlaunch(java.lang.String instance, InterfaceProject project)Launches this task with the given project instance and projectabstract booleanlaunch(java.lang.String instance, InterfaceProject project, boolean blocking)voidremoveListener(PipelineTaskListener l)voidreset()Resets this task, and sets its status toNotStarted.voidsetName(java.lang.String name)Sets the name for this object.abstract voidsetPipeline(InterfacePipeline pipeline)protected voidsetStatus(PipelineTask.Status s)voidtreeNodeDetached(TaskTreeNodeEvent e)protected voidupdateListeners()voidwriteXML(int tab, java.io.Writer writer)Writes the XML representation of this object to file.voidwriteXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar)Writes the XML representation of this object to file, asXMLType.Normal.voidwriteXML(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, updateTreeNodesMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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:
compareToin interfacejava.lang.Comparable<PipelineTask>
-
setName
public void setName(java.lang.String name)Description copied from interface:NamedObjectSets the name for this object.- Specified by:
setNamein interfaceNamedObject- Overrides:
setNamein classAbstractInterfaceObject
-
getName
public java.lang.String getName()Description copied from interface:NamedObjectGets the name for this object.- Specified by:
getNamein interfaceNamedObject- Overrides:
getNamein classAbstractInterfaceObject- Returns:
-
getPipeline
-
setPipeline
-
getStatus
Returns the status of this task; one of:NotStartedProcessingSuccessFailure
- 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:NotStartedProcessingSuccessFailure
- 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:
treeNodeDetachedin 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:XMLObjectReturns 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:XMLObjectReturns the local name associated with this XML object.- Specified by:
getLocalNamein interfaceXMLObject- Returns:
-
getShortXML
public java.lang.String getShortXML(int tab)Description copied from interface:XMLObjectReturns a short XML representation of this object.- Specified by:
getShortXMLin interfaceXMLObject- Returns:
-
getXML
public java.lang.String getXML()Description copied from interface:XMLObjectReturns 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:XMLObjectReturns 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:XMLObjectReturns the XML schema for this object's XML representation- Specified by:
getXMLSchemain interfaceXMLObject- Returns:
-
handleXMLElementEnd
public void handleXMLElementEnd(java.lang.String localName)Description copied from interface:XMLObjectHandles the end of an XML element.- Specified by:
handleXMLElementEndin 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:XMLObjectHandles the start of an XML element.- Specified by:
handleXMLElementStartin interfaceXMLObject- Parameters:
localName- Local name of the elementattributes- Set of element attributestype- TheXMLTypeof this element
-
handleXMLString
public void handleXMLString(java.lang.String s)Description copied from interface:XMLObjectHandles a string within an XML element.- Specified by:
handleXMLStringin interfaceXMLObject- Parameters:
s- String to handle
-
writeXML
public void writeXML(int tab, java.io.Writer writer) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites 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.Asciiwill be used. -
writeXML
public void writeXML(int tab, java.io.Writer writer, ProgressUpdater progress_bar) throws java.io.IOExceptionDescription copied from interface:XMLObjectWrites the XML representation of this object to file, asXMLType.Normal. The default format ofXMLFormat.Asciiwill 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:XMLObjectWrites 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.Asciiwill 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:
getTransferDatain interfacejava.awt.datatransfer.Transferable- Throws:
java.awt.datatransfer.UnsupportedFlavorExceptionjava.io.IOException
-
getTransferDataFlavors
public java.awt.datatransfer.DataFlavor[] getTransferDataFlavors()- Specified by:
getTransferDataFlavorsin interfacejava.awt.datatransfer.Transferable
-
isDataFlavorSupported
public boolean isDataFlavorSupported(java.awt.datatransfer.DataFlavor flavor)- Specified by:
isDataFlavorSupportedin interfacejava.awt.datatransfer.Transferable
-
clone
protected java.lang.Object clone() throws java.lang.CloneNotSupportedException- Overrides:
clonein classjava.lang.Object- Throws:
java.lang.CloneNotSupportedException
-
issueTreeNode
Description copied from class:AbstractInterfaceObjectIssues 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:
issueTreeNodein interfaceTreeObject- Overrides:
issueTreeNodein classAbstractInterfaceObject- Returns:
- a new
InterfaceTreeNode
-