17void MessageFlow::initialize(std::vector< std::unique_ptr<Process> >& processes, std::unordered_map<std::string,std::string>& participantMap) {
19 if ( participantMap.contains(
element->sourceRef.value.value) ) {
21 for (
auto& process : processes ) {
22 if ( process->id == participantMap[
element->sourceRef.value.value] ) {
23 source = { process.get(),
nullptr };
28 source = { process.get(), flowNode };
33 throw std::runtime_error(
"MessageFlow: cannot find source of '" +
id +
"'");
38 for (
auto& process : processes ) {
41 source = { process.get(), flowNode };
48 if ( participantMap.contains(
element->targetRef.value.value) ) {
49 for (
auto& process : processes ) {
50 if ( process->id == participantMap[
element->targetRef.value.value] ) {
51 target = { process.get(),
nullptr };
56 target = { process.get(), flowNode };
62 throw std::runtime_error(
"MessageFlow: cannot find target of '" +
id +
"'");
67 for (
auto& process : processes ) {
70 target = { process.get(), flowNode };