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