summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2014-03-06 12:05:52 +0000
committerandreas <andreas@daaaf23c-2e50-4459-9457-1e69db5a47bf>2014-03-06 12:05:52 +0000
commitb4243defaeeb24819895e1d503f4f969c874e815 (patch)
treeb2dfd884969bfabe0b0774be9354aaefdac8c270 /src
parentc5f8c3911d01f1a85f9f76673e3dcb237220b845 (diff)
added example for XmlAttributeHandler
git-svn-id: file:///var/local/svn/basicwriter@31 daaaf23c-2e50-4459-9457-1e69db5a47bf
Diffstat (limited to 'src')
-rw-r--r--src/xml/XmlReader.cpp17
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;
}
}