42 start()
const {
return mapSet; }
83 if (tTextToParse.empty())
85 errorOut(
"No std::string to parse!");
89 if (atts.find(
"type") != atts.end() && atts.find(
"type")->second ==
"string")
91 errorOut(
"Map of type std::string is not supported yet.");
101 errorOut(
"Does not conform to name=value, name=value... etc. of ddl Map element.");
108 else if (
parent() ==
"ConstantsSection" ||
parent() ==
"DDDefinition")
111 for (std::map<std::string, double>::const_iterator it =
pMap.begin(); it !=
pMap.end(); ++it)
113 (*tMap)[it->first] = it->second;
120 std::string nEntries = atts.find(
"nEntries")->second;
124 errorOut(
"Number of entries found in Map text does not match number in attribute nEntries.");
153 msg+=
"\n as a Map element (comma separated list of name=value).";
ReadMapType< std::map< std::string, double > > pMapMap
void operator()(char const *str, char const *end) const
DDLElementRegistry * myRegistry_
DDLMap(DDLElementRegistry *myreg)
ReadMapType< double > dd_map_type
simply a std::map<std::string,double> supporting an addional operator[] const
virtual const DDXMLAttribute & getAttributeSet(size_t aIndex=0) const
Get a "row" of attributes, i.e. one attribute set.
void throwError(const std::string &keyMessage) const
format std::string for throw an error.
ReadMapType< std::map< std::string, double > > & getMapOfMaps(void)
const std::string & parent(void) const
access to parent element name
void processElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Processing the element.
type of data representation of DDCompactView
a named constant corresponding to the DDL-XML tag <Constant> and <ConstantsVector> ...
std::map< std::string, std::string > DDXMLAttribute
virtual std::vector< DDXMLAttribute >::const_iterator end(void)
static value_type & instance()
friend class MapMakeDouble
ClhepEvaluator & evaluator()
definition(Mapper const &self)
void do_makeName(char const *str, char const *end)
void operator()(char const *str, char const *end) const
void preProcessElement(const std::string &name, const std::string &nmspace, DDCompactView &cpv) override
Called by loadAttributes AFTER attributes are loaded.
void do_pair(char const *str, char const *end)
DDLMap handles Map container.
This is a base class for processing XML elements in the DDD.
void errorOut(const char *str)
rule< ScannerT > const & start() const
double eval(const std::string &ns, const std::string &expr)
The main class for processing parsed elements.
virtual void clear(void)
clear this element's contents.
void do_makeDouble(char const *str, char const *end)
virtual const DDName getDDName(const std::string &defaultNS, const std::string &attname=std::string("name"), size_t aIndex=0)
void operator()(char const *str, char const *end) const
const std::string getText(size_t tindex=0) const
retrieve the text blob.