From b4243defaeeb24819895e1d503f4f969c874e815 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Thu, 6 Mar 2014 12:05:52 +0000 Subject: added example for XmlAttributeHandler git-svn-id: file:///var/local/svn/basicwriter@31 daaaf23c-2e50-4459-9457-1e69db5a47bf --- src/xml/XmlReader.cpp | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/xml/XmlReader.cpp') 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 XmlReader::process() std::shared_ptr XmlReader::readDomain() { - if (!xml.attributes().hasAttribute("name")) { - std::cout << "Expected name attribute!" << std::endl; - return nullptr; + std::shared_ptr res{new model::domain::Domain()}; + std::map 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(new model::domain::Domain()); + std::cout << res->getName() << std::endl; + return res; } } -- cgit v1.2.3