This method goes through the given SBML model and collects all ids and meta ids used in the model.
101 SBase* pSBase = NULL;
104 if (pModel->isSetId())
106 id = pModel->getId();
108 if (ids.find(
id) == ids.end())
110 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
118 if (pModel->isSetMetaId())
120 id = pModel->getMetaId();
122 if (metaIds.find(
id) == metaIds.end())
124 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
133 pSBase = pModel->getListOfFunctionDefinitions();
137 if (pSBase->isSetId())
139 id = pSBase->getId();
141 if (ids.find(
id) == ids.end())
143 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
151 if (pSBase->isSetMetaId())
153 id = pSBase->getMetaId();
155 if (metaIds.find(
id) == metaIds.end())
157 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
166 unsigned int i, iMax = pModel->getListOfFunctionDefinitions()->size();
168 for (i = 0; i < iMax; ++i)
170 pSBase = pModel->getListOfFunctionDefinitions()->get(i);
172 if (pSBase->isSetId())
174 id = pSBase->getId();
176 if (ids.find(
id) == ids.end())
178 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
186 if (pSBase->isSetMetaId())
188 id = pSBase->getMetaId();
190 if (metaIds.find(
id) == metaIds.end())
192 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
203 pSBase = pModel->getListOfUnitDefinitions();
207 if (pSBase->isSetMetaId())
209 id = pSBase->getMetaId();
211 if (metaIds.find(
id) == metaIds.end())
213 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
223 unsigned int i, iMax = pModel->getListOfUnitDefinitions()->size();
225 for (i = 0; i < iMax; ++i)
230 UnitDefinition* pUDef = pModel->getUnitDefinition(i);
231 assert(pUDef != NULL);
233 if (pUDef->isSetMetaId())
235 id = pUDef->getMetaId();
237 if (metaIds.find(
id) == metaIds.end())
239 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pUDef));
247 ListOf* pList = pUDef->getListOfUnits();
251 if (pList->isSetMetaId())
253 id = pList->getMetaId();
255 if (metaIds.find(
id) == metaIds.end())
257 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pList));
265 unsigned j, jMax = pList->size();
267 for (j = 0; j < jMax; ++j)
269 pSBase = pList->get(j);
270 assert(pSBase != NULL);
272 if (pSBase->isSetMetaId())
274 id = pSBase->getMetaId();
276 if (metaIds.find(
id) == metaIds.end())
278 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
291 pSBase = pModel->getListOfCompartmentTypes();
295 if (pSBase->isSetId())
297 id = pSBase->getId();
299 if (ids.find(
id) == ids.end())
301 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
309 if (pSBase->isSetMetaId())
311 id = pSBase->getMetaId();
313 if (metaIds.find(
id) == metaIds.end())
315 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
324 unsigned int i, iMax = pModel->getListOfCompartmentTypes()->size();
326 for (i = 0; i < iMax; ++i)
328 pSBase = pModel->getCompartmentType(i);
329 assert(pSBase != NULL);
331 if (pSBase->isSetId())
333 id = pSBase->getId();
335 if (ids.find(
id) == ids.end())
337 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
345 if (pSBase->isSetMetaId())
347 id = pSBase->getMetaId();
349 if (metaIds.find(
id) == metaIds.end())
351 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
362 pSBase = pModel->getListOfSpeciesTypes();
366 if (pSBase->isSetId())
368 id = pSBase->getId();
370 if (ids.find(
id) == ids.end())
372 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
380 if (pSBase->isSetMetaId())
382 id = pSBase->getMetaId();
384 if (metaIds.find(
id) == metaIds.end())
386 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
395 unsigned int i, iMax = pModel->getListOfSpeciesTypes()->size();
397 for (i = 0; i < iMax; ++i)
399 pSBase = pModel->getSpeciesType(i);
400 assert(pSBase != NULL);
402 if (pSBase->isSetId())
404 id = pSBase->getId();
406 if (ids.find(
id) == ids.end())
408 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
416 if (pSBase->isSetMetaId())
418 id = pSBase->getMetaId();
420 if (metaIds.find(
id) == metaIds.end())
422 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
433 pSBase = pModel->getListOfCompartments();
437 if (pSBase->isSetId())
439 id = pSBase->getId();
441 if (ids.find(
id) == ids.end())
443 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
451 if (pSBase->isSetMetaId())
453 id = pSBase->getMetaId();
455 if (metaIds.find(
id) == metaIds.end())
457 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
466 unsigned int i, iMax = pModel->getListOfCompartments()->size();
468 for (i = 0; i < iMax; ++i)
470 pSBase = pModel->getCompartment(i);
471 assert(pSBase != NULL);
473 if (pSBase->isSetId())
475 id = pSBase->getId();
477 if (ids.find(
id) == ids.end())
479 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
487 if (pSBase->isSetMetaId())
489 id = pSBase->getMetaId();
491 if (metaIds.find(
id) == metaIds.end())
493 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
504 pSBase = pModel->getListOfSpecies();
508 if (pSBase->isSetId())
510 id = pSBase->getId();
512 if (ids.find(
id) == ids.end())
514 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
522 if (pSBase->isSetMetaId())
524 id = pSBase->getMetaId();
526 if (metaIds.find(
id) == metaIds.end())
528 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
537 unsigned int i, iMax = pModel->getListOfSpecies()->size();
539 for (i = 0; i < iMax; ++i)
541 pSBase = pModel->getSpecies(i);
542 assert(pSBase != NULL);
544 if (pSBase->isSetId())
546 id = pSBase->getId();
548 if (ids.find(
id) == ids.end())
550 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
558 if (pSBase->isSetMetaId())
560 id = pSBase->getMetaId();
562 if (metaIds.find(
id) == metaIds.end())
564 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
575 pSBase = pModel->getListOfParameters();
579 if (pSBase->isSetId())
581 id = pSBase->getId();
583 if (ids.find(
id) == ids.end())
585 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
593 if (pSBase->isSetMetaId())
595 id = pSBase->getMetaId();
597 if (metaIds.find(
id) == metaIds.end())
599 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
608 unsigned int i, iMax = pModel->getListOfParameters()->size();
610 for (i = 0; i < iMax; ++i)
612 pSBase = pModel->getParameter(i);
613 assert(pSBase != NULL);
615 if (pSBase->isSetId())
617 id = pSBase->getId();
619 if (ids.find(
id) == ids.end())
621 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
629 if (pSBase->isSetMetaId())
631 id = pSBase->getMetaId();
633 if (metaIds.find(
id) == metaIds.end())
635 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
646 pSBase = pModel->getListOfInitialAssignments();
650 if (pSBase->isSetId())
652 id = pSBase->getId();
654 if (ids.find(
id) == ids.end())
656 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
664 if (pSBase->isSetMetaId())
666 id = pSBase->getMetaId();
668 if (metaIds.find(
id) == metaIds.end())
670 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
679 unsigned int i, iMax = pModel->getListOfInitialAssignments()->size();
681 for (i = 0; i < iMax; ++i)
683 pSBase = pModel->getInitialAssignment(i);
684 assert(pSBase != NULL);
687 if (pSBase->isSetMetaId())
689 id = pSBase->getMetaId();
691 if (metaIds.find(
id) == metaIds.end())
693 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
704 pSBase = pModel->getListOfRules();
708 if (pSBase->isSetId())
710 id = pSBase->getId();
712 if (ids.find(
id) == ids.end())
714 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
722 if (pSBase->isSetMetaId())
724 id = pSBase->getMetaId();
726 if (metaIds.find(
id) == metaIds.end())
728 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
737 unsigned int i, iMax = pModel->getListOfRules()->size();
739 for (i = 0; i < iMax; ++i)
741 pSBase = pModel->getRule(i);
742 assert(pSBase != NULL);
745 if (pSBase->isSetMetaId())
747 id = pSBase->getMetaId();
749 if (metaIds.find(
id) == metaIds.end())
751 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
762 pSBase = pModel->getListOfConstraints();
766 if (pSBase->isSetId())
768 id = pSBase->getId();
770 if (ids.find(
id) == ids.end())
772 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
780 if (pSBase->isSetMetaId())
782 id = pSBase->getMetaId();
784 if (metaIds.find(
id) == metaIds.end())
786 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
795 unsigned int i, iMax = pModel->getListOfConstraints()->size();
797 for (i = 0; i < iMax; ++i)
799 pSBase = pModel->getConstraint(i);
800 assert(pSBase != NULL);
803 if (pSBase->isSetMetaId())
805 id = pSBase->getMetaId();
807 if (metaIds.find(
id) == metaIds.end())
809 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
820 pSBase = pModel->getListOfReactions();
824 if (pSBase->isSetId())
826 id = pSBase->getId();
828 if (ids.find(
id) == ids.end())
830 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
838 if (pSBase->isSetMetaId())
840 id = pSBase->getMetaId();
842 if (metaIds.find(
id) == metaIds.end())
844 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
853 unsigned int i, iMax = pModel->getListOfReactions()->size();
855 for (i = 0; i < iMax; ++i)
857 Reaction* pReaction = pModel->getReaction(i);
858 assert(pReaction != NULL);
860 if (pReaction->isSetId())
862 id = pReaction->getId();
864 if (ids.find(
id) == ids.end())
866 ids.insert(std::pair<const std::string, const SBase*>(
id, pReaction));
874 if (pReaction->isSetMetaId())
876 id = pReaction->getMetaId();
878 if (metaIds.find(
id) == metaIds.end())
880 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pReaction));
891 if (pReaction->getListOfReactants() != NULL)
893 pSBase = pReaction->getListOfReactants();
895 if (pSBase->isSetMetaId())
897 id = pSBase->getMetaId();
899 if (metaIds.find(
id) == metaIds.end())
901 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
909 unsigned int j, jMax = pReaction->getListOfReactants()->size();
911 for (j = 0; j < jMax; ++j)
913 pSBase = pReaction->getReactant(j);
914 assert(pSBase != NULL);
917 if (pSBase->isSetId())
919 id = pSBase->getId();
921 if (ids.find(
id) == ids.end())
923 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
931 if (pSBase->isSetMetaId())
933 id = pSBase->getMetaId();
935 if (metaIds.find(
id) == metaIds.end())
937 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
947 if (pReaction->getListOfProducts() != NULL)
949 pSBase = pReaction->getListOfProducts();
951 if (pSBase->isSetMetaId())
953 id = pSBase->getMetaId();
955 if (metaIds.find(
id) == metaIds.end())
957 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
965 unsigned int j, jMax = pReaction->getListOfProducts()->size();
967 for (j = 0; j < jMax; ++j)
969 pSBase = pReaction->getProduct(j);
970 assert(pSBase != NULL);
973 if (pSBase->isSetId())
975 id = pSBase->getId();
977 if (ids.find(
id) == ids.end())
979 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
987 if (pSBase->isSetMetaId())
989 id = pSBase->getMetaId();
991 if (metaIds.find(
id) == metaIds.end())
993 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1003 if (pReaction->getListOfModifiers() != NULL)
1005 pSBase = pReaction->getListOfModifiers();
1007 if (pSBase->isSetMetaId())
1009 id = pSBase->getMetaId();
1011 if (metaIds.find(
id) == metaIds.end())
1013 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1021 unsigned int j, jMax = pReaction->getListOfModifiers()->size();
1023 for (j = 0; j < jMax; ++j)
1025 pSBase = pReaction->getModifier(j);
1026 assert(pSBase != NULL);
1029 if (pSBase->isSetId())
1031 id = pSBase->getId();
1033 if (ids.find(
id) == ids.end())
1035 ids.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1043 if (pSBase->isSetMetaId())
1045 id = pSBase->getMetaId();
1047 if (metaIds.find(
id) == metaIds.end())
1049 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1059 KineticLaw* pKLaw = pReaction->getKineticLaw();
1063 if (pKLaw->isSetMetaId())
1065 id = pKLaw->getMetaId();
1067 if (metaIds.find(
id) == metaIds.end())
1069 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pKLaw));
1077 pSBase = pKLaw->getListOfParameters();
1081 if (pSBase->isSetMetaId())
1083 id = pSBase->getMetaId();
1085 if (metaIds.find(
id) == metaIds.end())
1087 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1095 unsigned int j, jMax = pKLaw->getListOfParameters()->size();
1097 for (j = 0; j < jMax; ++j)
1099 pSBase = pKLaw->getParameter(j);
1100 assert(pSBase != NULL);
1104 if (pSBase->isSetMetaId())
1106 id = pSBase->getMetaId();
1108 if (metaIds.find(
id) == metaIds.end())
1110 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1124 pSBase = pModel->getListOfEvents();
1128 if (pSBase->isSetId())
1130 id = pSBase->getId();
1132 if (ids.find(
id) == ids.end())
1134 ids.insert(std::pair<const std::string, const SBase*>(
id, pModel));
1142 if (pSBase->isSetMetaId())
1144 id = pSBase->getMetaId();
1146 if (metaIds.find(
id) == metaIds.end())
1148 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pModel));
1157 unsigned int i, iMax = pModel->getListOfEvents()->size();
1159 for (i = 0; i < iMax; ++i)
1161 Event* pEvent = pModel->getEvent(i);
1162 assert(pEvent != NULL);
1164 if (pEvent->isSetId())
1166 id = pEvent->getId();
1168 if (ids.find(
id) == ids.end())
1170 ids.insert(std::pair<const std::string, const SBase*>(
id, pEvent));
1178 if (pEvent->isSetMetaId())
1180 id = pEvent->getMetaId();
1182 if (metaIds.find(
id) == metaIds.end())
1184 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pEvent));
1193 if (pEvent->isSetTrigger())
1195 pSBase = pEvent->getTrigger();
1196 assert(pSBase != NULL);
1198 if (pSBase->isSetMetaId())
1200 id = pSBase->getMetaId();
1202 if (metaIds.find(
id) == metaIds.end())
1204 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1213 if (pEvent->isSetDelay())
1215 pSBase = pEvent->getDelay();
1216 assert(pSBase != NULL);
1218 if (pSBase->isSetMetaId())
1220 id = pSBase->getMetaId();
1222 if (metaIds.find(
id) == metaIds.end())
1224 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1233 if (pEvent->getListOfEventAssignments() != NULL)
1235 pSBase = pEvent->getListOfEventAssignments();
1237 if (pSBase->isSetMetaId())
1239 id = pSBase->getMetaId();
1241 if (metaIds.find(
id) == metaIds.end())
1243 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));
1251 unsigned int j, jMax = pEvent->getListOfEventAssignments()->size();
1253 for (j = 0; j < jMax; ++j)
1255 pSBase = pEvent->getEventAssignment(j);
1256 assert(pSBase != NULL);
1258 if (pSBase->isSetMetaId())
1260 id = pSBase->getMetaId();
1262 if (metaIds.find(
id) == metaIds.end())
1264 metaIds.insert(std::pair<const std::string, const SBase*>(
id, pSBase));