1#include "JSONSettingsParser.h"
5#include "Exceptions/FileDoesNotExistException.h"
6#include "Exceptions/CantFindValueException.h"
15 JSONSettingsParser::ExecutorSettings::ExecutorSettings() :
16 executorLoadType(loadType::none)
21 JSONSettingsParser::JSONSettingsParser(
const string& JSONSettings)
23 ifstream in(JSONSettings);
27 throw file_manager::exceptions::FileDoesNotExistException(JSONSettings);
30 json::JSONParser parser;
36 for (
const auto& [name, description] : parser)
38 const json::utility::jsonObject& data = get<json::utility::jsonObject>(description);
39 const string& loadType = data.getString(
"loadType");
40 ExecutorSettings executorSettings;
42 data.tryGetObject(
"initParameters", executorSettings.initParameters);
44 executorSettings.name = name;
46 if (loadType == json_settings_values::initializationLoadTypeValue)
48 executorSettings.executorLoadType = ExecutorSettings::loadType::initialization;
50 else if (loadType == json_settings_values::dynamicLoadTypeValue)
52 executorSettings.executorLoadType = ExecutorSettings::loadType::dynamic;
56 throw runtime_error(
"Wrong loadType");
59 settings.try_emplace(::utility::strings::replaceAll(data.getString(
"route"),
" ",
"%20"), move(executorSettings));
63 const unordered_map<string, JSONSettingsParser::ExecutorSettings>& JSONSettingsParser::getSettings()
const
70 return settings.at(executorName);