15 #define START_ELEMENT -1
16 #define UNKNOWN_ELEMENT -2
23 mpModelParameterSetElement(NULL)
29 pdelete(mpModelParameterSetElement);
34 const XML_Char **papszAttrs)
36 mpCurrentHandler = NULL;
37 mCurrentElement = mLastKnownElement;
39 while (mpCurrentHandler == NULL)
43 switch (mCurrentElement)
45 case ListOfModelParameterSets:
47 if (strcmp(pszName,
"ListOfModelParameterSets"))
49 pszName,
"ListOfModelParameterSets",
mParser.getCurrentLineNumber());
51 mLastKnownElement = ListOfModelParameterSets;
54 mActiveSet =
mParser.getAttributeValue(
"activeSet", papszAttrs,
"");
58 case ModelParameterSet:
60 if (!strcmp(pszName,
"ModelParameterSet"))
63 if (!mpModelParameterSetElement)
66 mpCurrentHandler = mpModelParameterSetElement;
73 mpCurrentHandler = &
mParser.mUnknownElement;
78 mParser.pushElementHandler(mpCurrentHandler);
80 if (mpCurrentHandler != &
mParser.mUnknownElement)
82 mLastKnownElement = mCurrentElement;
85 mParser.onStartElement(pszName, papszAttrs);
91 switch (mCurrentElement)
93 case ListOfModelParameterSets:
95 if (strcmp(pszName,
"ListOfModelParameterSets"))
97 pszName,
"ListOfModelParameterSets",
mParser.getCurrentLineNumber());
101 mLastKnownElement = mCurrentElement;
109 case ModelParameterSet:
111 if (strcmp(pszName,
"ModelParameterSet"))
113 pszName,
"ModelParameterSet",
mParser.getCurrentLineNumber());
118 if (pModelParameterSet != NULL)
123 delete pModelParameterSet;
133 mCurrentElement = ListOfModelParameterSets;
137 mCurrentElement = mLastKnownElement;
142 pszName,
"???",
mParser.getCurrentLineNumber());
146 mLastKnownElement = mCurrentElement;
155 mpModelParameterGroupElement(NULL),
156 mpModelParameterElement(NULL)
161 pdelete(mpModelParameterGroupElement);
162 pdelete(mpModelParameterElement);
166 const XML_Char **papszAttrs)
170 mpCurrentHandler = NULL;
171 mCurrentElement = mLastKnownElement;
173 while (mpCurrentHandler == NULL)
177 switch (mCurrentElement)
179 case ModelParameterSet:
181 if (strcmp(pszName,
"ModelParameterSet"))
183 pszName,
"ModelParameterSet",
mParser.getCurrentLineNumber());
185 mLastKnownElement = ModelParameterSet;
188 mKey =
mParser.getAttributeValue(
"key", papszAttrs);
189 Name =
mParser.getAttributeValue(
"name", papszAttrs);
198 std::ostringstream NewName;
199 NewName << Name <<
"[" << index++ <<
"]";
208 case MiriamAnnotation:
210 if (!strcmp(pszName,
"MiriamAnnotation"))
212 mpCurrentHandler = &
mParser.mMiriamAnnotationElement;
213 mLastKnownElement = mCurrentElement;
220 if (!strcmp(pszName,
"Comment"))
222 mpCurrentHandler = &
mParser.mCommentElement;
223 mLastKnownElement = mCurrentElement;
228 case ListOfUnsupportedAnnotations:
230 if (!strcmp(pszName,
"ListOfUnsupportedAnnotations"))
231 mpCurrentHandler = &
mParser.mListOfUnsupportedAnnotationsElement;
237 if (!strcmp(pszName,
"ModelParameterGroup"))
240 if (!mpModelParameterGroupElement)
243 mpCurrentHandler = mpModelParameterGroupElement;
245 else if (!strcmp(pszName,
"ModelParameter"))
248 if (!mpModelParameterElement)
251 mpCurrentHandler = mpModelParameterElement;
258 mpCurrentHandler = &
mParser.mUnknownElement;
263 mParser.pushElementHandler(mpCurrentHandler);
265 if (mpCurrentHandler != &
mParser.mUnknownElement)
267 mLastKnownElement = mCurrentElement;
270 mParser.onStartElement(pszName, papszAttrs);
277 switch (mCurrentElement)
279 case ModelParameterSet:
281 if (strcmp(pszName,
"ModelParameterSet"))
283 pszName,
"ModelParameterSet",
mParser.getCurrentLineNumber());
294 case MiriamAnnotation:
296 if (strcmp(pszName,
"MiriamAnnotation"))
298 pszName,
"MiriamAnnotation",
mParser.getCurrentLineNumber());
310 if (strcmp(pszName,
"Comment"))
312 pszName,
"Comment",
mParser.getCurrentLineNumber());
318 case ListOfUnsupportedAnnotations:
320 if (strcmp(pszName,
"ListOfUnsupportedAnnotations"))
322 pszName,
"ListOfUnsupportedAnnotations",
mParser.getCurrentLineNumber());
325 mParser.mListOfUnsupportedAnnotationsElement.getUnsupportedAnnotations();
331 if (strcmp(pszName,
"ModelParameterGroup") &&
332 strcmp(pszName,
"ModelParameter"))
335 pszName,
"ModelParameterGroup or ModelParameter",
mParser.getCurrentLineNumber());
345 mCurrentElement = mLastKnownElement = ModelParameterSet;
349 mCurrentElement = mLastKnownElement;
354 pszName,
"???",
mParser.getCurrentLineNumber());
364 mpModelParameterGroupElement(NULL),
365 mpModelParameterElement(NULL)
370 pdelete(mpModelParameterGroupElement);
371 pdelete(mpModelParameterElement);
375 const XML_Char **papszAttrs)
381 mpCurrentHandler = NULL;
382 mCurrentElement = mLastKnownElement;
384 while (mpCurrentHandler == NULL)
388 switch (mCurrentElement)
390 case ModelParameterGroup:
392 if (strcmp(pszName,
"ModelParameterGroup"))
394 pszName,
"ModelParameterGroup",
mParser.getCurrentLineNumber());
396 mLastKnownElement = ModelParameterGroup;
399 CN =
mParser.getAttributeValue(
"cn", papszAttrs);
400 pType =
mParser.getAttributeValue(
"type", papszAttrs);
405 pModelParameterGroup->
setCN(std::string(CN));
412 if (!strcmp(pszName,
"ModelParameterGroup"))
415 if (!mpModelParameterGroupElement)
418 mpCurrentHandler = mpModelParameterGroupElement;
420 else if (!strcmp(pszName,
"ModelParameter"))
423 if (!mpModelParameterElement)
426 mpCurrentHandler = mpModelParameterElement;
433 mpCurrentHandler = &
mParser.mUnknownElement;
438 mParser.pushElementHandler(mpCurrentHandler);
440 if (mpCurrentHandler != &
mParser.mUnknownElement)
442 mLastKnownElement = mCurrentElement;
445 mParser.onStartElement(pszName, papszAttrs);
452 switch (mCurrentElement)
454 case ModelParameterGroup:
456 if (strcmp(pszName,
"ModelParameterGroup"))
458 pszName,
"ModelParameterGroup",
mParser.getCurrentLineNumber());
472 if (strcmp(pszName,
"ModelParameterGroup") &&
473 strcmp(pszName,
"ModelParameter"))
476 pszName,
"ModelParameterGroup or ModelParameter",
mParser.getCurrentLineNumber());
486 mCurrentElement = mLastKnownElement = ModelParameterGroup;
490 mCurrentElement = mLastKnownElement;
495 pszName,
"???",
mParser.getCurrentLineNumber());
511 const XML_Char **papszAttrs)
515 C_FLOAT64 Value = std::numeric_limits< C_FLOAT64 >::quiet_NaN();
518 const char * pSimulationType;
521 mpCurrentHandler = NULL;
522 mCurrentElement = mLastKnownElement;
524 while (mpCurrentHandler == NULL)
528 switch (mCurrentElement)
532 if (strcmp(pszName,
"ModelParameter"))
534 pszName,
"ModelParameter",
mParser.getCurrentLineNumber());
536 mLastKnownElement = ModelParameter;
539 CN =
mParser.getAttributeValue(
"cn", papszAttrs);
540 pValue =
mParser.getAttributeValue(
"value", papszAttrs);
541 pType =
mParser.getAttributeValue(
"type", papszAttrs);
542 pSimulationType =
mParser.getAttributeValue(
"simulationType", papszAttrs);
578 case InitialExpression:
580 if (!strcmp(pszName,
"InitialExpression"))
581 mpCurrentHandler = &
mParser.mCharacterDataElement;
587 mpCurrentHandler = &
mParser.mUnknownElement;
592 mParser.pushElementHandler(mpCurrentHandler);
594 if (mpCurrentHandler != &
mParser.mUnknownElement)
596 mLastKnownElement = mCurrentElement;
599 mParser.onStartElement(pszName, papszAttrs);
606 switch (mCurrentElement)
610 if (strcmp(pszName,
"ModelParameter"))
612 pszName,
"ModelParameter",
mParser.getCurrentLineNumber());
621 case InitialExpression:
623 if (strcmp(pszName,
"InitialExpression"))
625 pszName,
"InitialExpression",
mParser.getCurrentLineNumber());
638 mCurrentElement = ModelParameter;
643 mCurrentElement = mLastKnownElement;
648 pszName,
"???",
mParser.getCurrentLineNumber());
ListOfModelParameterSetsElement(CCopasiXMLParser &parser, SCopasiXMLParserCommon &common)
SCopasiXMLParserCommon mCommon
virtual ~ModelParameterSetElement()
const CModelParameterSet & getModelParameterSet() const
CCopasiObject * get(const std::string &key)
virtual void end(const XML_Char *pszName)
static const char * TypeNames[]
ModelParameterGroupElement(CCopasiXMLParser &parser, SCopasiXMLParserCommon &common)
void setMiriamAnnotation(const std::string &miriamAnnotation, const std::string &newId, const std::string &oldId)
virtual void end(const XML_Char *pszName)
virtual void start(const XML_Char *pszName, const XML_Char **papszAttrs)
void setInitialExpression(const std::string &initialExpression)
bool addFix(const std::string &key, CCopasiObject *pObject)
virtual void setValue(const double &value, const Framework &framework)
virtual ~ListOfModelParameterSetsElement()
virtual bool add(const CType &src)
virtual const std::string & getKey() const
virtual ~ModelParameterGroupElement()
virtual void end(const XML_Char *pszName)
const CCopasiVectorN< CModelParameterSet > & getModelParameterSets() const
virtual void start(const XML_Char *pszName, const XML_Char **papszAttrs)
static const char * XMLStatus[]
CType toEnum(const char *attribute, const char **enumNames, const CType &enumDefault)
std::stack< CModelParameterGroup * > ModelParameterGroupStack
std::string CharacterData
ModelParameterSetElement(CCopasiXMLParser &parser, SCopasiXMLParserCommon &common)
static CCopasiMessage getLastMessage()
virtual void setCN(const CCopasiObjectName &cn)
virtual void start(const XML_Char *pszName, const XML_Char **papszAttrs)
virtual void start(const XML_Char *pszName, const XML_Char **papszAttrs)
virtual ~ModelParameterElement()
bool setSimulationType(const CModelEntity::Status &simulationType)
bool setObjectName(const std::string &name)
void assignSetContent(const CModelParameterSet &src, const bool &createMissing)
CModelParameter * pCurrentModelParameter
ModelParameterElement(CCopasiXMLParser &parser, SCopasiXMLParserCommon &common)
virtual void end(const XML_Char *pszName)