| 319 | } |
| 320 | |
| 321 | void BT::XMLParser::PImpl::loadSubtreeModel(const XMLElement* xml_root) |
| 322 | { |
| 323 | for(auto models_node = xml_root->FirstChildElement("TreeNodesModel"); |
| 324 | models_node != nullptr; models_node = models_node->NextSiblingElement("TreeNodesMo" |
| 325 | "del")) |
| 326 | { |
| 327 | for(auto sub_node = models_node->FirstChildElement("SubTree"); sub_node != nullptr; |
| 328 | sub_node = sub_node->NextSiblingElement("SubTree")) |
| 329 | { |
| 330 | auto subtree_id = sub_node->Attribute("ID"); |
| 331 | if(subtree_id == nullptr) |
| 332 | { |
| 333 | throw RuntimeError("Missing attribute 'ID' in SubTree element " |
| 334 | "within TreeNodesModel"); |
| 335 | } |
| 336 | parseSubtreeModelPorts(sub_node, subtree_models[subtree_id]); |
| 337 | } |
| 338 | } |
| 339 | } |
| 340 | |
| 341 | void XMLParser::PImpl::loadDocImpl(XMLDocument* doc, bool add_includes) |
| 342 | { |
nothing calls this directly
no test coverage detected