58 for (
const auto& keyValue : mapArg) {
72 const auto i =
myMap.find(key);
73 if (i !=
myMap.end()) {
82 const auto i =
myMap.find(key);
83 if (i !=
myMap.end()) {
87 WRITE_WARNING(
"Invalid conversion from string to double (" + i->second +
")");
90 WRITE_WARNING(
"Invalid conversion from string to double (empty value)");
100 const auto i =
myMap.find(key);
101 if (i !=
myMap.end()) {
103 std::vector<double> result;
109 WRITE_WARNING(
"Invalid conversion from string to doubles (" + i->second +
")");
112 WRITE_WARNING(
"Invalid conversion from string to doubles (empty value)");
125 const std::map<std::string, std::string>&
136 for (
const auto& keyValue :
myMap) {
140 result += keyValue.first + kvsep + keyValue.second;
163 for (
const auto& keyValue : paramsMap) {
176 for (
const auto& keyValue : parameters) {
187 for (
const auto& keyValue :
myMap) {
200 for (
const auto& keyValueStr : parameters) {
205 WRITE_WARNING(
"Invalid format of parameter (" + keyValueStr +
")");
220 if (value.find(sep) != std::string::npos || value.find(kvsep) == std::string::npos) {
226 if (keyValueStr.size() == 2) {
#define WRITE_WARNING(msg)
@ SUMO_TAG_PARAM
parameter associated to a certain key
Static storage of an output device and its base (abstract) implementation.
OutputDevice & openTag(const std::string &xmlElement)
Opens an XML tag.
OutputDevice & writeAttr(const SumoXMLAttr attr, const T &val)
writes a named attribute
bool closeTag(const std::string &comment="")
Closes the most recently opened tag and optionally adds a comment.
An upper class for objects with additional parameters.
std::vector< double > getDoubles(const std::string &key, std::vector< double > defaultValue=std::vector< double >()) const
Returns the value for a given key converted to a list of doubles.
static bool isParameterValid(const std::string &value, const std::string &kvsep, const std::string &sep)
check if given string can be parsed to a parameter of type "key=value"
static bool areParametersValid(const std::string &value, bool report=false, const std::string kvsep="=", const std::string sep="|")
check if given string can be parsed to a parameters map "key1=value1|key2=value2|....
void unsetParameter(const std::string &key)
Removes a parameter.
double getDouble(const std::string &key, const double defaultValue) const
Returns the value for a given key converted to a double.
Parameterised()
Default constructor (for Strings)
void setParameters(const Parameterised ¶ms)
set the inner key/value map in map<string, string> format
void setParametersStr(const std::string ¶msString, const std::string kvsep="=", const std::string sep="|")
set the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN"
~Parameterised()
Destructor.
void clearParameter()
Clears the parameter map.
virtual const std::string getParameter(const std::string &key, const std::string defaultValue="") const
Returns the value for a given key.
std::map< std::string, std::string > myMap
The key->value map.
void writeParams(OutputDevice &device) const
write Params in the given outputdevice
virtual void setParameter(const std::string &key, const std::string &value)
Sets a parameter.
std::string getParametersStr(const std::string kvsep="=", const std::string sep="|") const
Returns the inner key/value map in string format "key1=value1|key2=value2|...|keyN=valueN".
void updateParameters(const std::map< std::string, std::string > &mapArg)
Adds or updates all given parameters from the map.
void setParametersMap(const std::map< std::string, std::string > ¶msMap)
set the inner key/value map in map<string, string> format
const std::map< std::string, std::string > & getParametersMap() const
Returns the inner key/value map.
bool knowsParameter(const std::string &key) const
Returns whether the parameter is known.
static bool isValidParameterKey(const std::string &value)
whether the given string is a valid key for a parameter
std::vector< std::string > getVector()
return vector of strings
static double toDouble(const std::string &sData)
converts a string into the double value described by it by calling the char-type converter
static std::string escapeXML(const std::string &orig, const bool maskDoubleHyphen=false)
Replaces the standard escapes by their XML entities.