Interface NESTAbstractWorkflowModifier

All Superinterfaces:
NESTGraphModifier
All Known Subinterfaces:
NESTWorkflowModifier
All Known Implementing Classes:
NESTAbstractWorkflowModifierImpl, NESTWorkflowModifierImpl

public interface NESTAbstractWorkflowModifier extends NESTGraphModifier
  • Method Details

    • getDefaultWorkflowNodeClassName

      String getDefaultWorkflowNodeClassName()
    • setDefaultWorkflowNodeClassName

      void setDefaultWorkflowNodeClassName(String defaultWorkflowNodeClassName)
    • getDefaultSubWorkflowNodeClassName

      String getDefaultSubWorkflowNodeClassName()
    • setDefaultSubWorkflowNodeClassName

      void setDefaultSubWorkflowNodeClassName(String defaultSubWorkflowNodeClassName)
    • getDefaultTaskNodeClassName

      String getDefaultTaskNodeClassName()
    • setDefaultTaskNodeClassName

      void setDefaultTaskNodeClassName(String defaultTaskNodeClassName)
    • getDefaultDataNodeClassName

      String getDefaultDataNodeClassName()
    • setDefaultDataNodeClassName

      void setDefaultDataNodeClassName(String defaultDataNodeClassName)
    • getDefaultControlflowEdgeClassName

      String getDefaultControlflowEdgeClassName()
    • setDefaultControlflowEdgeClassName

      void setDefaultControlflowEdgeClassName(String defaultControlflowEdgeClassName)
    • getDefaultPartOfEdgeClassName

      String getDefaultPartOfEdgeClassName()
    • setDefaultPartOfEdgeClassName

      void setDefaultPartOfEdgeClassName(String defaultPartOfEdgeClassName)
    • getDefaultDataflowEdgeClassName

      String getDefaultDataflowEdgeClassName()
    • setDefaultDataflowEdgeClassName

      void setDefaultDataflowEdgeClassName(String defaultDataflowEdgeClassName)
    • getDefaultConstraintEdgeClassName

      String getDefaultConstraintEdgeClassName()
    • setDefaultConstraintEdgeClassName

      void setDefaultConstraintEdgeClassName(String defaultConstraintEdgeClassName)
    • insertNewNode

      <t extends NESTNodeObject> t insertNewNode(String nodeClassName, NESTNodeObject parentWorkflowNode, DataObject semanticDescriptor, DataObject partOfEdgeSemanticDescriptor)
      Parameters:
      nodeClassName - String
      parentWorkflowNode - NESTNodeObject
      semanticDescriptor - DataObject
      partOfEdgeSemanticDescriptor -
      Returns:
      NESTNodeObject
    • insertNewWorkflowNode

      NESTWorkflowNodeObject insertNewWorkflowNode(DataObject semanticDescriptor)
      Creates a new workflow node within the graph with the given semantic description.
      Parameters:
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • insertNewWorkflowNode

      NESTWorkflowNodeObject insertNewWorkflowNode(String workflowNodeClassName, DataObject semanticDescriptor)
      Creates a new workflow node within the graph with the given semantic description.
      Parameters:
      workflowNodeClassName - The name of the custom workflow node class
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • insertNewTaskNode

      NESTTaskNodeObject insertNewTaskNode(DataObject semanticDescriptor)
      Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.
      Parameters:
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • insertNewDataNode

      NESTDataNodeObject insertNewDataNode(DataObject semanticDescriptor)
      Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.
      Parameters:
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • insertNewTaskNode

      NESTTaskNodeObject insertNewTaskNode(String taskNodeClassName, DataObject semanticDescriptor)
      Creates a new task node within the graph with the given semantic description and links it to the workflow node via part-of edge.
      Parameters:
      taskNodeClassName - The name of the custom task node class
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • insertNewDataNode

      NESTDataNodeObject insertNewDataNode(String dataNodeClassName, DataObject semanticDescriptor)
      Creates a new data node within the graph with the given semantic description and links it to the workflow node via part-of edge.
      Parameters:
      dataNodeClassName - The name of the custom task node class
      semanticDescriptor - The semantic description of the new node.
      Returns:
    • removeUnproductiveTasks

      void removeUnproductiveTasks()
      Removes unproductive task nodes, i.e., tasks that do not have any ingoing or outgoing data-flow edges
    • removeUnusedDataObjects

      void removeUnusedDataObjects()
      Removes unused data objects i.e. they have no ingoing and outgoing edges.
    • dropBlockSequenceNode

      boolean dropBlockSequenceNode(NESTNodeObject node)
      Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.
      Parameters:
      node -
      Returns:
    • dropBlockSequenceNode

      boolean dropBlockSequenceNode(String id)
      Removes a sequence node from the nest graph and performs the necessary changes on the part-of and control-flow edges.
      Parameters:
      id -
      Returns:
    • removeSubgraph

      void removeSubgraph(NESTWorkflowObject subgraphToRemove)
      Removes the given subgraph from the parent graph.
      Parameters:
      subgraphToRemove - the subgraph that should be removed
    • insertNewControlflowEdge

      NESTEdgeObject insertNewControlflowEdge(NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, DataObject semanticDescriptor)
      Adds a controlflow edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
      semanticDescriptor -
    • insertNewDataflowEdge

      NESTEdgeObject insertNewDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
      Inserts a new dataflow edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
      semanticDescriptor -
    • insertNewPartOfEdge

      NESTEdgeObject insertNewPartOfEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
      Inserts a new part-of edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
      semanticDescriptor -
    • insertNewConstraintEdge

      NESTEdgeObject insertNewConstraintEdge(NESTNodeObject preNode, NESTNodeObject postNode, DataObject semanticDescriptor)
      Inserts a new constraint edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
      semanticDescriptor -
    • removeControlflowEdge

      void removeControlflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)
      Removes the controlflow-edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
    • removeDataflowEdge

      void removeDataflowEdge(NESTNodeObject preNode, NESTNodeObject postNode)
      Removes the dataflow-edge between the given graph nodes.
      Parameters:
      preNode - The node on the left (previous) side of the edge.
      postNode - The node on the right (next) side of the edge.
    • insertNewSubWorkflowNode

      NESTSubWorkflowNodeObject insertNewSubWorkflowNode(NESTNodeObject parentWorkflowNode, DataObject semanticDescription)
      Inserts a new subworkflow node in the nest graph. The new node will be linked to the given parent workflow node by a part-of edge. A parent node can be either a workflow or a subworkflow node.
      Parameters:
      parentWorkflowNode -
      semanticDescription -
      Returns:
    • removeDataNode

      boolean removeDataNode(NESTDataNodeObject dataNode)
      Removes a semantic equal node of the given node from the graph.
      Parameters:
      dataNode -
      Returns:
    • removeTaskNode

      boolean removeTaskNode(NESTTaskNodeObject taskNode)
      Removes a semantic equal node of the given node from the graph.
      Parameters:
      taskNode -
      Returns:
    • removeSubWorkflowNode

      boolean removeSubWorkflowNode(NESTSubWorkflowNodeObject subWorkflowNode)
      Removes the given node from the graph and adjusts the part-of hierarchy accordingly.
      Parameters:
      subWorkflowNode -
      Returns:
    • insertSubgraph

      Map<String,String> insertSubgraph(NESTAbstractWorkflowObject subgraphToInsert, NESTSequenceNodeObject preNode, NESTSequenceNodeObject postNode, NESTNodeObject parentNode)
      Adds a given sub-graph into a target graph this modifier is responsible for. A parent node (of the target graph) can be set. Otherwise, the workflow node of the target workflow is used as parent node The pre node and the post node are nodes that will be connected to the start node or the end node, respectively. All nodes and edges of the sub-graph will be copied into the target graph. Consequently, the ids will be altered! A map that contains the old-to-new-mapping-ID's is returned by this method.
      Parameters:
      subgraphToInsert - the sub-graph that should be added to the target graph
      preNode - node of the target graph; this node will be connected to the start node of the sub-graph with a control-flow edge. If preNode is null, no control-flow edge is inserted.
      postNode - node of the target graph; the end node of the sub-graph will be connected to this node with a control-flow edge. If postNode is null, no control-flow edge is inserted.
      parentNode - workflow node or sub-workflow node of the target graph; all nodes that were previously connected to the workflow node of the sub-graph will be linked to the parent node via part-of edges. If parentNode is null, the workflow node of the target workflow is used as parent node.
      Returns:
      a map that contains the old-to-new-mapping-ID's