@@ -265,11 +265,17 @@ namespace fmu4cpp {
265265 ss << " \t\t <Outputs>\n " ;
266266 for (const auto &v: unknowns) {
267267 ss << " \t\t\t <Unknown index=\" " << v->index () << " \" " ;
268- const auto deps = v->getDependencies ();
269- if (!deps.empty ()) {
268+ if (const auto deps = v->getDependencies (); !deps.empty ()) {
270269 ss << " dependencies=\" " ;
271270 for (unsigned i = 0 ; i < deps.size (); i++) {
272- ss << deps[i];
271+ const auto &depName = deps[i];
272+ const auto dep = std::find_if (allVars.begin (), allVars.end (), [depName](const auto &v) {
273+ return v->name () == depName;
274+ });
275+ if (dep == allVars.end ()) {
276+ throw std::runtime_error (" Unknown dependency: " + depName);
277+ }
278+ ss << (*dep)->index ();
273279 if (i != deps.size () - 1 ) {
274280 ss << " " ;
275281 }
@@ -428,11 +434,17 @@ namespace fmu4cpp {
428434 if (!unknowns.empty ()) {
429435 for (const auto &v: unknowns) {
430436 ss << " \t\t\t <Output valueReference=\" " << v->value_reference () << " \" " ;
431- const auto deps = v->getDependencies (); // indices
432- if (!deps.empty ()) {
437+ if (const auto deps = v->getDependencies (); !deps.empty ()) {
433438 ss << " dependencies=\" " ;
434439 for (unsigned i = 0 ; i < deps.size (); i++) {
435- ss << deps[i]-1 ; // valueRef is index -1
440+ const auto &depName = deps[i];
441+ const auto dep = std::find_if (allVars.begin (), allVars.end (), [depName](const auto &v) {
442+ return v->name () == depName;
443+ });
444+ if (dep == allVars.end ()) {
445+ throw std::runtime_error (" Unknown dependency: " + depName);
446+ }
447+ ss << (*dep)->index () - 1 ;// valueRef is index -1
436448 if (i != deps.size () - 1 ) {
437449 ss << " " ;
438450 }
@@ -448,7 +460,7 @@ namespace fmu4cpp {
448460 });
449461 if (!initialUnknowns.empty ()) {
450462 for (const auto &v: initialUnknowns) {
451- ss << " \t\t\t <InitialUnknown valueReference=\" " << v->index ()- 1 << " \" " ;
463+ ss << " \t\t\t <InitialUnknown valueReference=\" " << v->index () - 1 << " \" " ;
452464 ss << " />\n " ;
453465 }
454466 }
0 commit comments