Interface NESTAbstractWorkflowModifier
-
- All Superinterfaces:
NESTGraphModifier
- All Known Subinterfaces:
NESTWorkflowModifier
- All Known Implementing Classes:
NESTAbstractWorkflowModifierImpl,NESTWorkflowModifierImpl
public interface NESTAbstractWorkflowModifier extends NESTGraphModifier
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleandropBlockSequenceNode(NESTNodeObject node)Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.booleandropBlockSequenceNode(String id)Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.StringgetDefaultConstraintEdgeClassName()StringgetDefaultControlflowEdgeClassName()StringgetDefaultDataflowEdgeClassName()StringgetDefaultDataNodeClassName()StringgetDefaultPartOfEdgeClassName()StringgetDefaultSubWorkflowNodeClassName()StringgetDefaultTaskNodeClassName()StringgetDefaultWorkflowNodeClassName()NESTEdgeObjectinsertNewConstraintEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)Inserts a new constraint edge between the given graph nodes.NESTEdgeObjectinsertNewControlflowEdge(NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, DataObject semanticDescriptor)Adds a controlflow edge between the given graph nodes.NESTEdgeObjectinsertNewDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)Inserts a new dataflow edge between the given graph nodes.NESTDataNodeObjectinsertNewDataNode(DataObject semanticDescriptor)Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.NESTDataNodeObjectinsertNewDataNode(String dataNodeClassName, DataObject semanticDescriptor)Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.<t extends NESTNodeObject>
tinsertNewNode(String nodeClassName, NESTNodeObject parentWorkflowNode, DataObject semanticDescriptor, DataObject partOfEdgeSemanticDescriptor)NESTEdgeObjectinsertNewPartOfEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)Inserts a new part-of edge between the given graph nodes.NESTSubWorkflowNodeObjectinsertNewSubWorkflowNode(NESTNodeObject parentWorkflowNode, DataObject semanticDescription)Inserts a new subworkflow node in the nest graph.NESTTaskNodeObjectinsertNewTaskNode(DataObject semanticDescriptor)Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.NESTTaskNodeObjectinsertNewTaskNode(String taskNodeClassName, DataObject semanticDescriptor)Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.NESTWorkflowNodeObjectinsertNewWorkflowNode(DataObject semanticDescriptor)Creates a new workflow node within the graph with the given semantic description.NESTWorkflowNodeObjectinsertNewWorkflowNode(String workflowNodeClassName, DataObject semanticDescriptor)Creates a new workflow node within the graph with the given semantic description.Map<String,String>insertSubgraph(NESTAbstractWorkflowObject subgraphToInsert, NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, NESTNodeObject parentNode)Adds a given sub-graph into a target graph this modifier is responsible for.voidremoveControlflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)Removes the controlflow-edge between the given graph nodes.voidremoveDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)Removes the dataflow-edge between the given graph nodes.booleanremoveDataNode(NESTDataNodeObject dataNode)Removes a semantic equal node of the given node from the graph.voidremoveSubgraph(NESTWorkflowObject subgraphToRemove)Removes the given subgraph from the parent graph.booleanremoveSubWorkflowNode(NESTSubWorkflowNodeObject subWorkflowNode)Removes the given node from the graph and adjusts the part-of hierarchy accordingly.booleanremoveTaskNode(NESTTaskNodeObject taskNode)Removes a semantic equal node of the given node from the graph.voidremoveUnproductiveTasks()Removes unproductive task nodes, i.e., tasks that do not have any ingoing or outgoing data-flow edgesvoidremoveUnusedDataObjects()Removes unused data objects i.e.voidsetDefaultConstraintEdgeClassName(String defaultConstraintEdgeClassName)voidsetDefaultControlflowEdgeClassName(String defaultControlflowEdgeClassName)voidsetDefaultDataflowEdgeClassName(String defaultDataflowEdgeClassName)voidsetDefaultDataNodeClassName(String defaultDataNodeClassName)voidsetDefaultPartOfEdgeClassName(String defaultPartOfEdgeClassName)voidsetDefaultSubWorkflowNodeClassName(String defaultSubWorkflowNodeClassName)voidsetDefaultTaskNodeClassName(String defaultTaskNodeClassName)voidsetDefaultWorkflowNodeClassName(String defaultWorkflowNodeClassName)-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.utils.NESTGraphModifier
extractPartialGraph, insertNewEdge, insertNewNode, removeEdge, removeNode
-
-
-
-
Method Detail
-
getDefaultWorkflowNodeClassName
String getDefaultWorkflowNodeClassName()
-
setDefaultWorkflowNodeClassName
void setDefaultWorkflowNodeClassName(String defaultWorkflowNodeClassName)
-
getDefaultSubWorkflowNodeClassName
String getDefaultSubWorkflowNodeClassName()
-
setDefaultSubWorkflowNodeClassName
void setDefaultSubWorkflowNodeClassName(String defaultSubWorkflowNodeClassName)
-
getDefaultTaskNodeClassName
String getDefaultTaskNodeClassName()
-
setDefaultTaskNodeClassName
void setDefaultTaskNodeClassName(String defaultTaskNodeClassName)
-
getDefaultDataNodeClassName
String getDefaultDataNodeClassName()
-
setDefaultDataNodeClassName
void setDefaultDataNodeClassName(String defaultDataNodeClassName)
-
getDefaultControlflowEdgeClassName
String getDefaultControlflowEdgeClassName()
-
setDefaultControlflowEdgeClassName
void setDefaultControlflowEdgeClassName(String defaultControlflowEdgeClassName)
-
getDefaultPartOfEdgeClassName
String getDefaultPartOfEdgeClassName()
-
setDefaultPartOfEdgeClassName
void setDefaultPartOfEdgeClassName(String defaultPartOfEdgeClassName)
-
getDefaultDataflowEdgeClassName
String getDefaultDataflowEdgeClassName()
-
setDefaultDataflowEdgeClassName
void setDefaultDataflowEdgeClassName(String defaultDataflowEdgeClassName)
-
getDefaultConstraintEdgeClassName
String getDefaultConstraintEdgeClassName()
-
setDefaultConstraintEdgeClassName
void setDefaultConstraintEdgeClassName(String defaultConstraintEdgeClassName)
-
insertNewNode
<t extends NESTNodeObject> t insertNewNode(String nodeClassName, NESTNodeObject parentWorkflowNode, DataObject semanticDescriptor, DataObject partOfEdgeSemanticDescriptor)
- Parameters:
nodeClassName- StringparentWorkflowNode- NESTNodeObjectsemanticDescriptor- DataObjectpartOfEdgeSemanticDescriptor-- Returns:
- NESTNodeObject
-
insertNewWorkflowNode
NESTWorkflowNodeObject insertNewWorkflowNode(DataObject semanticDescriptor)
Creates a new workflow node within the graph with the given semantic description.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewWorkflowNode
NESTWorkflowNodeObject insertNewWorkflowNode(String workflowNodeClassName, DataObject semanticDescriptor)
Creates a new workflow node within the graph with the given semantic description.- Parameters:
workflowNodeClassName- The name of the custom workflow node classsemanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewTaskNode
NESTTaskNodeObject insertNewTaskNode(DataObject semanticDescriptor)
Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewDataNode
NESTDataNodeObject insertNewDataNode(DataObject semanticDescriptor)
Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewTaskNode
NESTTaskNodeObject insertNewTaskNode(String taskNodeClassName, DataObject semanticDescriptor)
Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.- Parameters:
taskNodeClassName- The name of the custom task node classsemanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewDataNode
NESTDataNodeObject insertNewDataNode(String dataNodeClassName, DataObject semanticDescriptor)
Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.- Parameters:
dataNodeClassName- The name of the custom task node classsemanticDescriptor- The semantic description of the new node.- Returns:
-
removeUnproductiveTasks
void removeUnproductiveTasks()
Removes unproductive task nodes, i.e., tasks that do not have any ingoing or outgoing data-flow edges
-
removeUnusedDataObjects
void removeUnusedDataObjects()
Removes unused data objects i.e. they have no ingoing and outgoing edges.
-
dropBlockSequenceNode
boolean dropBlockSequenceNode(NESTNodeObject node)
Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.- Parameters:
node-- Returns:
-
dropBlockSequenceNode
boolean dropBlockSequenceNode(String id)
Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.- Parameters:
id-- Returns:
-
removeSubgraph
void removeSubgraph(NESTWorkflowObject subgraphToRemove)
Removes the given subgraph from the parent graph.- Parameters:
subgraphToRemove- the subgraph that should be removed
-
insertNewControlflowEdge
NESTEdgeObject insertNewControlflowEdge(NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, DataObject semanticDescriptor)
Adds a controlflow edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.semanticDescriptor-
-
insertNewDataflowEdge
NESTEdgeObject insertNewDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
Inserts a new dataflow edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.semanticDescriptor-
-
insertNewPartOfEdge
NESTEdgeObject insertNewPartOfEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
Inserts a new part-of edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.semanticDescriptor-
-
insertNewConstraintEdge
NESTEdgeObject insertNewConstraintEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
Inserts a new constraint edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.semanticDescriptor-
-
removeControlflowEdge
void removeControlflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)
Removes the controlflow-edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.
-
removeDataflowEdge
void removeDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)
Removes the dataflow-edge between the given graph nodes.- Parameters:
preNode- The node on the left (previous) side of the edge.postNode- The node on the right (next) side of the edge.
-
insertNewSubWorkflowNode
NESTSubWorkflowNodeObject insertNewSubWorkflowNode(NESTNodeObject parentWorkflowNode, DataObject semanticDescription)
Inserts a new subworkflow node in the nest graph. The new node will be linked to the given parent workflow node by a part-of edge. A parent node can be either a workflow or a subworkflow node.- Parameters:
parentWorkflowNode-semanticDescription-- Returns:
-
removeDataNode
boolean removeDataNode(NESTDataNodeObject dataNode)
Removes a semantic equal node of the given node from the graph.- Parameters:
dataNode-- Returns:
-
removeTaskNode
boolean removeTaskNode(NESTTaskNodeObject taskNode)
Removes a semantic equal node of the given node from the graph.- Parameters:
taskNode-- Returns:
-
removeSubWorkflowNode
boolean removeSubWorkflowNode(NESTSubWorkflowNodeObject subWorkflowNode)
Removes the given node from the graph and adjusts the part-of hierarchy accordingly.- Parameters:
subWorkflowNode-- Returns:
-
insertSubgraph
Map<String,String> insertSubgraph(NESTAbstractWorkflowObject subgraphToInsert, NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, NESTNodeObject parentNode)
Adds a given sub-graph into a target graph this modifier is responsible for. A parent node (of the target graph) can be set. Otherwise, the workflow node of the target workflow is used as parent node The pre node and the post node are nodes that will be connected to the start node or the end node, respectively. All nodes and edges of the sub-graph will be copied into the target graph. Consequently, the ids will be altered! A map that contains the old-to-new-mapping-ID's is returned by this method.- Parameters:
subgraphToInsert- the sub-graph that should be added to the target graphpreNode- node of the target graph; this node will be connected to the start node of the sub-graph with a control-flow edge. If preNode is null, no control-flow edge is inserted.postNode- node of the target graph; the end node of the sub-graph will be connected to this node with a control-flow edge. If postNode is null, no control-flow edge is inserted.parentNode- workflow node or sub-workflow node of the target graph; all nodes that were previously connected to the workflow node of the sub-graph will be linked to the parent node via part-of edges. If parentNode is null, the workflow node of the target workflow is used as parent node.- Returns:
- a map that contains the old-to-new-mapping-ID's
-
-