16 if ( !marker.empty() ) {
17 if ( marker[0].get().is<XML::bpmn::tStandardLoopCharacteristics>() ) {
18 loopCharacteristics = LoopCharacteristics::Standard;
21 if ( multiInstanceMarker->isSequential.has_value() &&
22 (
bool)multiInstanceMarker->isSequential.value().get().value
31 throw std::logic_error(
"Activity: Failed determining loop characteristics for activity '" + activity->
id.value().get().value.value +
"'");
Activity(XML::bpmn::tActivity *activity, Scope *parent)
XML::bpmn::tActivity * element
Node * compensatedBy
Pointer to compensation activity or compensation event sub-process.
std::optional< LoopCharacteristics > loopCharacteristics
@ MultiInstanceSequential
T * is()
Attempts to return the element in the specified type T.
T * get()
Casts the element to the specified type T.
Scope * parent
Reference to the parent node.
FlowNode(XML::bpmn::tFlowNode *flowNode, Scope *parent)
Base class for all nodes in a BPMN model.
Base class for BPMN elements that may contain a ChildNode elements.
auto getChildren(this Self &&self)
Get all children of type T.
std::optional< std::reference_wrapper< Attribute > > id
Attribute value can be expected to be of type 'std::string'.
The BPMN namespace contains linked classes representing a BPMN model.