Interface NESTControlflowNodeObject
-
- All Superinterfaces:
Comparable<NESTGraphItemObject>,DataObject,NESTGraphItemObject,NESTNodeObject,NESTSequenceNodeObject,PropertyHandler
- All Known Subinterfaces:
NESTAndEndNodeObject,NESTAndStartNodeObject,NESTLoopEndNodeObject,NESTLoopStartNodeObject,NESTOrEndNodeObject,NESTOrStartNodeObject,NESTXorEndNodeObject,NESTXorStartNodeObject
- All Known Implementing Classes:
NESTAndEndNodeObjectImpl,NESTAndStartNodeObjectImpl,NESTControlflowNodeObjectImpl,NESTLoopEndNodeObjectImpl,NESTLoopStartNodeObjectImpl,NESTOrEndNodeObjectImpl,NESTOrStartNodeObjectImpl,NESTXorEndNodeObjectImpl,NESTXorStartNodeObjectImpl
public interface NESTControlflowNodeObject extends NESTSequenceNodeObject
Interface of a Controlflow-Node of a NEST-graph. Each control flow element in a workflow, such as split/join elements for and/xor blocks, are represented as a control-flow node. The semantic description of a control flow node specifies which control flow element is represented. Data-centric workflows may have no control flow nodes.- Author:
- Alexander Stromer
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Map<NESTSequenceNodeObject,Set<NESTSequenceNodeObject>>getBlockSequencePaths()Method to extract a map of possible paths and its elements of a block sequence e.g.Set<NESTSequenceNodeObject>getInnerBlockElements()NESTControlflowNodeObjectgetMatchingBlockControlflowNode()When the controlflow-node is located in a block-oriented controlflow the matching controlflow-node of the controlflow-block is returned.intgetNumberOfBranches()Returns the number of branches.intgetNumberOfNonEmptyBranches()Returns the number of branches ignoring direct controlflow edges between start and end controlflow nodes.booleanisAndEndNode()booleanisAndNode()booleanisAndStartNode()booleanisEndControlflowNode()Checks if the controlflow node is an end node (AND-join, XOR-join, LOOP-split).booleanisLoopEndNode()booleanisLoopNode()booleanisLoopStartNode()booleanisOrEndNode()booleanisOrNode()booleanisOrStartNode()booleanisStartControlflowNode()Checks if the controlflow node is a start node (AND-split, XOR-split, LOOP-join).booleanisXorEndNode()booleanisXorNode()booleanisXorStartNode()voidsetMatchingBlockControlflowNode(NESTControlflowNodeObject matchingBlockControlflowNode)Set a controlflow node as the matching block node.-
Methods inherited from interface java.lang.Comparable
compareTo
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.DataObject
assertSameValueAsIn, copy, getDataClass, getId, getModel, hasClassName, hasSameValueAsIn, hasSystemClassName, isAggregate, isAtomic, isBoolean, isByteArray, isChronologic, isCollection, isDataflowWrapper, isDataReference, isDate, isDouble, isInteger, isInterval, isKindOf, isList, isMemberOf, isNESTConstraintEdge, isNESTControlflowEdge, isNESTControlflowNode, isNESTDataflowEdge, isNESTDataNode, isNESTEdge, isNESTGraph, isNESTNode, isNESTPartOfEdge, isNESTSequenceNode, isNESTSequentialWorkflow, isNESTSubWorkflowNode, isNESTTaskNode, isNESTWorkflow, isNESTWorkflowNode, isNode, isNumeric, isSequence, isSet, isString, isSubWorkflow, isTask, isTime, isTimestamp, isUnion, isURI, isVoid, isWorkflow, removeId, setDataClass, setId, toDetailedString, toXML
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.NESTGraphItemObject
addSemanticValue, addSemanticValue, computeSemanticDescriptorSimilarity, equalId, getGraph, getSemanticDescriptor, getSemanticDescriptorBooleanValue, getSemanticDescriptorStringValue, getSemanticDescriptorValue, getSemanticValueRecursively, hasSemanticallyEqualDescriptor, hasSemanticallyEqualDescriptor, setGraph, setSemanticDescriptor, setSemanticDescriptorBooleanValue, setSemanticDescriptorStringValue, setSemanticDescriptorValue
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.NESTNodeObject
addIngoingEdge, addOutgoingEdge, getDirectParentNode, getEdges, getEdges, getIngoingEdges, getIngoingEdges, getOutgoingEdges, getOutgoingEdges, getParentNodes, isDirectPartOf, isPartOf, removeAllEdges, removeAllIngoingEdges, removeAllOutgoingEdges, removeIngoingEdge, removeOutgoingEdge
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.NESTSequenceNodeObject
getAllDataNodes, getAllDataNodes, getAllNextNodes, getAllNextNodes, getAllNextNodesOrdered, getAllNextNodesOrdered, getAllNextNodesTo, getAllNextNodesToOrdered, getAllNextTaskNodes, getAllNextTaskNodesOrdered, getAllPreviousNodes, getAllPreviousNodesOrdered, getAllPrevTaskNodes, getAllPrevTaskNodesOrdered, getInputDataNodes, getInputDataNodes, getNextNode, getNextNodes, getNextNodes, getNextNodesOrdered, getNextNodesOrdered, getNextTaskNodes, getNextTaskNodesOrdered, getOutputDataNodes, getOutputDataNodes, getPathsTo, getPathsToEnd, getPreviousNode, getPreviousNodes, getPreviousNodesOrdered, getPrevTaskNodes, getPrevTaskNodesOrdered, isPredecessorOf, isSuccessorOf
-
Methods inherited from interface de.uni_trier.wi2.procake.data.PropertyHandler
addProperty, addProperty, getAllProperties, getAllPropertyNodes, getProperty, getPropertyNames, getPropertyNode, getPropertyRootNode, hasProperties, removeProperty
-
-
-
-
Method Detail
-
isStartControlflowNode
boolean isStartControlflowNode()
Checks if the controlflow node is a start node (AND-split, XOR-split, LOOP-join).- Returns:
- true if the node is a start node, false otherwise
-
isEndControlflowNode
boolean isEndControlflowNode()
Checks if the controlflow node is an end node (AND-join, XOR-join, LOOP-split).- Returns:
- true if the node is an end node, false otherwise
-
getMatchingBlockControlflowNode
NESTControlflowNodeObject getMatchingBlockControlflowNode()
When the controlflow-node is located in a block-oriented controlflow the matching controlflow-node of the controlflow-block is returned.- Returns:
- matching controlflow-node in a block-oriented controlflow,
nullotherwise
-
setMatchingBlockControlflowNode
void setMatchingBlockControlflowNode(NESTControlflowNodeObject matchingBlockControlflowNode)
Set a controlflow node as the matching block node.- Parameters:
matchingBlockControlflowNode- Controlflow node, that should be the matching partner of the current node.
-
getNumberOfNonEmptyBranches
int getNumberOfNonEmptyBranches()
Returns the number of branches ignoring direct controlflow edges between start and end controlflow nodes.- Returns:
- number of non-empty branches
-
getNumberOfBranches
int getNumberOfBranches()
Returns the number of branches.- Returns:
- number of branches
-
isLoopNode
boolean isLoopNode()
- Returns:
-
isAndNode
boolean isAndNode()
- Returns:
-
isXorNode
boolean isXorNode()
- Returns:
-
isOrNode
boolean isOrNode()
- Returns:
-
isAndEndNode
boolean isAndEndNode()
-
isAndStartNode
boolean isAndStartNode()
-
isLoopStartNode
boolean isLoopStartNode()
-
isLoopEndNode
boolean isLoopEndNode()
-
isOrEndNode
boolean isOrEndNode()
-
isOrStartNode
boolean isOrStartNode()
-
isXorEndNode
boolean isXorEndNode()
-
isXorStartNode
boolean isXorStartNode()
-
getBlockSequencePaths
Map<NESTSequenceNodeObject,Set<NESTSequenceNodeObject>> getBlockSequencePaths()
Method to extract a map of possible paths and its elements of a block sequence e.g. a parallel branch contains two (or more) paths
-
getInnerBlockElements
Set<NESTSequenceNodeObject> getInnerBlockElements()
-
-