18 const std::string& linkName,
19 const std::string& linkor,
20 const std::string& linkex,
21 const double& already_installed_capacity,
22 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger);
27 const double& already_installed_capacity,
28 std::map<unsigned, unsigned> mc_year_to_chronicle,
29 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger);
31 void setAlreadyInstalledLinkProfiles(
const std::vector<LinkProfile>& linkProfile);
34 const std::vector<LinkProfile>& candidate_profile);
35 [[nodiscard]]
const std::vector<Candidate>& getCandidates()
const;
37 [[nodiscard]]
double already_installed_direct_profile(
size_t timeStep)
const;
38 [[nodiscard]]
double already_installed_indirect_profile(
size_t timeStep)
const;
39 [[nodiscard]]
double already_installed_direct_profile(
size_t chronicle_number,
40 size_t timeStep)
const;
41 [[nodiscard]]
double already_installed_indirect_profile(
size_t chronicle_number,
42 size_t timeStep)
const;
44 [[nodiscard]]
unsigned get_idLink()
const;
45 [[nodiscard]] LinkName get_LinkName()
const;
46 [[nodiscard]] std::string get_linkor()
const;
47 [[nodiscard]]
const std::string& linkor()
const;
48 [[nodiscard]] std::string get_linkex()
const;
49 [[nodiscard]]
const std::string& linkex()
const;
50 [[nodiscard]]
double get_already_installed_capacity()
const;
52 [[nodiscard]] std::map<unsigned int, unsigned int> McYearToChronicle()
const
54 return mc_year_to_chronicle_;
57 [[nodiscard]]
unsigned long number_of_chronicles()
const;
60 std::map<unsigned, unsigned> mc_year_to_chronicle_;
66 double _already_installed_capacity = 1;
68 std::vector<LinkProfile> _already_installed_profile = {};
69 std::vector<Candidate> _candidates = {};
70 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger_;
77 std::map<std::string, std::vector<LinkProfile>> profile_map,
79 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger);
82 const std::map<std::string, std::vector<LinkProfile>>& profile_map,
83 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger);
86 :
public LogUtils::XpansionError<std::runtime_error>
88 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
92 :
public LogUtils::XpansionError<std::runtime_error>
94 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
99 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
104 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
108 :
public LogUtils::XpansionError<std::runtime_error>
110 using LogUtils::XpansionError<std::runtime_error>::XpansionError;
113 const std::vector<ActiveLink>& getLinks();
119 double installed_capacity;
120 std::string profile_name;
125 void checkCandidateNameDuplication()
const;
126 void checkLinksValidity();
128 int getLinkIndexOf(
int link_id)
const;
130 void launchExceptionIfNoLinkProfileAssociated(
const std::string& profileName)
const;
133 void raise_errors_if_link_data_differs_from_existing_link(
const LinkData& link_data,
134 const LinkName& link_name)
const;
137 LinkProfile getProfileFromProfileMap(
const std::string& profile_name)
const;
138 std::vector<LinkProfile> getProfilesFromProfileMap(
const std::string& profile_name)
const;
140 std::map<LinkName, LinkData> _links_data;
141 std::unordered_map<LinkName, std::string> linkToAlreadyInstalledProfileName;
142 std::unordered_map<LinkName, double> linkToAlreadyInstalledCapacity;
143 const std::vector<CandidateData> _candidateDatas;
144 const std::map<std::string, std::vector<LinkProfile>> _profile_map;
145 std::vector<ActiveLink> _links;
147 std::shared_ptr<ProblemGenerationLog::ProblemGenerationLogger> logger_;