Class AbstractNESTtoBPMNConverter<T extends NESTAbstractWorkflowObject>

java.lang.Object
de.uni_trier.wi2.procake.utils.conversion.bpmn.AbstractNESTtoBPMNConverter<T>
All Implemented Interfaces:
OneWayConverter<T,org.camunda.bpm.model.bpmn.BpmnModelInstance>

public abstract class AbstractNESTtoBPMNConverter<T extends NESTAbstractWorkflowObject> extends Object implements OneWayConverter<T,org.camunda.bpm.model.bpmn.BpmnModelInstance>
Abstract implementation of a converter for converting a (block-oriented) NESTWorkflow object into a BPMN2 object. If the workflow contains exactly one start and one end node (i.e., one workflow block) that converter adds a BPMN start and end event automatically. Otherwise, workflow blocks are converted as is without adding event nodes.

The following BPMN 2.0 elements are supported:

  • - Task Nodes such as Task, ServiceTask, ScriptTask, ManualTask, HumanTask
  • - SubProcess
  • - Gateway Nodes such as ExclusiveGateway, EventBasedGateway, ParallelGateway
Author:
Christian Zeyen
  • Field Details

    • targetNamespace

      protected String targetNamespace
    • createdFlowElements

      protected Map<String,org.camunda.bpm.model.bpmn.instance.FlowElement> createdFlowElements
    • modelInstance

      protected org.camunda.bpm.model.bpmn.BpmnModelInstance modelInstance
  • Constructor Details

    • AbstractNESTtoBPMNConverter

      public AbstractNESTtoBPMNConverter()
  • Method Details

    • getClassForNode

      protected abstract <I extends org.camunda.bpm.model.bpmn.instance.FlowNode> Class<I> getClassForNode(NESTNodeObject currentNode)
    • getLabelForNode

      protected abstract String getLabelForNode(NESTNodeObject currentNode)
    • getLabelForEdge

      protected abstract String getLabelForEdge(NESTEdgeObject currentEdge)
    • getExtensionElementsForNode

      protected abstract org.camunda.bpm.model.bpmn.instance.ExtensionElements getExtensionElementsForNode(NESTNodeObject currentNode)
    • getExtensionElementsForEdge

      protected abstract org.camunda.bpm.model.bpmn.instance.ExtensionElements getExtensionElementsForEdge(NESTEdgeObject currentEdge)
    • getNestedWorkflowObject

      protected abstract NESTAbstractWorkflowObject getNestedWorkflowObject(NESTNodeObject node)
    • createEmptyModel

      protected org.camunda.bpm.model.bpmn.BpmnModelInstance createEmptyModel()
    • convert

      public org.camunda.bpm.model.bpmn.BpmnModelInstance convert(T origin) throws NESTtoBPMNConversionException
      Description copied from interface: OneWayConverter
      Converts the origin object type to a target object type.
      Specified by:
      convert in interface OneWayConverter<T extends NESTAbstractWorkflowObject,org.camunda.bpm.model.bpmn.BpmnModelInstance>
      Parameters:
      origin - object to be converted
      Returns:
      the converted object
      Throws:
      NESTtoBPMNConversionException
    • getSequenceStartNodes

      protected Set<NESTSequenceNodeObject> getSequenceStartNodes(NESTAbstractWorkflowObject nestGraphObject)
      Parameters:
      nestGraphObject - current NEST workflow
      Returns:
      start nodes for adding a start event in BPMN
    • getSequenceEndNodes

      protected Set<NESTSequenceNodeObject> getSequenceEndNodes(NESTAbstractWorkflowObject nestGraphObject)
      Parameters:
      nestGraphObject - current NEST workflow
      Returns:
      end nodes for adding an end event in BPMN
    • convertNestNode

      public org.camunda.bpm.model.bpmn.instance.FlowNode convertNestNode(NESTNodeObject nestNode, org.camunda.bpm.model.bpmn.instance.BaseElement parent) throws Exception
      Throws:
      Exception
    • getTargetNamespace

      public String getTargetNamespace()
    • setTargetNamespace

      public void setTargetNamespace(String targetNamespace)