Changeset 122 for XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp
- Timestamp:
- 09/20/10 17:30:34 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp
r120 r122 10 10 11 11 Context(void) : ObjectTemplate<Context>(), ccalendar(NULL), 12 fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 12 fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL), domainDef(NULL) 13 13 {/* Ne rien faire de plus */} 14 14 15 15 Context(const string& _id) : ObjectTemplate<Context>(_id), ccalendar(NULL), 16 fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL) 16 fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL), domainDef(NULL) 17 17 {/* Ne rien faire de plus */} 18 18 … … 20 20 { 21 21 os << NIndent << "<?xml version=\"1.0\"?>" << std::endl; 22 os << NIndent << "<" << Context::GetRootName() << ">" << std::endl;22 os << NIndent << "<" << Context::GetRootName() << ">" << std::endl; 23 23 24 24 Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject(); … … 59 59 60 60 // Changement de context pour les champs et groupes de champs. 61 FieldGroup::SetContext(id); CField::SetContext(id);61 FieldGroup::SetContext(id); CField::SetContext(id); 62 62 63 63 // Changement de context pour les fichiers et groupes de fichiers. 64 FileGroup::SetContext(id); CFile::SetContext(id);64 FileGroup::SetContext(id); CFile::SetContext(id); 65 65 66 66 // Changement de context pour les grilles et groupes de grilles. 67 GridGroup::SetContext(id); CGrid::SetContext(id);67 GridGroup::SetContext(id); CGrid::SetContext(id); 68 68 69 69 // Changement de context pour les axes et groupes d'axes. 70 AxisGroup::SetContext(id); CAxis::SetContext(id); 70 AxisGroup::SetContext(id); CAxis::SetContext(id); 71 72 // Changement de context pour les domaines et groupes de domaines. 73 DomainGroup::SetContext(id); CDomain::SetContext(id); 71 74 } 72 75 … … 92 95 { WARNING("Le noeud de définition possÚde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); } 93 96 94 if ( name.compare(FieldDefinition::GetDefName()) == 0) // Parsing pour la définition des champs.95 { fieldDef = CreateInstanceAndParse<FieldDefinition>(_node, FieldDefinition::GetDefName().c_str()); continue; }97 if (attributes.end() != attributes.find("calendar_type") && attributes.end() != attributes.find("start_date")) 98 setCalendar(attributes["calendar_type"], attributes["start_date"]); 96 99 97 if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing pour la définition des fichiers.98 { fileDef = CreateInstanceAndParse<FileDefinition >(_node, FileDefinition ::GetDefName().c_str()); continue; }99 100 100 if (name.compare( AxisDefinition::GetDefName()) == 0) // Parsing pour la définition des axes.101 { axisDef = CreateInstanceAndParse<AxisDefinition >(_node, AxisDefinition::GetDefName().c_str()); continue; }101 if (name.compare(FieldDefinition::GetDefName()) == 0) // Parsing pour la définition des champs. 102 { fieldDef = CreateInstanceAndParse<FieldDefinition >(_node, FieldDefinition::GetDefName().c_str()); continue; } 102 103 103 if (name.compare(GridDefinition::GetDefName()) == 0) // Parsing pour la définition des grilles. 104 { gridDef = CreateInstanceAndParse<GridDefinition >(_node, GridDefinition ::GetDefName().c_str()); continue; } 104 if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing pour la définition des fichiers. 105 { fileDef = CreateInstanceAndParse<FileDefinition >(_node, FileDefinition ::GetDefName().c_str()); continue; } 106 107 if (name.compare(AxisDefinition::GetDefName()) == 0) // Parsing pour la définition des axes. 108 { axisDef = CreateInstanceAndParse<AxisDefinition >(_node, AxisDefinition ::GetDefName().c_str()); continue; } 109 110 if (name.compare(GridDefinition::GetDefName()) == 0) // Parsing pour la définition des grilles. 111 { gridDef = CreateInstanceAndParse<GridDefinition >(_node, GridDefinition ::GetDefName().c_str()); continue; } 112 113 if (name.compare(DomainDefinition::GetDefName()) == 0) // Parsing pour la définition des domaines. 114 { domainDef = CreateInstanceAndParse<DomainDefinition>(_node, DomainDefinition::GetDefName().c_str()); continue; } 105 115 106 116 WARNING("La définition est invalide, seuls les champs, grilles, axes et fichiers peuvent être définis !"); … … 116 126 117 127 virtual bool hasChild(void) const 118 { return ((fieldDef != NULL) or (fileDef != NULL) or (axisDef != NULL) or (gridDef != NULL) ); }128 { return ((fieldDef != NULL) or (fileDef != NULL) or (axisDef != NULL) or (gridDef != NULL) or (domainDef != NULL)); } 119 129 120 130 virtual void printChild(ostream& out) const 121 131 { 122 if(fieldDef != NULL) out << *(FieldGroup*) fieldDef << std::endl; 123 if(fileDef != NULL) out << *(FileGroup*) fileDef << std::endl; 124 if(axisDef != NULL) out << *(AxisDefinition*) axisDef << std::endl; 125 if(gridDef != NULL) out << *(GridDefinition*) gridDef << std::endl; 132 if(fieldDef != NULL) out << *(FieldGroup*) fieldDef << std::endl; 133 if(fileDef != NULL) out << *(FileGroup*) fileDef << std::endl; 134 if(axisDef != NULL) out << *(AxisDefinition*) axisDef << std::endl; 135 if(gridDef != NULL) out << *(GridDefinition*) gridDef << std::endl; 136 if(domainDef != NULL) out << *(DomainDefinition*) domainDef << std::endl; 126 137 } 127 138 … … 130 141 if (_parent != 0) return; 131 142 // Résolution des héritages descendants pour chacun des groupes de définitions. 132 if(fieldDef != NULL) fieldDef->resolveDescInheritance(); 133 if(fileDef != NULL) fileDef ->resolveDescInheritance(); 134 if(axisDef != NULL) axisDef ->resolveDescInheritance(); 135 if(gridDef != NULL) gridDef ->resolveDescInheritance(); 143 if(fieldDef != NULL) fieldDef ->resolveDescInheritance(); 144 if(fileDef != NULL) fileDef ->resolveDescInheritance(); 145 if(axisDef != NULL) axisDef ->resolveDescInheritance(); 146 if(gridDef != NULL) gridDef ->resolveDescInheritance(); 147 if(domainDef != NULL) domainDef->resolveDescInheritance(); 136 148 } 137 149 138 FieldDefinition* getFieldDefinition(void) const { return (this->fieldDef); } 139 FileDefinition * getFileDefinition(void) const { return (this->fileDef ); } 140 AxisDefinition * getAxisDefinition(void) const { return (this->axisDef ); } 141 GridDefinition * getGridDefinition(void) const { return (this->gridDef ); } 150 FieldDefinition * getFieldDefinition(void) const { return (this->fieldDef ); } 151 FileDefinition * getFileDefinition(void) const { return (this->fileDef ); } 152 AxisDefinition * getAxisDefinition(void) const { return (this->axisDef ); } 153 GridDefinition * getGridDefinition(void) const { return (this->gridDef ); } 154 DomainDefinition * getDomainDefinition(void) const { return (this->domainDef); } 142 155 143 156 AbstractCalendar * getCalendar(void) const { return (this->ccalendar ); } … … 163 176 { 164 177 // Désallocation dynamique de mémoire pour chacun des groupes de définition si nécessaire. 165 if(fieldDef != NULL) delete fieldDef; if(fileDef != NULL) delete fileDef ; 166 if(axisDef != NULL) delete axisDef ; if(gridDef != NULL) delete gridDef ; 178 if(fieldDef != NULL) delete fieldDef ; if(fileDef != NULL) delete fileDef ; 179 if(axisDef != NULL) delete axisDef ; if(gridDef != NULL) delete gridDef ; 180 if(domainDef != NULL) delete domainDef ; 167 181 168 182 // Désallocation dynamique de mémoire pour le calendrier associé au contexte courant si nécessaire. … … 178 192 AxisDefinition* axisDef; 179 193 GridDefinition* gridDef; 194 DomainDefinition* domainDef; 180 195 181 196 }; //class Context
Note: See TracChangeset
for help on using the changeset viewer.