bool SimulationMaker::readIntegratorElement(QObject* parent) { Q_ASSERT(reader->isStartElement() && parent); QString type = attributeValue("type"); if (type.isEmpty()) throw Exception(message("Missing 'type' attribute for 'integrator' element")); QString name = attributeValue("name"); if (name.isEmpty()) name = "anonymous"; Integrator *integrator; try { integrator = IntegratorMaker::create(type, name, parent); } catch (Exception &ex) { throw Exception(message(ex.message())); } _sequence.clear(); nextElementDelim(); while (!reader->hasError() && reader->isStartElement()) { if (elementNameEquals("sequence")) { readSequenceElement(integrator); } else if (elementNameEquals("parameter")){ readParameterElement(dynamic_cast<Parameters*>(integrator)); } else { throw Exception(message( "Unknown element in 'model' element: " + elementName())); } } Q_ASSERT(reader->isEndElement()); nextElementDelim(); return integrator; }
bool SimulationMaker::readIntegratorElement(QObject* parent) { Q_ASSERT(reader->isStartElement() && parent); QString type = attributeValue("type", parent); QString name = attributeValue("name", "anonymous"); Integrator *integrator; try { integrator = IntegratorMaker::create(type, name, parent); } catch (Exception &ex) { throw Exception(message(ex.message())); } _sequence.clear(); nextElementDelim(); while (!reader->hasError() && reader->isStartElement()) { if (elementNameEquals("sequence")) { readSequenceElement(integrator); } else if (elementNameEquals("parameter")){ readParameterElement(integrator); } else if (elementNameEquals("model")){ readModelElement(integrator); } else { throw Exception(message( "Unexpected element: '" + elementName() + "'"), parent); } } Q_ASSERT(reader->isEndElement()); nextElementDelim(); return integrator; }