Interface NESTWorkflowModifier
-
- All Superinterfaces:
NESTAbstractWorkflowModifier,NESTGraphModifier
- All Known Implementing Classes:
NESTWorkflowModifierImpl
public interface NESTWorkflowModifier extends NESTAbstractWorkflowModifier
Interface of the basic nest workflow modifier. It provides fundamental and domain-independent methods to modify a nest workflow graph.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceNESTWorkflowModifier.NESTControlflowNodePairInterface of a controlflow node pair consisting of a start and its corresponding end node.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description StringgetDefaultAndEndNodeClassName()StringgetDefaultAndStartNodeClassName()StringgetDefaultLoopEndNodeClassName()StringgetDefaultLoopStartNodeClassName()StringgetDefaultOrEndNodeClassName()StringgetDefaultOrStartNodeClassName()StringgetDefaultXorEndNodeClassName()StringgetDefaultXorStartNodeClassName()booleaninsertBlockSequenceNode(NESTSequenceNodeObject newSequenceNode, NESTSequenceNodeObject preNode, NESTSequenceNodeObject succNode, DataObject controlflowEdgeSemanticDescriptor, DataObject partOfEdgeSemanticDescriptor)Inserts a given node between the given predecessor/ successor node in the related nest graph including all linking controlflow edges.NESTAndEndNodeObjectinsertNewAndEndNode(DataObject semanticDescriptor)Creates a new and join node.NESTWorkflowModifier.NESTControlflowNodePairinsertNewAndSequence(DataObject semDescrSplit, DataObject semDescrJoin)Inserts a new AND (parallel execution) sequence into the graph.NESTAndStartNodeObjectinsertNewAndStartNode(DataObject semanticDescriptor)Creates a new and split node.NESTWorkflowModifier.NESTControlflowNodePairinsertNewControlflowNodePair(NESTControlflowNodeObject startNode, NESTControlflowNodeObject endNode)Inserts a new controlflow block into the NEST graph by using the given parameters.NESTLoopEndNodeObjectinsertNewLoopEndNode(DataObject semanticDescriptor)Creates a new loop split node.NESTWorkflowModifier.NESTControlflowNodePairinsertNewLoopSequence(DataObject semDescrJoin, DataObject semDescrSplit)Inserts a new LOOP (execution multiple times) sequence into the graph.NESTLoopStartNodeObjectinsertNewLoopStartNode(DataObject semanticDescriptor)Creates a new loop join node.NESTOrEndNodeObjectinsertNewOrEndNode(DataObject semanticDescriptor)Creates a new or join node.NESTWorkflowModifier.NESTControlflowNodePairinsertNewOrSequence(DataObject semDescrSplit, DataObject semDescrJoin)Inserts a new OR sequence into the graph.NESTOrStartNodeObjectinsertNewOrStartNode(DataObject semanticDescriptor)Creates a new or split node.NESTXorEndNodeObjectinsertNewXorEndNode(DataObject semanticDescriptor)Creates a new xor join node.NESTWorkflowModifier.NESTControlflowNodePairinsertNewXorSequence(DataObject semDescrSplit, DataObject semDescrJoin)Inserts a new XOR (exclusive or) sequence into the graph.NESTXorStartNodeObjectinsertNewXorStartNode(DataObject semanticDescriptor)Creates a new xor split node.voidremoveControlflowBlock(NESTControlflowNodeObject controlflowNode)voidremoveControlflowBlockNodes(NESTControlflowNodeObject startControlflowNode)Removes controlflow block nodes identified by the given start controlflow node.voidremoveControlflowNodes(NESTControlflowNodeObject controlflowNode)voidremoveEmptyBlockLinks()Removes direct links between from start controlflow nodes to end controlfow nodes, if there exists other branches in between.voidremoveUnusedControlflowBlocks()Removes unused controlflow blocks, if both branches are empty (no non-empty branch exists).voidsetDefaultAndEndNodeClassName(String defaultAndEndNodeClassName)voidsetDefaultAndStartNodeClassName(String defaultAndStartNodeClassName)voidsetDefaultLoopEndNodeClassName(String defaultLoopEndNodeClassName)voidsetDefaultLoopStartNodeClassName(String defaultLoopStartNodeClassName)voidsetDefaultOrEndNodeClassName(String defaultOrEndNodeClassName)voidsetDefaultOrStartNodeClassName(String defaultOrStartNodeClassName)voidsetDefaultXorEndNodeClassName(String defaultXorEndNodeClassName)voidsetDefaultXorStartNodeClassName(String defaultXorStartNodeClassName)-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.utils.NESTAbstractWorkflowModifier
dropBlockSequenceNode, dropBlockSequenceNode, getDefaultConstraintEdgeClassName, getDefaultControlflowEdgeClassName, getDefaultDataflowEdgeClassName, getDefaultDataNodeClassName, getDefaultPartOfEdgeClassName, getDefaultSubWorkflowNodeClassName, getDefaultTaskNodeClassName, getDefaultWorkflowNodeClassName, insertNewConstraintEdge, insertNewControlflowEdge, insertNewDataflowEdge, insertNewDataNode, insertNewDataNode, insertNewNode, insertNewPartOfEdge, insertNewSubWorkflowNode, insertNewTaskNode, insertNewTaskNode, insertNewWorkflowNode, insertNewWorkflowNode, insertSubgraph, removeControlflowEdge, removeDataflowEdge, removeDataNode, removeSubgraph, removeSubWorkflowNode, removeTaskNode, removeUnproductiveTasks, removeUnusedDataObjects, setDefaultConstraintEdgeClassName, setDefaultControlflowEdgeClassName, setDefaultDataflowEdgeClassName, setDefaultDataNodeClassName, setDefaultPartOfEdgeClassName, setDefaultSubWorkflowNodeClassName, setDefaultTaskNodeClassName, setDefaultWorkflowNodeClassName
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.utils.NESTGraphModifier
extractPartialGraph, insertNewEdge, insertNewNode, removeEdge, removeNode
-
-
-
-
Method Detail
-
getDefaultAndStartNodeClassName
String getDefaultAndStartNodeClassName()
-
setDefaultAndStartNodeClassName
void setDefaultAndStartNodeClassName(String defaultAndStartNodeClassName)
-
getDefaultAndEndNodeClassName
String getDefaultAndEndNodeClassName()
-
setDefaultAndEndNodeClassName
void setDefaultAndEndNodeClassName(String defaultAndEndNodeClassName)
-
getDefaultOrStartNodeClassName
String getDefaultOrStartNodeClassName()
-
setDefaultOrStartNodeClassName
void setDefaultOrStartNodeClassName(String defaultOrStartNodeClassName)
-
getDefaultOrEndNodeClassName
String getDefaultOrEndNodeClassName()
-
setDefaultOrEndNodeClassName
void setDefaultOrEndNodeClassName(String defaultOrEndNodeClassName)
-
getDefaultXorStartNodeClassName
String getDefaultXorStartNodeClassName()
-
setDefaultXorStartNodeClassName
void setDefaultXorStartNodeClassName(String defaultXorStartNodeClassName)
-
getDefaultXorEndNodeClassName
String getDefaultXorEndNodeClassName()
-
setDefaultXorEndNodeClassName
void setDefaultXorEndNodeClassName(String defaultXorEndNodeClassName)
-
getDefaultLoopStartNodeClassName
String getDefaultLoopStartNodeClassName()
-
setDefaultLoopStartNodeClassName
void setDefaultLoopStartNodeClassName(String defaultLoopStartNodeClassName)
-
getDefaultLoopEndNodeClassName
String getDefaultLoopEndNodeClassName()
-
setDefaultLoopEndNodeClassName
void setDefaultLoopEndNodeClassName(String defaultLoopEndNodeClassName)
-
insertBlockSequenceNode
boolean insertBlockSequenceNode(NESTSequenceNodeObject newSequenceNode, NESTSequenceNodeObject preNode, NESTSequenceNodeObject succNode, DataObject controlflowEdgeSemanticDescriptor, DataObject partOfEdgeSemanticDescriptor)
Inserts a given node between the given predecessor/ successor node in the related nest graph including all linking controlflow edges. If a unique position for the new node is given by one node, the other one can be null.- Parameters:
newSequenceNode- The new node to be insertedpreNode- new node is inserted behind this predecessor node in the controlflowsuccNode- new node is inserted before this successor node in the controlflowcontrolflowEdgeSemanticDescriptor-partOfEdgeSemanticDescriptor-- Returns:
- true if operation was successful
-
insertNewAndStartNode
NESTAndStartNodeObject insertNewAndStartNode(DataObject semanticDescriptor)
Creates a new and split node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewAndEndNode
NESTAndEndNodeObject insertNewAndEndNode(DataObject semanticDescriptor)
Creates a new and join node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewOrStartNode
NESTOrStartNodeObject insertNewOrStartNode(DataObject semanticDescriptor)
Creates a new or split node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewOrEndNode
NESTOrEndNodeObject insertNewOrEndNode(DataObject semanticDescriptor)
Creates a new or join node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewXorStartNode
NESTXorStartNodeObject insertNewXorStartNode(DataObject semanticDescriptor)
Creates a new xor split node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewXorEndNode
NESTXorEndNodeObject insertNewXorEndNode(DataObject semanticDescriptor)
Creates a new xor join node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewLoopStartNode
NESTLoopStartNodeObject insertNewLoopStartNode(DataObject semanticDescriptor)
Creates a new loop join node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewLoopEndNode
NESTLoopEndNodeObject insertNewLoopEndNode(DataObject semanticDescriptor)
Creates a new loop split node.- Parameters:
semanticDescriptor- The semantic description of the new node.- Returns:
-
insertNewXorSequence
NESTWorkflowModifier.NESTControlflowNodePair insertNewXorSequence(DataObject semDescrSplit, DataObject semDescrJoin)
Inserts a new XOR (exclusive or) sequence into the graph. The sequence is not connected by any edges.- Parameters:
semDescrSplit- the semantic descriptor of the split node (start node)semDescrJoin- the semantic descriptor of the join node (end node)- Returns:
- a controlflow node pair containing the added sequence nodes
-
insertNewOrSequence
NESTWorkflowModifier.NESTControlflowNodePair insertNewOrSequence(DataObject semDescrSplit, DataObject semDescrJoin)
Inserts a new OR sequence into the graph. The sequence is not connected by any edges.- Parameters:
semDescrSplit- the semantic descriptor of the split node (start node)semDescrJoin- the semantic descriptor of the join node (end node)- Returns:
- a controlflow node pair containing the added sequence nodes
-
insertNewAndSequence
NESTWorkflowModifier.NESTControlflowNodePair insertNewAndSequence(DataObject semDescrSplit, DataObject semDescrJoin)
Inserts a new AND (parallel execution) sequence into the graph. The sequence is not connected by any edges.- Parameters:
semDescrSplit- the semantic descriptor of the split node (start node)semDescrJoin- the semantic descriptor of the join node (end node)- Returns:
- a controlflow node pair containing the added sequence nodes
-
insertNewLoopSequence
NESTWorkflowModifier.NESTControlflowNodePair insertNewLoopSequence(DataObject semDescrJoin, DataObject semDescrSplit)
Inserts a new LOOP (execution multiple times) sequence into the graph. The sequence is not connected by any edges. Please note, in loops the start node is the join node and the end node is the split node!- Parameters:
semDescrSplit- the semantic descriptor of the join node (start node)semDescrJoin- the semantic descriptor of the split node (end node)- Returns:
- a controlflow node pair containing the added sequence nodes
-
insertNewControlflowNodePair
NESTWorkflowModifier.NESTControlflowNodePair insertNewControlflowNodePair(NESTControlflowNodeObject startNode, NESTControlflowNodeObject endNode)
Inserts a new controlflow block into the NEST graph by using the given parameters.- Parameters:
startNode- start nodeendNode- end node- Returns:
- the
NESTWorkflowModifier.NESTControlflowNodePairthat was inserted
-
removeControlflowBlock
void removeControlflowBlock(NESTControlflowNodeObject controlflowNode)
- Parameters:
controlflowNode-
-
removeUnusedControlflowBlocks
void removeUnusedControlflowBlocks()
Removes unused controlflow blocks, if both branches are empty (no non-empty branch exists). Further removes AND blocks, if they only contain a single branch (2nd branch is empty).
-
removeEmptyBlockLinks
void removeEmptyBlockLinks()
Removes direct links between from start controlflow nodes to end controlfow nodes, if there exists other branches in between.
-
removeControlflowNodes
void removeControlflowNodes(NESTControlflowNodeObject controlflowNode)
- Parameters:
controlflowNode-
-
removeControlflowBlockNodes
void removeControlflowBlockNodes(NESTControlflowNodeObject startControlflowNode)
Removes controlflow block nodes identified by the given start controlflow node. The corresponding end controlflow node will be removed too, including edges that link directly from start controlflow node to end controlfow node- Parameters:
startControlflowNode-
-
-