summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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;
}
}