CYCLUS
Loading...
Searching...
No Matches
economic_entity.h
Go to the documentation of this file.
1
#ifndef ECONOMIC_ENTITY_H
2
#define ECONOMIC_ENTITY_H
3
4
#include <stdexcept>
5
#include <string>
6
#include <unordered_map>
7
8
class
EconomicEntity
{
9
public
:
10
virtual
double
GetEconParameter
(
const
std::string& key)
const
{
11
auto
it = financial_data_.find(key);
12
if
(it != financial_data_.end()) {
13
return
it->second;
14
}
else
{
15
throw
std::runtime_error(
"Key '"
+ key +
16
"' not found in financial_data_"
);
17
}
18
}
19
virtual
void
SetEconParameter
(
const
std::string& key,
double
value) {
20
financial_data_[key] = value;
21
}
22
23
// Given default implementation so as not to break backwards compatability
24
virtual
std::unordered_map<std::string, double>
InitializeParamList
()
const
{
25
return
{};
26
};
27
28
void
InitializeCosts
() {
29
std::unordered_map<std::string, double> econ_params =
InitializeParamList
();
30
for
(
const
auto
& parameter : econ_params) {
31
SetEconParameter
(parameter.first, parameter.second);
32
}
33
}
34
35
private
:
36
std::unordered_map<std::string, double> financial_data_;
37
};
38
39
#endif
// ECONOMIC_ENTITY_H
EconomicEntity
Definition
economic_entity.h:8
EconomicEntity::InitializeCosts
void InitializeCosts()
Definition
economic_entity.h:28
EconomicEntity::InitializeParamList
virtual std::unordered_map< std::string, double > InitializeParamList() const
Definition
economic_entity.h:24
EconomicEntity::SetEconParameter
virtual void SetEconParameter(const std::string &key, double value)
Definition
economic_entity.h:19
EconomicEntity::GetEconParameter
virtual double GetEconParameter(const std::string &key) const
Definition
economic_entity.h:10
src
economic_entity.h
Generated by
1.13.2