BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMN::Model Class Reference

Represents a BPMN model with all its processes and message flows. More...

Detailed Description

The Model class reads a BPMN model from a file and provides access to all processes with their content as well as to all message flows in a BPMN model.

See also
Process, MessageFlow
Note
The BPMN model is expected to conform with the BPMN specification, e.g., it is expected that all boundary events and start events of event subprocesses have an event definition.
Note
All nodes in a process model are derived from an abstract class Node. The class model uses multiple inheritance to provide type specific attributes. References are usually provided by pointers to a base class. Casting is required to gain access to type specific attributes.
Note
The BPMN extension mechanism can be used by providing a custom model class derived from Model and a custom extension derived from the abstract base class ExtensionElements. The following example shows how an object of the custom extension MyExtensionElements class can be bound to processes by overriding the method Model::createProcess in the custom model MyModel class:
std::unique_ptr<BPMN::Process> MyModel::createProcess(XML::bpmn::tProcess* process) {
std::make_unique<MyExtensionElements>(process)
);
}
virtual std::unique_ptr< Process > createProcess(XML::bpmn::tProcess *process)
static std::unique_ptr< T > bind(std::unique_ptr< T > &&baseElement, std::unique_ptr< ExtensionElements > &&extensionElements)
Binds the extension elements to the given baseElement.
Definition bpmn++.h:18022
Warning
Multiple event definitions are not yet supported. A std::runtime_error will be thrown when parsing an event with multiple event definitions.

References between different classes are automatically determined:

  • For each sequence flow and each message flow, pointers to the source and target are provided.
    See also
    SequenceFlow, MessageFlow, FlowNode, Process
  • For each node, pointers to receiving and sending message flows are provided.
    See also
    Node
  • For each BPMN element that may have child nodes within its scope, the child nodes and sequence flows between them are owned by the node. Pointers to each flow node, event subprocess, start events, compensation activities, and compensation event subprocess are given.
    See also
    Scope
  • For each node within a scope, a pointer to the parent scope is provided.
    See also
    ChildNode
  • For each node that may receive a flow token, pointers to all incoming and outgoing sequence flows are given.
    See also
    FlowNode, SequenceFlow
  • For each subprocess, a pointer to the start event is provided.
    Attention
    It is expected that each subprocess has a unique UntypedStartEvent.
    See also
    SubProcess
  • For each event subprocess, a pointer to the start event is provided.
    Attention
    It is expected that each event subprocess has a unique TypedStartEvent.
    See also
    EventSubProcess
  • For each activity, pointers to each boundary event (excluding the compensation boundary event) are provided.
    See also
    Activity, BoundaryEvent
  • For each activity that can be compensated, a pointer to the compensation activity or compensation event subprocess is provided.
    Attention
    Activities must not have both compensation activity and compensation event subprocess.
    See also
    Activity, CompensateBoundaryEvent, CompensateStartEvent
  • For each event attached to the boundary of an activity, a pointer to the activity is provided.
    See also
    Activity, BoundaryEvent
  • For each link event, a pointer to the respective target or source(s) is provided.
    Note
    Target and sources are matched based on the XML::bpmn::tLinkEventDefinition::name attribute in the link event definition. If no such name is given, the FlowNode::name attribute of the link event is used as fallback.
    Attention
    For each link source exactly one link target must be found, otherwise a std::runtime_error will be thrown.
    See also
    LinkSourceEvent, LinkTargetEvent, XML::bpmn::tLinkEventDefinition, FlowNode
  • For each throwing compensation event, a pointer to the activity to be compensated is provided.
    Note
    The respective activity is determined based on the XML::bpmn::tCompensateEventDefinition::activityRef attribute of the compensation event definition and the Node::id attribute of the activity. If no such attribute reference is given, respective activity is determined based on the FlowNode::name attribute of the compensate throw event and the FlowNode::name of the activity.
    Attention
    Compensation throw events in compensation event subprocesses can only trigger compensation of activities within parent scope. All other compensation throw events can only trigger compensation of activities within the same scope.
    See also
    CompensateThrowEvent, XML::bpmn::tCompensateEventDefinition, Activity, FlowNode

Definition at line 17924 of file bpmn++.h.

#include <bpmn++.h>

Inheritance diagram for BPMN::Model:

Public Member Functions

 Model (const std::string &filename)
 
virtual ~Model ()=default
 

Public Attributes

std::vector< std::unique_ptr< XML::XMLObject > > roots
 
std::vector< std::unique_ptr< Process > > processes
 
std::vector< std::unique_ptr< MessageFlow > > messageFlows
 

Protected Member Functions

 Model ()
 
virtual void readBPMNFile (const std::string &filename)
 
virtual std::unique_ptr< XML::XMLObjectcreateRoot (const std::string &filename)
 
virtual std::unique_ptr< ProcesscreateProcess (XML::bpmn::tProcess *process)
 
virtual std::unique_ptr< EventSubProcesscreateEventSubProcess (XML::bpmn::tSubProcess *subProcess, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateFlowNode (XML::bpmn::tFlowNode *flowNode, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateActivity (XML::bpmn::tActivity *activity, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSubProcess (XML::bpmn::tSubProcess *subProcess, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCallActivity (XML::bpmn::tCallActivity *callActivity, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateAdHocSubProcess (XML::bpmn::tAdHocSubProcess *adHocSubProcess, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTransaction (XML::bpmn::tTransaction *transaction, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTask (XML::bpmn::tTask *task, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateAbstractTask (XML::bpmn::tTask *task, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSendTask (XML::bpmn::tSendTask *sendTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateReceiveTask (XML::bpmn::tReceiveTask *receiveTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateUserTask (XML::bpmn::tUserTask *userTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateManualTask (XML::bpmn::tManualTask *manualTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateScriptTask (XML::bpmn::tScriptTask *scriptTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateBusinessRuleTask (XML::bpmn::tBusinessRuleTask *businessRuleTask, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateEvent (XML::bpmn::tEvent *event, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCancelBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCompensateBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateConditionalBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateErrorBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateEscalationBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateMessageBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSignalBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTimerBoundaryEvent (XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCatchEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateConditionalCatchEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateMessageCatchEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSignalCatchEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTimerCatchEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateLinkTargetEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTypedStartEvent (XML::bpmn::tStartEvent *startEvent, XML::bpmn::tEventDefinition &eventDefinition, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCompensateStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateErrorStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateEscalationStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateConditionalStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateMessageStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSignalStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTimerStartEvent (XML::bpmn::tStartEvent *startEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateUntypedStartEvent (XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateThrowEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCancelEndEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateCompensateThrowEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateErrorEndEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateEscalationThrowEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateMessageThrowEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateSignalThrowEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateTerminateEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateLinkSourceEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateUntypedEndEvent (XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateGateway (XML::bpmn::tGateway *gateway, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateParallelGateway (XML::bpmn::tParallelGateway *parallelGateway, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateExclusiveGateway (XML::bpmn::tExclusiveGateway *exclusiveGateway, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateInclusiveGateway (XML::bpmn::tInclusiveGateway *inclusiveGateway, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateEventBasedGateway (XML::bpmn::tEventBasedGateway *eventBasedGateway, Scope *parent)
 
virtual std::unique_ptr< FlowNodecreateComplexGateway (XML::bpmn::tComplexGateway *complexGateway, Scope *parent)
 
virtual std::unique_ptr< SequenceFlowcreateSequenceFlow (XML::bpmn::tSequenceFlow *sequenceFlow, Scope *scope)
 
virtual std::unique_ptr< DataObjectcreateDataObject (XML::bpmn::tDataObject *dataObject, BPMN::Scope *scope)
 
virtual std::unique_ptr< MessageFlowcreateMessageFlow (XML::bpmn::tMessageFlow *messageFlow)
 
virtual void createChildNodes (Scope *scope)
 
virtual void createSequenceFlows (Scope *scope)
 
virtual void createNestedReferences (Scope *scope)
 
virtual void createFlowReferences (FlowNode *flowNode)
 
virtual void createCompensations (Scope *scope)
 
virtual void createCompensationReferences (Scope *scope)
 
virtual void createLinks (Scope *scope)
 
virtual void createMessageFlows ()
 

Static Protected Member Functions

template<typename T >
static std::unique_ptr< T > bind (std::unique_ptr< T > &&baseElement, std::unique_ptr< ExtensionElements > &&extensionElements)
 Binds the extension elements to the given baseElement.
 
template<typename T >
static std::unique_ptr< T > bind (std::unique_ptr< T > &baseElement, std::unique_ptr< ExtensionElements > &extensionElements)
 Binds the extension elements to the given baseElement.
 
template<typename T >
static std::unique_ptr< T > bind (std::unique_ptr< T > &baseElement, std::unique_ptr< ExtensionElements > &&extensionElements)
 Binds the extension elements to the given baseElement.
 
template<typename T >
static std::unique_ptr< T > bind (std::unique_ptr< T > &&baseElement, std::unique_ptr< ExtensionElements > &extensionElements)
 Binds the extension elements to the given baseElement.
 

Constructor & Destructor Documentation

◆ Model() [1/2]

BPMN::Model::Model ( )
inlineprotected

Definition at line 17926 of file bpmn++.h.

◆ Model() [2/2]

BPMN::Model::Model ( const std::string & filename)

◆ ~Model()

virtual BPMN::Model::~Model ( )
virtualdefault

Reimplemented in BPMNOS::Model::Model.

Member Function Documentation

◆ bind() [1/4]

template<typename T >
static std::unique_ptr< T > BPMN::Model::bind ( std::unique_ptr< T > && baseElement,
std::unique_ptr< ExtensionElements > && extensionElements )
inlinestaticprotected

Definition at line 18022 of file bpmn++.h.

◆ bind() [2/4]

template<typename T >
static std::unique_ptr< T > BPMN::Model::bind ( std::unique_ptr< T > && baseElement,
std::unique_ptr< ExtensionElements > & extensionElements )
inlinestaticprotected

Definition at line 18046 of file bpmn++.h.

◆ bind() [3/4]

template<typename T >
static std::unique_ptr< T > BPMN::Model::bind ( std::unique_ptr< T > & baseElement,
std::unique_ptr< ExtensionElements > && extensionElements )
inlinestaticprotected

Definition at line 18038 of file bpmn++.h.

◆ bind() [4/4]

template<typename T >
static std::unique_ptr< T > BPMN::Model::bind ( std::unique_ptr< T > & baseElement,
std::unique_ptr< ExtensionElements > & extensionElements )
inlinestaticprotected

Definition at line 18030 of file bpmn++.h.

◆ createAbstractTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createAbstractTask ( XML::bpmn::tTask * task,
Scope * parent )
protectedvirtual

◆ createActivity()

virtual std::unique_ptr< FlowNode > BPMN::Model::createActivity ( XML::bpmn::tActivity * activity,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createAdHocSubProcess()

virtual std::unique_ptr< FlowNode > BPMN::Model::createAdHocSubProcess ( XML::bpmn::tAdHocSubProcess * adHocSubProcess,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

◆ createBusinessRuleTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createBusinessRuleTask ( XML::bpmn::tBusinessRuleTask * businessRuleTask,
Scope * parent )
protectedvirtual

◆ createCallActivity()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCallActivity ( XML::bpmn::tCallActivity * callActivity,
Scope * parent )
protectedvirtual

◆ createCancelBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCancelBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

◆ createCancelEndEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCancelEndEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createCatchEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCatchEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

◆ createChildNodes()

virtual void BPMN::Model::createChildNodes ( Scope * scope)
protectedvirtual

◆ createCompensateBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCompensateBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

◆ createCompensateStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCompensateStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

◆ createCompensateThrowEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createCompensateThrowEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createCompensationReferences()

virtual void BPMN::Model::createCompensationReferences ( Scope * scope)
protectedvirtual

◆ createCompensations()

virtual void BPMN::Model::createCompensations ( Scope * scope)
protectedvirtual

◆ createComplexGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createComplexGateway ( XML::bpmn::tComplexGateway * complexGateway,
Scope * parent )
protectedvirtual

◆ createConditionalBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createConditionalBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createConditionalCatchEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createConditionalCatchEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createConditionalStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createConditionalStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createDataObject()

virtual std::unique_ptr< DataObject > BPMN::Model::createDataObject ( XML::bpmn::tDataObject * dataObject,
BPMN::Scope * scope )
protectedvirtual

◆ createErrorBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createErrorBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

◆ createErrorEndEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createErrorEndEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createErrorStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createErrorStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

◆ createEscalationBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createEscalationBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

◆ createEscalationStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createEscalationStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

◆ createEscalationThrowEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createEscalationThrowEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createEvent ( XML::bpmn::tEvent * event,
Scope * parent )
protectedvirtual

◆ createEventBasedGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createEventBasedGateway ( XML::bpmn::tEventBasedGateway * eventBasedGateway,
Scope * parent )
protectedvirtual

◆ createEventSubProcess()

virtual std::unique_ptr< EventSubProcess > BPMN::Model::createEventSubProcess ( XML::bpmn::tSubProcess * subProcess,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createExclusiveGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createExclusiveGateway ( XML::bpmn::tExclusiveGateway * exclusiveGateway,
Scope * parent )
protectedvirtual

◆ createFlowNode()

virtual std::unique_ptr< FlowNode > BPMN::Model::createFlowNode ( XML::bpmn::tFlowNode * flowNode,
Scope * parent )
protectedvirtual

◆ createFlowReferences()

virtual void BPMN::Model::createFlowReferences ( FlowNode * flowNode)
protectedvirtual

◆ createGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createGateway ( XML::bpmn::tGateway * gateway,
Scope * parent )
protectedvirtual

◆ createInclusiveGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createInclusiveGateway ( XML::bpmn::tInclusiveGateway * inclusiveGateway,
Scope * parent )
protectedvirtual

◆ createLinks()

virtual void BPMN::Model::createLinks ( Scope * scope)
protectedvirtual

◆ createLinkSourceEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createLinkSourceEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createLinkTargetEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createLinkTargetEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

◆ createManualTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createManualTask ( XML::bpmn::tManualTask * manualTask,
Scope * parent )
protectedvirtual

◆ createMessageBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createMessageBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createMessageCatchEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createMessageCatchEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createMessageFlow()

virtual std::unique_ptr< MessageFlow > BPMN::Model::createMessageFlow ( XML::bpmn::tMessageFlow * messageFlow)
protectedvirtual

◆ createMessageFlows()

virtual void BPMN::Model::createMessageFlows ( )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createMessageStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createMessageStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createMessageThrowEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createMessageThrowEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createNestedReferences()

virtual void BPMN::Model::createNestedReferences ( Scope * scope)
protectedvirtual

◆ createParallelGateway()

virtual std::unique_ptr< FlowNode > BPMN::Model::createParallelGateway ( XML::bpmn::tParallelGateway * parallelGateway,
Scope * parent )
protectedvirtual

◆ createProcess()

virtual std::unique_ptr< Process > BPMN::Model::createProcess ( XML::bpmn::tProcess * process)
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createReceiveTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createReceiveTask ( XML::bpmn::tReceiveTask * receiveTask,
Scope * parent )
protectedvirtual

◆ createRoot()

virtual std::unique_ptr< XML::XMLObject > BPMN::Model::createRoot ( const std::string & filename)
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createScriptTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createScriptTask ( XML::bpmn::tScriptTask * scriptTask,
Scope * parent )
protectedvirtual

◆ createSendTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSendTask ( XML::bpmn::tSendTask * sendTask,
Scope * parent )
protectedvirtual

◆ createSequenceFlow()

virtual std::unique_ptr< SequenceFlow > BPMN::Model::createSequenceFlow ( XML::bpmn::tSequenceFlow * sequenceFlow,
Scope * scope )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createSequenceFlows()

virtual void BPMN::Model::createSequenceFlows ( Scope * scope)
protectedvirtual

◆ createSignalBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSignalBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createSignalCatchEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSignalCatchEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createSignalStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSignalStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createSignalThrowEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSignalThrowEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createSubProcess()

virtual std::unique_ptr< FlowNode > BPMN::Model::createSubProcess ( XML::bpmn::tSubProcess * subProcess,
Scope * parent )
protectedvirtual

◆ createTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTask ( XML::bpmn::tTask * task,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createTerminateEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTerminateEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createThrowEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createThrowEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createTimerBoundaryEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTimerBoundaryEvent ( XML::bpmn::tBoundaryEvent * boundaryEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createTimerCatchEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTimerCatchEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createTimerStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTimerStartEvent ( XML::bpmn::tStartEvent * startEvent,
Scope * parent )
protectedvirtual

Reimplemented in BPMNOS::Model::Model.

◆ createTransaction()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTransaction ( XML::bpmn::tTransaction * transaction,
Scope * parent )
protectedvirtual

◆ createTypedStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createTypedStartEvent ( XML::bpmn::tStartEvent * startEvent,
XML::bpmn::tEventDefinition & eventDefinition,
Scope * parent )
protectedvirtual

◆ createUntypedEndEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createUntypedEndEvent ( XML::bpmn::tThrowEvent * throwEvent,
Scope * parent )
protectedvirtual

◆ createUntypedStartEvent()

virtual std::unique_ptr< FlowNode > BPMN::Model::createUntypedStartEvent ( XML::bpmn::tCatchEvent * catchEvent,
Scope * parent )
protectedvirtual

◆ createUserTask()

virtual std::unique_ptr< FlowNode > BPMN::Model::createUserTask ( XML::bpmn::tUserTask * userTask,
Scope * parent )
protectedvirtual

◆ readBPMNFile()

virtual void BPMN::Model::readBPMNFile ( const std::string & filename)
protectedvirtual

Member Data Documentation

◆ messageFlows

std::vector< std::unique_ptr<MessageFlow> > BPMN::Model::messageFlows

Definition at line 17932 of file bpmn++.h.

◆ processes

std::vector< std::unique_ptr<Process> > BPMN::Model::processes

Definition at line 17931 of file bpmn++.h.

◆ roots

std::vector< std::unique_ptr<XML::XMLObject> > BPMN::Model::roots

Definition at line 17930 of file bpmn++.h.


The documentation for this class was generated from the following file: