bpmn++
A BPMN parser library, written in C++
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) {
return bind<BPMN::Process>(
std::make_unique<MyExtensionElements>(process)
);
}
virtual std::unique_ptr< Process > createProcess(XML::bpmn::tProcess *process)
Definition Model.cpp:50
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 170 of file Model.h.

#include <Model.h>

Public Member Functions

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

Public Attributes

std::unique_ptr< XML::XMLObjectroot
 
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 172 of file Model.h.

◆ Model() [2/2]

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

Definition at line 20 of file Model.cpp.

◆ ~Model()

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

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 268 of file Model.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 292 of file Model.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 284 of file Model.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 276 of file Model.h.

◆ createAbstractTask()

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

Definition at line 136 of file Model.cpp.

◆ createActivity()

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

Definition at line 74 of file Model.cpp.

◆ createAdHocSubProcess()

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

Definition at line 101 of file Model.cpp.

◆ createBoundaryEvent()

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

Definition at line 181 of file Model.cpp.

◆ createBusinessRuleTask()

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

Definition at line 160 of file Model.cpp.

◆ createCallActivity()

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

Definition at line 109 of file Model.cpp.

◆ createCancelBoundaryEvent()

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

Definition at line 220 of file Model.cpp.

◆ createCancelEndEvent()

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

Definition at line 406 of file Model.cpp.

◆ createCatchEvent()

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

Definition at line 252 of file Model.cpp.

◆ createChildNodes()

void Model::createChildNodes ( Scope scope)
protectedvirtual

Definition at line 498 of file Model.cpp.

◆ createCompensateBoundaryEvent()

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

Definition at line 224 of file Model.cpp.

◆ createCompensateStartEvent()

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

Definition at line 335 of file Model.cpp.

◆ createCompensateThrowEvent()

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

Definition at line 410 of file Model.cpp.

◆ createCompensationReferences()

void Model::createCompensationReferences ( Scope scope)
protectedvirtual

Definition at line 698 of file Model.cpp.

◆ createCompensations()

void Model::createCompensations ( Scope scope)
protectedvirtual

Definition at line 664 of file Model.cpp.

◆ createComplexGateway()

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

Definition at line 481 of file Model.cpp.

◆ createConditionalBoundaryEvent()

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

Definition at line 228 of file Model.cpp.

◆ createConditionalCatchEvent()

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

Definition at line 286 of file Model.cpp.

◆ createConditionalStartEvent()

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

Definition at line 347 of file Model.cpp.

◆ createDataObject()

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

Definition at line 489 of file Model.cpp.

◆ createErrorBoundaryEvent()

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

Definition at line 232 of file Model.cpp.

◆ createErrorEndEvent()

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

Definition at line 414 of file Model.cpp.

◆ createErrorStartEvent()

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

Definition at line 339 of file Model.cpp.

◆ createEscalationBoundaryEvent()

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

Definition at line 236 of file Model.cpp.

◆ createEscalationStartEvent()

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

Definition at line 343 of file Model.cpp.

◆ createEscalationThrowEvent()

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

Definition at line 418 of file Model.cpp.

◆ createEvent()

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

Definition at line 164 of file Model.cpp.

◆ createEventBasedGateway()

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

Definition at line 477 of file Model.cpp.

◆ createEventSubProcess()

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

Definition at line 54 of file Model.cpp.

◆ createExclusiveGateway()

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

Definition at line 469 of file Model.cpp.

◆ createFlowNode()

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

Definition at line 58 of file Model.cpp.

◆ createFlowReferences()

void Model::createFlowReferences ( FlowNode flowNode)
protectedvirtual

Definition at line 571 of file Model.cpp.

◆ createGateway()

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

Definition at line 443 of file Model.cpp.

◆ createInclusiveGateway()

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

Definition at line 473 of file Model.cpp.

◆ createLinks()

void Model::createLinks ( Scope scope)
protectedvirtual

Definition at line 780 of file Model.cpp.

◆ createLinkSourceEvent()

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

Definition at line 434 of file Model.cpp.

◆ createLinkTargetEvent()

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

Definition at line 303 of file Model.cpp.

◆ createManualTask()

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

Definition at line 152 of file Model.cpp.

◆ createMessageBoundaryEvent()

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

Definition at line 240 of file Model.cpp.

◆ createMessageCatchEvent()

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

Definition at line 291 of file Model.cpp.

◆ createMessageFlow()

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

Definition at line 493 of file Model.cpp.

◆ createMessageFlows()

void Model::createMessageFlows ( )
protectedvirtual

Definition at line 815 of file Model.cpp.

◆ createMessageStartEvent()

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

Definition at line 351 of file Model.cpp.

◆ createMessageThrowEvent()

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

Definition at line 422 of file Model.cpp.

◆ createNestedReferences()

void Model::createNestedReferences ( Scope scope)
protectedvirtual

Definition at line 541 of file Model.cpp.

◆ createParallelGateway()

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

Definition at line 465 of file Model.cpp.

◆ createProcess()

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

Definition at line 50 of file Model.cpp.

◆ createReceiveTask()

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

Definition at line 144 of file Model.cpp.

◆ createRoot()

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

Definition at line 46 of file Model.cpp.

◆ createScriptTask()

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

Definition at line 156 of file Model.cpp.

◆ createSendTask()

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

Definition at line 140 of file Model.cpp.

◆ createSequenceFlow()

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

Definition at line 485 of file Model.cpp.

◆ createSequenceFlows()

void Model::createSequenceFlows ( Scope scope)
protectedvirtual

Definition at line 534 of file Model.cpp.

◆ createSignalBoundaryEvent()

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

Definition at line 244 of file Model.cpp.

◆ createSignalCatchEvent()

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

Definition at line 295 of file Model.cpp.

◆ createSignalStartEvent()

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

Definition at line 355 of file Model.cpp.

◆ createSignalThrowEvent()

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

Definition at line 426 of file Model.cpp.

◆ createSubProcess()

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

Definition at line 91 of file Model.cpp.

◆ createTask()

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

Definition at line 113 of file Model.cpp.

◆ createTerminateEvent()

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

Definition at line 430 of file Model.cpp.

◆ createThrowEvent()

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

Definition at line 367 of file Model.cpp.

◆ createTimerBoundaryEvent()

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

Definition at line 248 of file Model.cpp.

◆ createTimerCatchEvent()

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

Definition at line 299 of file Model.cpp.

◆ createTimerStartEvent()

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

Definition at line 359 of file Model.cpp.

◆ createTransaction()

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

Definition at line 105 of file Model.cpp.

◆ createTypedStartEvent()

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

Definition at line 307 of file Model.cpp.

◆ createUntypedEndEvent()

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

Definition at line 438 of file Model.cpp.

◆ createUntypedStartEvent()

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

Definition at line 363 of file Model.cpp.

◆ createUserTask()

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

Definition at line 148 of file Model.cpp.

◆ readBPMNFile()

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

Definition at line 25 of file Model.cpp.

Member Data Documentation

◆ messageFlows

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

Definition at line 178 of file Model.h.

◆ processes

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

Definition at line 177 of file Model.h.

◆ root

std::unique_ptr<XML::XMLObject> BPMN::Model::root

Definition at line 176 of file Model.h.


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