Skip to content
Snippets Groups Projects

Throw sensible error for wrong mission choice

Merged gPauls-TUHH requested to merge fix/create-mission_xml_error_catching into develop
2 files
+ 54
8
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -27,10 +27,14 @@
*/
create_mission_xml::create_mission_xml(const int argc, char *argv[], const std::string &toolName,
const std::string &toolVersion)
: Module(argc, argv, toolName, toolVersion) {
std::string mission_choice = EndnodeReadOnly<std::string>("program_settings/mission_selector").read(rtIO_->moduleConfig).value();
route_ = {mission_choice}; // By now, only one level depth vector
missionStrategy_.setStrategy(missionSelection_(route_)(rtIO_));
: Module(argc, argv, toolName, toolVersion) {
std::string mission_type = EndnodeReadOnly<std::string>("program_settings/mission_selector").read(rtIO_->moduleConfig).value();
if (mission_type != "design_mission" && mission_type != "study_mission" && mission_type != "requirements_mission") {
throwError(__FILE__, __func__, __LINE__, "Specified mission '" + mission_type +
"' is unkown! Only use 'design_mission', 'study_mission' or 'requirements_mission'. Abort program!");
}
route_ = {mission_type}; // By now, only one level depth vector
missionStrategy_.setStrategy(missionSelection_(route_)(rtIO_));
}
strategyaccess create_mission_xml::missionSelection_(const std::vector<std::string> &route) {
@@ -39,6 +43,6 @@ strategyaccess create_mission_xml::missionSelection_(const std::vector<std::stri
{"design_mission", [](const std::shared_ptr<RuntimeIO>& arg) { return std::make_unique<design_mission::standard_mission>(arg); }},
{"study_mission", [](const std::shared_ptr<RuntimeIO>& arg) { return std::make_unique<study_mission::standard_mission>(arg); }},
{"requirements_mission", [](const std::shared_ptr<RuntimeIO>& arg) { return std::make_unique<requirements_mission::standard_mission>(arg); }}
};
return table[route.at(0)];
};
return table[route.at(0)];
}
Loading