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 Details

    • 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, null otherwise
    • 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

      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()