void CCopasiXMLParser::ModelParameterSetElement::end(const XML_Char *pszName) { switch (mCurrentElement) { case ModelParameterSet: if (strcmp(pszName, "ModelParameterSet")) CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "ModelParameterSet", mParser.getCurrentLineNumber()); mCommon.ModelParameterGroupStack.pop(); mParser.popElementHandler(); mLastKnownElement = START_ELEMENT; /* Tell the parent element we are done. */ mParser.onEndElement(pszName); break; case MiriamAnnotation: if (strcmp(pszName, "MiriamAnnotation")) CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "MiriamAnnotation", mParser.getCurrentLineNumber()); { CModelParameterSet * pModelParameterSet = static_cast< CModelParameterSet * >(mCommon.ModelParameterGroupStack.top()); pModelParameterSet->setMiriamAnnotation(mCommon.CharacterData, pModelParameterSet->getKey(), mKey); } mCommon.CharacterData = ""; break; case Comment: if (strcmp(pszName, "Comment")) CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "Comment", mParser.getCurrentLineNumber()); static_cast< CModelParameterSet * >(mCommon.ModelParameterGroupStack.top())->setNotes(mCommon.CharacterData); mCommon.CharacterData = ""; break; case ListOfUnsupportedAnnotations: if (strcmp(pszName, "ListOfUnsupportedAnnotations")) CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "ListOfUnsupportedAnnotations", mParser.getCurrentLineNumber()); static_cast< CModelParameterSet * >(mCommon.ModelParameterGroupStack.top())->getUnsupportedAnnotations() = mParser.mListOfUnsupportedAnnotationsElement.getUnsupportedAnnotations(); break; case Content: if (strcmp(pszName, "ModelParameterGroup") && strcmp(pszName, "ModelParameter")) { CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "ModelParameterGroup or ModelParameter", mParser.getCurrentLineNumber()); } if (mCommon.pCurrentModelParameter != NULL) { mCommon.ModelParameterGroupStack.top()->add(mCommon.pCurrentModelParameter); mCommon.pCurrentModelParameter = NULL; } // Content may be repeated therefore we set to the previous element which is ListOfUnkownAnnotations. mCurrentElement = mLastKnownElement = ModelParameterSet; break; case UNKNOWN_ELEMENT: mCurrentElement = mLastKnownElement; break; default: CCopasiMessage(CCopasiMessage::EXCEPTION, MCXML + 11, pszName, "???", mParser.getCurrentLineNumber()); break; } return; }