diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-03-06 12:05:52 +0000 |
---|---|---|
committer | andreas <andreas@daaaf23c-2e50-4459-9457-1e69db5a47bf> | 2014-03-06 12:05:52 +0000 |
commit | b4243defaeeb24819895e1d503f4f969c874e815 (patch) | |
tree | b2dfd884969bfabe0b0774be9354aaefdac8c270 /src/xml/XmlReader.cpp | |
parent | c5f8c3911d01f1a85f9f76673e3dcb237220b845 (diff) |
added example for XmlAttributeHandler
git-svn-id: file:///var/local/svn/basicwriter@31 daaaf23c-2e50-4459-9457-1e69db5a47bf
Diffstat (limited to 'src/xml/XmlReader.cpp')
-rw-r--r-- | src/xml/XmlReader.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/xml/XmlReader.cpp b/src/xml/XmlReader.cpp index 95f326c..e281424 100644 --- a/src/xml/XmlReader.cpp +++ b/src/xml/XmlReader.cpp @@ -134,12 +134,19 @@ std::shared_ptr<model::GraphNode> XmlReader::process() std::shared_ptr<model::domain::Domain> XmlReader::readDomain() { - if (!xml.attributes().hasAttribute("name")) { - std::cout << "Expected name attribute!" << std::endl; - return nullptr; + std::shared_ptr<model::domain::Domain> res{new model::domain::Domain()}; + std::map<std::string, XmlAttributeHandler> handlers{ + std::make_pair("name", XmlAttributeHandler( + true, + [&](const std::string& v) -> bool {return true;}, + [&](const std::string& v) -> void {res->setName(v);} + )) + }; + if (!parseArguments(handlers)) { + std::cout << "Errors while parsing arguments for domain node!" << std::endl; } - std::cout << "domain name: " << xml.attributes().value("name").toString().toStdString() << std::endl; - return std::shared_ptr<model::domain::Domain>(new model::domain::Domain()); + std::cout << res->getName() << std::endl; + return res; } } |