174 Model(
const std::string& filename);
176 std::unique_ptr<XML::XMLObject>
root;
181 virtual std::unique_ptr<XML::XMLObject>
createRoot(
const std::string& filename);
267 template<
typename T>
268 static std::unique_ptr<T>
bind(std::unique_ptr<T>&& baseElement, std::unique_ptr<ExtensionElements>&& extensionElements) {
269 baseElement->extensionElements = std::move(extensionElements);
270 baseElement->extensionElements->baseElement = baseElement.get();
271 return std::move(baseElement);
275 template<
typename T>
276 static std::unique_ptr<T>
bind(std::unique_ptr<T>& baseElement, std::unique_ptr<ExtensionElements>& extensionElements) {
277 baseElement->extensionElements = std::move(extensionElements);
278 baseElement->extensionElements->baseElement = baseElement.get();
279 return std::move(baseElement);
283 template<
typename T>
284 static std::unique_ptr<T>
bind(std::unique_ptr<T>& baseElement, std::unique_ptr<ExtensionElements>&& extensionElements) {
285 baseElement->extensionElements = std::move(extensionElements);
286 baseElement->extensionElements->baseElement = baseElement.get();
287 return std::move(baseElement);
291 template<
typename T>
292 static std::unique_ptr<T>
bind(std::unique_ptr<T>&& baseElement, std::unique_ptr<ExtensionElements>& extensionElements) {
293 baseElement->extensionElements = std::move(extensionElements);
294 baseElement->extensionElements->baseElement = baseElement.get();
295 return std::move(baseElement);
Base class for BPMN elements that may contain incoming and outgoing sequence flows.
Represents a BPMN model with all its processes and message flows.
virtual std::unique_ptr< FlowNode > createEscalationStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createInclusiveGateway(XML::bpmn::tInclusiveGateway *inclusiveGateway, Scope *parent)
virtual void createSequenceFlows(Scope *scope)
virtual std::unique_ptr< FlowNode > createUntypedStartEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createAdHocSubProcess(XML::bpmn::tAdHocSubProcess *adHocSubProcess, Scope *parent)
virtual std::unique_ptr< FlowNode > createTimerStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
std::vector< std::unique_ptr< Process > > processes
virtual std::unique_ptr< EventSubProcess > createEventSubProcess(XML::bpmn::tSubProcess *subProcess, Scope *parent)
virtual std::unique_ptr< FlowNode > createParallelGateway(XML::bpmn::tParallelGateway *parallelGateway, Scope *parent)
static std::unique_ptr< T > bind(std::unique_ptr< T > &&baseElement, std::unique_ptr< ExtensionElements > &extensionElements)
Binds the extension elements to the given baseElement.
virtual std::unique_ptr< FlowNode > createLinkSourceEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createTerminateEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual void createLinks(Scope *scope)
virtual std::unique_ptr< MessageFlow > createMessageFlow(XML::bpmn::tMessageFlow *messageFlow)
static std::unique_ptr< T > bind(std::unique_ptr< T > &baseElement, std::unique_ptr< ExtensionElements > &extensionElements)
Binds the extension elements to the given baseElement.
virtual std::unique_ptr< FlowNode > createTimerCatchEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createEscalationBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual void createFlowReferences(FlowNode *flowNode)
virtual std::unique_ptr< FlowNode > createUntypedEndEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createFlowNode(XML::bpmn::tFlowNode *flowNode, Scope *parent)
virtual void createCompensations(Scope *scope)
static std::unique_ptr< T > bind(std::unique_ptr< T > &baseElement, std::unique_ptr< ExtensionElements > &&extensionElements)
Binds the extension elements to the given baseElement.
virtual std::unique_ptr< FlowNode > createSignalThrowEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createEventBasedGateway(XML::bpmn::tEventBasedGateway *eventBasedGateway, Scope *parent)
virtual std::unique_ptr< FlowNode > createCompensateStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createTransaction(XML::bpmn::tTransaction *transaction, Scope *parent)
virtual void createNestedReferences(Scope *scope)
virtual std::unique_ptr< FlowNode > createManualTask(XML::bpmn::tManualTask *manualTask, Scope *parent)
virtual void createChildNodes(Scope *scope)
virtual std::unique_ptr< FlowNode > createCatchEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< Process > createProcess(XML::bpmn::tProcess *process)
virtual std::unique_ptr< FlowNode > createMessageBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
std::vector< std::unique_ptr< MessageFlow > > messageFlows
virtual std::unique_ptr< FlowNode > createGateway(XML::bpmn::tGateway *gateway, Scope *parent)
virtual std::unique_ptr< FlowNode > createCallActivity(XML::bpmn::tCallActivity *callActivity, Scope *parent)
virtual std::unique_ptr< FlowNode > createUserTask(XML::bpmn::tUserTask *userTask, Scope *parent)
virtual std::unique_ptr< FlowNode > createTypedStartEvent(XML::bpmn::tStartEvent *startEvent, XML::bpmn::tEventDefinition &eventDefinition, Scope *parent)
virtual std::unique_ptr< DataObject > createDataObject(XML::bpmn::tDataObject *dataObject, BPMN::Scope *scope)
virtual std::unique_ptr< FlowNode > createErrorEndEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createConditionalBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createMessageStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createSignalBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createErrorBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual void readBPMNFile(const std::string &filename)
virtual std::unique_ptr< FlowNode > createMessageCatchEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createMessageThrowEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createActivity(XML::bpmn::tActivity *activity, Scope *parent)
virtual std::unique_ptr< FlowNode > createSubProcess(XML::bpmn::tSubProcess *subProcess, Scope *parent)
virtual std::unique_ptr< FlowNode > createExclusiveGateway(XML::bpmn::tExclusiveGateway *exclusiveGateway, Scope *parent)
virtual std::unique_ptr< FlowNode > createThrowEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createErrorStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
virtual std::unique_ptr< XML::XMLObject > createRoot(const std::string &filename)
virtual std::unique_ptr< FlowNode > createSendTask(XML::bpmn::tSendTask *sendTask, Scope *parent)
virtual std::unique_ptr< FlowNode > createCompensateBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createAbstractTask(XML::bpmn::tTask *task, Scope *parent)
virtual std::unique_ptr< FlowNode > createCompensateThrowEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual void createMessageFlows()
virtual std::unique_ptr< FlowNode > createLinkTargetEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createScriptTask(XML::bpmn::tScriptTask *scriptTask, Scope *parent)
virtual std::unique_ptr< FlowNode > createSignalCatchEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createEvent(XML::bpmn::tEvent *event, Scope *parent)
virtual std::unique_ptr< FlowNode > createCancelEndEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< SequenceFlow > createSequenceFlow(XML::bpmn::tSequenceFlow *sequenceFlow, Scope *scope)
virtual std::unique_ptr< FlowNode > createReceiveTask(XML::bpmn::tReceiveTask *receiveTask, Scope *parent)
virtual std::unique_ptr< FlowNode > createComplexGateway(XML::bpmn::tComplexGateway *complexGateway, Scope *parent)
virtual void createCompensationReferences(Scope *scope)
virtual std::unique_ptr< FlowNode > createBusinessRuleTask(XML::bpmn::tBusinessRuleTask *businessRuleTask, Scope *parent)
virtual std::unique_ptr< FlowNode > createBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createSignalStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createConditionalCatchEvent(XML::bpmn::tCatchEvent *catchEvent, Scope *parent)
std::unique_ptr< XML::XMLObject > root
virtual std::unique_ptr< FlowNode > createEscalationThrowEvent(XML::bpmn::tThrowEvent *throwEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createTimerBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
static std::unique_ptr< T > bind(std::unique_ptr< T > &&baseElement, std::unique_ptr< ExtensionElements > &&extensionElements)
Binds the extension elements to the given baseElement.
virtual std::unique_ptr< FlowNode > createCancelBoundaryEvent(XML::bpmn::tBoundaryEvent *boundaryEvent, Scope *parent)
virtual std::unique_ptr< FlowNode > createTask(XML::bpmn::tTask *task, Scope *parent)
virtual std::unique_ptr< FlowNode > createConditionalStartEvent(XML::bpmn::tStartEvent *startEvent, Scope *parent)
Base class for BPMN elements that may contain a ChildNode elements.
The BPMN namespace contains linked classes representing a BPMN model.