29 #include "portField.h"
31 namespace Antares::ModelerStudy::SystemModel
38 std::vector<PortField>&& fields,
39 const std::string& areaConnectionFieldId =
""):
41 fields_(std::move(fields))
43 if (!areaConnectionFieldId.empty())
45 if (!std::ranges::any_of(fields_,
46 [areaConnectionFieldId](
const auto& field)
47 {
return field.Id() == areaConnectionFieldId; }))
49 throw std::invalid_argument(
50 "Field \"" + areaConnectionFieldId
51 +
"\" selected for area connections was not defined in PortType \"" + id_
54 areaConnectionFieldId_ = areaConnectionFieldId;
58 const std::string& Id()
const
63 const std::vector<PortField>& Fields()
const
68 const std::optional<std::string>& AreaConnectionFieldId()
const
70 return areaConnectionFieldId_;
73 bool operator==(
const PortType& other)
const =
default;
78 std::vector<PortField> fields_;
80 std::optional<std::string> areaConnectionFieldId_;
Definition: portType.h:35