00001
00002
00003
00004
00007 #pragma once
00008
00009 #include <omtReader.h>
00010 #include <vlutil/vlString.h>
00011
00013 #include <mtl/xmlFedTags.h>
00014 #include <mtl/fedReader.h>
00015
00016 class DtOMTTree;
00017 class DtComplexComponentNode;
00018 class DtEnumerationNode;
00019 class DtAttributeFedNode;
00020 class DtParameterFedNode;
00021 class DtObjectClassFedNode;
00022 class DtInteractionClassFedNode;
00023 class DtFieldComponentNode;
00024 class DtAlternativeComponentNode;
00025 class DtExerciseConn;
00026
00027 class DT_DLL_OMTREADER DtXMLEvolvedFileReader
00028 {
00029
00030 public:
00031
00033 DtXMLEvolvedFileReader();
00034
00036 virtual ~DtXMLEvolvedFileReader();
00037
00038 virtual const DtString& getLastError();
00039 virtual void clearLastError();
00040
00041 virtual DtOMTTree* processObjectModel(xmlNodePtr& ptr);
00042
00043 protected:
00044 virtual void processName(xmlNodePtr& ptr, DtOMTTree*);
00045 virtual void processVersionNo(xmlNodePtr& ptr, DtOMTTree*);
00046 virtual void processType(xmlNodePtr& ptr, DtOMTTree*);
00047 virtual void processPurpose(xmlNodePtr& ptr, DtOMTTree*);
00048 virtual void processApplicationDomain(xmlNodePtr& ptr, DtOMTTree*);
00049 virtual void processSponsorOrgName(xmlAttrPtr& ptr, DtOMTTree*);
00050 virtual void processPOCFirstName(xmlNodePtr& ptr, DtOMTTree*);
00051 virtual void processPOCOrgName(xmlNodePtr& ptr, DtOMTTree*);
00052 virtual void processPOCPhone(xmlNodePtr& ptr, DtOMTTree*);
00053 virtual void processPOCEmail(xmlNodePtr& ptr, DtOMTTree*);
00054 virtual void processModificationDate(xmlNodePtr& ptr, DtOMTTree*);
00055 virtual void processSecurityClassification(xmlNodePtr& ptr, DtOMTTree*);
00056 virtual void processReleaseRestriction(xmlNodePtr& ptr, DtOMTTree*);
00057 virtual void processDescription(xmlNodePtr& ptr, DtOMTTree*);
00058 virtual void processReference(xmlAttrPtr& ptr, DtOMTTree*);
00059 virtual void processOther(xmlAttrPtr& ptr, DtOMTTree*);
00060
00061 virtual void processPoc(xmlNodePtr& ptr, DtOMTTree*);
00062
00063 virtual void processInteractions(xmlNodePtr& ptr, DtOMTTree*);
00064 virtual DtInteractionClassFedNode* processInteractionClass(xmlNodePtr& ptr, DtOMTTree*);
00065 virtual DtAttributeFedNode* processAttribute(xmlNodePtr& ptr, DtObjectClassFedNode* obj);
00066 virtual DtParameterFedNode* processParameter(xmlNodePtr& ptr, DtInteractionClassFedNode* inter);
00067
00068 virtual void processObjects(xmlNodePtr& ptr, DtOMTTree*);
00069 virtual DtObjectClassFedNode* processObjectClass(xmlNodePtr& ptr, DtOMTTree*);
00070
00071 virtual void processNotes(xmlNodePtr& ptr, DtOMTTree*);
00072 virtual void processNote(xmlNodePtr& ptr, DtOMTTree*);
00073
00074 virtual void processUpdateRates(xmlNodePtr& ptr, DtOMTTree*);
00075 virtual void processUpdateRate(xmlNodePtr& ptr, DtOMTTree*);
00076
00077 virtual void processDatatypes(xmlNodePtr& ptr, DtOMTTree*);
00078 virtual void processSimpleDatatypes(xmlNodePtr& ptr, DtOMTTree*);
00079 virtual void processSimpleData(xmlNodePtr& ptr, DtOMTTree*);
00080 virtual void processArrayDatatypes(xmlNodePtr& ptr, DtOMTTree*);
00081 virtual void processArrayData(xmlNodePtr& ptr, DtOMTTree*);
00082 virtual void processFixedDatatypes(xmlNodePtr& ptr, DtOMTTree*);
00083 virtual void processFixedData(xmlNodePtr& ptr, DtOMTTree*);
00084 virtual DtFieldComponentNode* processField(xmlNodePtr& ptr);
00085 virtual void processBasicDataReps(xmlNodePtr& ptr, DtOMTTree*);
00086 virtual void processBasicDataRep(xmlNodePtr& ptr, DtOMTTree*);
00087 virtual void processVariantDatatypes(xmlNodePtr& ptr, DtOMTTree*);
00088 virtual void processVariantData(xmlNodePtr& ptr, DtOMTTree*);
00089 virtual DtAlternativeComponentNode* processAlternative(xmlNodePtr& ptr);
00090 virtual void processEnumeratedDatatype(xmlNodePtr& ptr, DtOMTTree*);
00091 virtual DtEnumerationNode* processEnumeration(xmlNodePtr& ptr);
00092 virtual void processEnumerations(xmlNodePtr& ptr, DtOMTTree*);
00093
00094 virtual void processSwitches(xmlNodePtr& ptr, DtOMTTree*);
00095 virtual void processDimensions(xmlNodePtr& ptr, DtOMTTree*);
00096 virtual void processDimension(xmlNodePtr& ptr, DtOMTTree*);
00097 virtual void processTimeRepresentation(xmlNodePtr& ptr, DtOMTTree*);
00098 virtual void processSynchronizations(xmlNodePtr& ptr, DtOMTTree*);
00099 virtual void processSynchronization(xmlNodePtr& ptr, DtOMTTree*);
00100 virtual void processTags(xmlNodePtr& ptr, DtOMTTree*);
00101 virtual void processTag(xmlNodePtr& ptr, DtOMTTree*);
00102 virtual void processTransportations(xmlNodePtr& ptr, DtOMTTree*);
00103 virtual void processTransportation(xmlNodePtr& ptr, DtOMTTree*);
00104
00106 virtual void processModelIdentification(xmlNodePtr& ptr, DtOMTTree*);
00107
00108 protected:
00109 DtString myLastError;
00110 DtExerciseConn* myExConn;
00111
00112 private:
00113
00115 DtXMLEvolvedFileReader(const DtXMLEvolvedFileReader& orig);
00116
00118 DtXMLEvolvedFileReader& operator=(const DtXMLEvolvedFileReader& rhs);
00119
00121 void initializeHandles(DtOMTTree* omtTree);
00122 void setAttributeHandles(DtObjectClassFedNode* objNode);
00123 void setParameterHandles(DtInteractionClassFedNode* objNode);
00124 };
00125
00126
00127