Interface NESTAbstractWorkflowModifier

    • Method Detail

      • 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