47 std::set<std::string> ids;
49 if (pSBMLModel != NULL)
52 const SBase* pSBase = NULL;
55 if (pSBMLModel->isSetId())
57 id = pSBMLModel->getId();
59 if (ids.find(
id) == ids.end())
70 pSBase = pSBMLModel->getListOfFunctionDefinitions();
74 if (pSBase->isSetId())
78 if (ids.find(
id) == ids.end())
88 unsigned int i, iMax = pSBMLModel->getListOfFunctionDefinitions()->size();
90 for (i = 0; i < iMax; ++i)
92 pSBase = pSBMLModel->getListOfFunctionDefinitions()->get(i);
94 if (pSBase->isSetId())
98 if (ids.find(
id) == ids.end())
111 pSBase = pSBMLModel->getListOfCompartmentTypes();
115 if (pSBase->isSetId())
117 id = pSBase->getId();
119 if (ids.find(
id) == ids.end())
130 unsigned int i, iMax = pSBMLModel->getListOfCompartmentTypes()->size();
132 for (i = 0; i < iMax; ++i)
134 pSBase = pSBMLModel->getCompartmentType(i);
135 assert(pSBase != NULL);
137 if (pSBase->isSetId())
139 id = pSBase->getId();
141 if (ids.find(
id) == ids.end())
154 pSBase = pSBMLModel->getListOfSpeciesTypes();
158 if (pSBase->isSetId())
160 id = pSBase->getId();
162 if (ids.find(
id) == ids.end())
173 unsigned int i, iMax = pSBMLModel->getListOfSpeciesTypes()->size();
175 for (i = 0; i < iMax; ++i)
177 pSBase = pSBMLModel->getSpeciesType(i);
178 assert(pSBase != NULL);
180 if (pSBase->isSetId())
182 id = pSBase->getId();
184 if (ids.find(
id) == ids.end())
197 pSBase = pSBMLModel->getListOfCompartments();
201 if (pSBase->isSetId())
203 id = pSBase->getId();
205 if (ids.find(
id) == ids.end())
216 unsigned int i, iMax = pSBMLModel->getListOfCompartments()->size();
218 for (i = 0; i < iMax; ++i)
220 pSBase = pSBMLModel->getCompartment(i);
221 assert(pSBase != NULL);
223 if (pSBase->isSetId())
225 id = pSBase->getId();
227 if (ids.find(
id) == ids.end())
240 pSBase = pSBMLModel->getListOfSpecies();
244 if (pSBase->isSetId())
246 id = pSBase->getId();
248 if (ids.find(
id) == ids.end())
259 unsigned int i, iMax = pSBMLModel->getListOfSpecies()->size();
261 for (i = 0; i < iMax; ++i)
263 pSBase = pSBMLModel->getSpecies(i);
264 assert(pSBase != NULL);
266 if (pSBase->isSetId())
268 id = pSBase->getId();
270 if (ids.find(
id) == ids.end())
283 pSBase = pSBMLModel->getListOfParameters();
287 if (pSBase->isSetId())
289 id = pSBase->getId();
291 if (ids.find(
id) == ids.end())
302 unsigned int i, iMax = pSBMLModel->getListOfParameters()->size();
304 for (i = 0; i < iMax; ++i)
306 pSBase = pSBMLModel->getParameter(i);
307 assert(pSBase != NULL);
309 if (pSBase->isSetId())
311 id = pSBase->getId();
313 if (ids.find(
id) == ids.end())
326 pSBase = pSBMLModel->getListOfInitialAssignments();
330 if (pSBase->isSetId())
332 id = pSBase->getId();
334 if (ids.find(
id) == ids.end())
346 pSBase = pSBMLModel->getListOfRules();
350 if (pSBase->isSetId())
352 id = pSBase->getId();
354 if (ids.find(
id) == ids.end())
366 pSBase = pSBMLModel->getListOfConstraints();
370 if (pSBase->isSetId())
372 id = pSBase->getId();
374 if (ids.find(
id) == ids.end())
386 pSBase = pSBMLModel->getListOfReactions();
390 if (pSBase->isSetId())
392 id = pSBase->getId();
394 if (ids.find(
id) == ids.end())
405 unsigned int i, iMax = pSBMLModel->getListOfReactions()->size();
407 for (i = 0; i < iMax; ++i)
409 const Reaction* pReaction = pSBMLModel->getReaction(i);
410 assert(pReaction != NULL);
412 if (pReaction->isSetId())
414 id = pReaction->getId();
416 if (ids.find(
id) == ids.end())
429 if (pReaction->getListOfReactants() != NULL)
431 pSBase = pReaction->getListOfReactants();
432 unsigned int j, jMax = pReaction->getListOfReactants()->size();
434 for (j = 0; j < jMax; ++j)
436 pSBase = pReaction->getReactant(j);
437 assert(pSBase != NULL);
440 if (pSBase->isSetId())
442 id = pSBase->getId();
444 if (ids.find(
id) == ids.end())
456 if (pReaction->getListOfProducts() != NULL)
458 pSBase = pReaction->getListOfProducts();
459 unsigned int j, jMax = pReaction->getListOfProducts()->size();
461 for (j = 0; j < jMax; ++j)
463 pSBase = pReaction->getProduct(j);
464 assert(pSBase != NULL);
467 if (pSBase->isSetId())
469 id = pSBase->getId();
471 if (ids.find(
id) == ids.end())
483 if (pReaction->getListOfModifiers() != NULL)
485 pSBase = pReaction->getListOfModifiers();
486 unsigned int j, jMax = pReaction->getListOfModifiers()->size();
488 for (j = 0; j < jMax; ++j)
490 pSBase = pReaction->getModifier(j);
491 assert(pSBase != NULL);
494 if (pSBase->isSetId())
496 id = pSBase->getId();
498 if (ids.find(
id) == ids.end())
513 pSBase = pSBMLModel->getListOfEvents();
517 if (pSBase->isSetId())
519 id = pSBase->getId();
521 if (ids.find(
id) == ids.end())