bpmn++
A BPMN parser library, written in C++
Loading...
Searching...
No Matches
BPMN::Model Class Reference

Represents a BPMN model with all its processes, message flows, and data stores. 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 and data stores in a BPMN model.

See also
Process, MessageFlow, DataStore, DataObject
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)
Definition Model.cpp:74
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 Model.h:280
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 172 of file Model.h.

#include <Model.h>

Public Member Functions

 Model (const std::string &filename)
 Model (std::unique_ptr< XML::XMLObject > root)
virtual ~Model ()=default

Public Attributes

std::unique_ptr< XML::XMLObjectroot
std::vector< std::unique_ptr< DataStore > > dataStores
std::vector< std::unique_ptr< Process > > processes
std::vector< std::unique_ptr< MessageFlow > > messageFlows

Protected Member Functions

 Model ()
virtual std::unique_ptr< XML::XMLObjectcreateRoot (const std::string &filename)
 Parses filename into the model root and returns it. Virtual hook: derived classes may override it to perform post-parse setup before the children are built. Overrides should call this base version to obtain the parsed root.
virtual void build ()
 Builds processes, nodes, sequence flows, message flows, links, and data stores from root. Must be called once root is installed; invoked from the constructor body.
virtual std::unique_ptr< DataStorecreateDataStore (XML::bpmn::tDataStore *dataStore)
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 createDataStores ()
virtual void createProcesses ()
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/3]

BPMN::Model::Model ( )
inlineprotected

Definition at line 174 of file Model.h.

◆ Model() [2/3]

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

Definition at line 22 of file Model.cpp.

◆ Model() [3/3]

Model::Model ( std::unique_ptr< XML::XMLObject > root)

Definition at line 27 of file Model.cpp.

◆ ~Model()

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

Member Function Documentation

◆ bind() [1/4]

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

Definition at line 280 of file Model.h.

◆ bind() [2/4]

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

Definition at line 304 of file Model.h.

◆ bind() [3/4]

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

Definition at line 296 of file Model.h.

◆ bind() [4/4]

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

Definition at line 288 of file Model.h.

◆ build()

void Model::build ( )
protectedvirtual

Definition at line 38 of file Model.cpp.

◆ createAbstractTask()

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

Definition at line 160 of file Model.cpp.

◆ createActivity()

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

Definition at line 98 of file Model.cpp.

◆ createAdHocSubProcess()

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

Definition at line 125 of file Model.cpp.

◆ createBoundaryEvent()

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

Definition at line 205 of file Model.cpp.

◆ createBusinessRuleTask()

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

Definition at line 184 of file Model.cpp.

◆ createCallActivity()

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

Definition at line 133 of file Model.cpp.

◆ createCancelBoundaryEvent()

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

Definition at line 244 of file Model.cpp.

◆ createCancelEndEvent()

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

Definition at line 430 of file Model.cpp.

◆ createCatchEvent()

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

Definition at line 276 of file Model.cpp.

◆ createChildNodes()

void Model::createChildNodes ( Scope * scope)
protectedvirtual

Definition at line 522 of file Model.cpp.

◆ createCompensateBoundaryEvent()

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

Definition at line 248 of file Model.cpp.

◆ createCompensateStartEvent()

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

Definition at line 359 of file Model.cpp.

◆ createCompensateThrowEvent()

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

Definition at line 434 of file Model.cpp.

◆ createCompensationReferences()

void Model::createCompensationReferences ( Scope * scope)
protectedvirtual

Definition at line 722 of file Model.cpp.

◆ createCompensations()

void Model::createCompensations ( Scope * scope)
protectedvirtual

Definition at line 688 of file Model.cpp.

◆ createComplexGateway()

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

Definition at line 505 of file Model.cpp.

◆ createConditionalBoundaryEvent()

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

Definition at line 252 of file Model.cpp.

◆ createConditionalCatchEvent()

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

Definition at line 310 of file Model.cpp.

◆ createConditionalStartEvent()

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

Definition at line 371 of file Model.cpp.

◆ createDataObject()

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

Definition at line 513 of file Model.cpp.

◆ createDataStore()

std::unique_ptr< DataStore > Model::createDataStore ( XML::bpmn::tDataStore * dataStore)
protectedvirtual

Definition at line 70 of file Model.cpp.

◆ createDataStores()

void Model::createDataStores ( )
protectedvirtual

Definition at line 51 of file Model.cpp.

◆ createErrorBoundaryEvent()

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

Definition at line 256 of file Model.cpp.

◆ createErrorEndEvent()

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

Definition at line 438 of file Model.cpp.

◆ createErrorStartEvent()

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

Definition at line 363 of file Model.cpp.

◆ createEscalationBoundaryEvent()

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

Definition at line 260 of file Model.cpp.

◆ createEscalationStartEvent()

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

Definition at line 367 of file Model.cpp.

◆ createEscalationThrowEvent()

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

Definition at line 442 of file Model.cpp.

◆ createEvent()

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

Definition at line 188 of file Model.cpp.

◆ createEventBasedGateway()

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

Definition at line 501 of file Model.cpp.

◆ createEventSubProcess()

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

Definition at line 78 of file Model.cpp.

◆ createExclusiveGateway()

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

Definition at line 493 of file Model.cpp.

◆ createFlowNode()

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

Definition at line 82 of file Model.cpp.

◆ createFlowReferences()

void Model::createFlowReferences ( FlowNode * flowNode)
protectedvirtual

Definition at line 595 of file Model.cpp.

◆ createGateway()

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

Definition at line 467 of file Model.cpp.

◆ createInclusiveGateway()

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

Definition at line 497 of file Model.cpp.

◆ createLinks()

void Model::createLinks ( Scope * scope)
protectedvirtual

Definition at line 804 of file Model.cpp.

◆ createLinkSourceEvent()

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

Definition at line 458 of file Model.cpp.

◆ createLinkTargetEvent()

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

Definition at line 327 of file Model.cpp.

◆ createManualTask()

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

Definition at line 176 of file Model.cpp.

◆ createMessageBoundaryEvent()

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

Definition at line 264 of file Model.cpp.

◆ createMessageCatchEvent()

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

Definition at line 315 of file Model.cpp.

◆ createMessageFlow()

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

Definition at line 517 of file Model.cpp.

◆ createMessageFlows()

void Model::createMessageFlows ( )
protectedvirtual

Definition at line 839 of file Model.cpp.

◆ createMessageStartEvent()

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

Definition at line 375 of file Model.cpp.

◆ createMessageThrowEvent()

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

Definition at line 446 of file Model.cpp.

◆ createNestedReferences()

void Model::createNestedReferences ( Scope * scope)
protectedvirtual

Definition at line 565 of file Model.cpp.

◆ createParallelGateway()

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

Definition at line 489 of file Model.cpp.

◆ createProcess()

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

Definition at line 74 of file Model.cpp.

◆ createProcesses()

void Model::createProcesses ( )
protectedvirtual

Definition at line 57 of file Model.cpp.

◆ createReceiveTask()

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

Definition at line 168 of file Model.cpp.

◆ createRoot()

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

Definition at line 33 of file Model.cpp.

◆ createScriptTask()

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

Definition at line 180 of file Model.cpp.

◆ createSendTask()

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

Definition at line 164 of file Model.cpp.

◆ createSequenceFlow()

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

Definition at line 509 of file Model.cpp.

◆ createSequenceFlows()

void Model::createSequenceFlows ( Scope * scope)
protectedvirtual

Definition at line 558 of file Model.cpp.

◆ createSignalBoundaryEvent()

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

Definition at line 268 of file Model.cpp.

◆ createSignalCatchEvent()

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

Definition at line 319 of file Model.cpp.

◆ createSignalStartEvent()

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

Definition at line 379 of file Model.cpp.

◆ createSignalThrowEvent()

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

Definition at line 450 of file Model.cpp.

◆ createSubProcess()

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

Definition at line 115 of file Model.cpp.

◆ createTask()

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

Definition at line 137 of file Model.cpp.

◆ createTerminateEvent()

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

Definition at line 454 of file Model.cpp.

◆ createThrowEvent()

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

Definition at line 391 of file Model.cpp.

◆ createTimerBoundaryEvent()

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

Definition at line 272 of file Model.cpp.

◆ createTimerCatchEvent()

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

Definition at line 323 of file Model.cpp.

◆ createTimerStartEvent()

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

Definition at line 383 of file Model.cpp.

◆ createTransaction()

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

Definition at line 129 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 331 of file Model.cpp.

◆ createUntypedEndEvent()

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

Definition at line 462 of file Model.cpp.

◆ createUntypedStartEvent()

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

Definition at line 387 of file Model.cpp.

◆ createUserTask()

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

Definition at line 172 of file Model.cpp.

Member Data Documentation

◆ dataStores

std::vector< std::unique_ptr<DataStore> > BPMN::Model::dataStores

Definition at line 180 of file Model.h.

◆ messageFlows

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

Definition at line 182 of file Model.h.

◆ processes

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

Definition at line 181 of file Model.h.

◆ root

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

Definition at line 179 of file Model.h.


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