diff options
Diffstat (limited to 'src')
-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; } } |