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.
  • Method Details

    • 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 inserted
      preNode - new node is inserted behind this predecessor node in the controlflow
      succNode - new node is inserted before this successor node in the controlflow
      controlflowEdgeSemanticDescriptor -
      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

      Inserts a new controlflow block into the NEST graph by using the given parameters.
      Parameters:
      startNode - start node
      endNode - end node
      Returns:
      the NESTWorkflowModifier.NESTControlflowNodePair that 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 -