Skip to content

Commit

Permalink
add converter.cpp
Browse files Browse the repository at this point in the history
  • Loading branch information
payetvin committed Dec 12, 2024
1 parent 2e5a875 commit b58f119
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/solver/systemParser/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ find_package(yaml-cpp REQUIRED)

set(SOURCES
parser.cpp
converter.cpp
encoders.hxx
include/antares/solver/systemParser/parser.h
include/antares/solver/systemParser/system.h
Expand All @@ -19,6 +20,8 @@ target_include_directories(systemParser

# Link dependencies (if any)
target_link_libraries(systemParser
PUBLIC
Antares::antares-study-system-model
PRIVATE
yaml-cpp
)
Expand Down
62 changes: 62 additions & 0 deletions src/solver/systemParser/converter.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright 2007-2024, RTE (https://www.rte-france.com)
* See AUTHORS.txt
* SPDX-License-Identifier: MPL-2.0
* This file is part of Antares-Simulator,
* Adequacy and Performance assessment for interconnected energy networks.
*
* Antares_Simulator is free software: you can redistribute it and/or modify
* it under the terms of the Mozilla Public Licence 2.0 as published by
* the Mozilla Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Antares_Simulator is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* Mozilla Public Licence 2.0 for more details.
*
* You should have received a copy of the Mozilla Public Licence 2.0
* along with Antares_Simulator. If not, see <https://opensource.org/license/mpl-2-0/>.
*/

#include "antares/solver/systemParser/system.h"
#include "antares/study/system-model/system.h"

using namespace Antares::Study;

namespace Antares::Solver::SystemConverter
{

static SystemModel::Component createComponent(const SystemParser::Component& c)
{
SystemModel::ModelBuilder model_builder;
auto model = model_builder.withId(c.model).build();
SystemModel::ComponentBuilder component_builder;

/* std::map<std::string, double> parameters; */
/* for (const auto& p : c.parameters) */
/* { */
/* parameters.try_emplace(p.id, p.value); */
/* } */

auto component = component_builder.withId(c.id)
.withModel(&model)
.withScenarioGroupId(c.scenarioGroup)
/* .withParameterValues(parameters) */
.build();
return component;
}

SystemModel::System convert(const SystemParser::System& parserSystem)
{
std::vector<SystemModel::Component> components;
for (const auto& c: parserSystem.components)
{
components.push_back(createComponent(c));
}

SystemModel::SystemBuilder builder;
return builder.withId(parserSystem.id).withComponents(components).build();
}

} // namespace Antares::Solver::SystemConverter

0 comments on commit b58f119

Please sign in to comment.