END_TEST START_TEST (test_GetMultipleObjects_noLocalParameters) { SBMLReader reader; SBMLDocument* d; std::string filename(TestDataDirectory); filename += "multiple-ids.xml"; d = reader.readSBML(filename); if (d == NULL) { fail("readSBML(\"multiple-ids.xml\") returned a NULL pointer."); } SBase* rxn = d->getElementBySId("J0"); fail_unless(rxn != NULL); SBase* obj = rxn->getElementBySId("x"); fail_unless(obj == NULL); obj = rxn->getElementByMetaId("meta28"); fail_unless(obj != NULL); fail_unless(obj->getTypeCode() == SBML_LOCAL_PARAMETER); delete d; }
SBase* ListOf::getElementByMetaId(const std::string& metaid) { if (metaid.empty()) return NULL; for (unsigned int i = 0; i < size(); i++) { SBase* obj = get(i); if (obj->getMetaId() == metaid) { return obj; } obj = obj->getElementByMetaId(metaid); if (obj != NULL) return obj; } return getElementFromPluginsByMetaId(metaid); }