Interface NESTWorkflowModifier
- All Superinterfaces:
NESTAbstractWorkflowModifier
,NESTGraphModifier
- All Known Implementing Classes:
NESTWorkflowModifierImpl
Interface of the basic nest workflow modifier. It provides fundamental and domain-independent
methods to modify a nest workflow graph.
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
Interface of a controlflow node pair consisting of a start and its corresponding end node. -
Method Summary
Modifier and TypeMethodDescriptionboolean
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.insertNewAndEndNode
(DataObject semanticDescriptor) Creates a new and join node.insertNewAndSequence
(DataObject semDescrSplit, DataObject semDescrJoin) Inserts a new AND (parallel execution) sequence into the graph.insertNewAndStartNode
(DataObject semanticDescriptor) Creates a new and split node.insertNewControlflowNodePair
(NESTControlflowNodeObject startNode, NESTControlflowNodeObject endNode) Inserts a new controlflow block into the NEST graph by using the given parameters.insertNewLoopEndNode
(DataObject semanticDescriptor) Creates a new loop split node.insertNewLoopSequence
(DataObject semDescrJoin, DataObject semDescrSplit) Inserts a new LOOP (execution multiple times) sequence into the graph.insertNewLoopStartNode
(DataObject semanticDescriptor) Creates a new loop join node.insertNewOrEndNode
(DataObject semanticDescriptor) Creates a new or join node.insertNewOrSequence
(DataObject semDescrSplit, DataObject semDescrJoin) Inserts a new OR sequence into the graph.insertNewOrStartNode
(DataObject semanticDescriptor) Creates a new or split node.insertNewXorEndNode
(DataObject semanticDescriptor) Creates a new xor join node.insertNewXorSequence
(DataObject semDescrSplit, DataObject semDescrJoin) Inserts a new XOR (exclusive or) sequence into the graph.insertNewXorStartNode
(DataObject semanticDescriptor) Creates a new xor split node.void
removeControlflowBlock
(NESTControlflowNodeObject controlflowNode) void
removeControlflowBlockNodes
(NESTControlflowNodeObject startControlflowNode) Removes controlflow block nodes identified by the given start controlflow node.void
removeControlflowNodes
(NESTControlflowNodeObject controlflowNode) void
Removes direct links between from start controlflow nodes to end controlfow nodes, if there exists other branches in between.void
Removes unused controlflow blocks, if both branches are empty (no non-empty branch exists).void
setDefaultAndEndNodeClassName
(String defaultAndEndNodeClassName) void
setDefaultAndStartNodeClassName
(String defaultAndStartNodeClassName) void
setDefaultLoopEndNodeClassName
(String defaultLoopEndNodeClassName) void
setDefaultLoopStartNodeClassName
(String defaultLoopStartNodeClassName) void
setDefaultOrEndNodeClassName
(String defaultOrEndNodeClassName) void
setDefaultOrStartNodeClassName
(String defaultOrStartNodeClassName) void
setDefaultXorEndNodeClassName
(String defaultXorEndNodeClassName) void
setDefaultXorStartNodeClassName
(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 Details
-
getDefaultAndStartNodeClassName
String getDefaultAndStartNodeClassName() -
setDefaultAndStartNodeClassName
-
getDefaultAndEndNodeClassName
String getDefaultAndEndNodeClassName() -
setDefaultAndEndNodeClassName
-
getDefaultOrStartNodeClassName
String getDefaultOrStartNodeClassName() -
setDefaultOrStartNodeClassName
-
getDefaultOrEndNodeClassName
String getDefaultOrEndNodeClassName() -
setDefaultOrEndNodeClassName
-
getDefaultXorStartNodeClassName
String getDefaultXorStartNodeClassName() -
setDefaultXorStartNodeClassName
-
getDefaultXorEndNodeClassName
String getDefaultXorEndNodeClassName() -
setDefaultXorEndNodeClassName
-
getDefaultLoopStartNodeClassName
String getDefaultLoopStartNodeClassName() -
setDefaultLoopStartNodeClassName
-
getDefaultLoopEndNodeClassName
String getDefaultLoopEndNodeClassName() -
setDefaultLoopEndNodeClassName
-
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
Creates a new and split node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewAndEndNode
Creates a new and join node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewOrStartNode
Creates a new or split node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewOrEndNode
Creates a new or join node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewXorStartNode
Creates a new xor split node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewXorEndNode
Creates a new xor join node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewLoopStartNode
Creates a new loop join node.- Parameters:
semanticDescriptor
- The semantic description of the new node.- Returns:
-
insertNewLoopEndNode
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.NESTControlflowNodePair
that was inserted
-
removeControlflowBlock
- 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
- Parameters:
controlflowNode
-
-
removeControlflowBlockNodes
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
-
-