Changeset 98 for XMLIO_V2/dev/trunk/src/XMLIO/context.hpp
- Timestamp:
- 06/04/10 16:18:34 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/trunk/src/XMLIO/context.hpp
r79 r98 1 #ifndef CONTEXT_HPP2 #define CONTEXT_HPP1 #ifndef __CONTEXT__ 2 #define __CONTEXT__ 3 3 4 5 namespace XMLIOSERVER 6 { 7 class Context : public ObjectTemplate<Context> 8 { 9 public: 10 11 Context(void) : ObjectTemplate<Context>() 12 {/* Ne rien faire de plus */} 13 Context(const string& _id) : ObjectTemplate<Context>(_id) 14 {/* Ne rien faire de plus */} 15 16 static void SetCurrentContext(const string& id) 17 { 18 // On modifie le context courrant pour tout les ObjectTemplate 19 Context::SetContext(id); 20 FieldGroup::SetContext(id); 21 Field::SetContext(id); 22 } 23 24 void parse (XMLNode& _node) 25 { 26 THashAttributes attributes; 27 28 /// PARSING POUR GESTION DES ENFANTS 29 if (_node.getElementName().compare(string("context"))) 30 WARNING("Le noeud est mal nommé mais sera traité comme un context !"); 31 32 if (!(_node.goToChildElement())) 33 WARNING("Le context ne contient pas d'enfant !"); 34 else 35 { 36 ////////////////////////////////////// 37 do { // Parcours des contexts pour traitement. 38 39 string name = _node.getElementName(); 40 attributes.clear(); 41 _node.getAttributes(attributes); 42 43 if (attributes.end() != attributes.find("id")) 44 { WARNING("Le noeud de définition possÚde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); } 45 46 if (name.compare("field_definition") == 0) 47 { // Parsing pour la définition des champs. 48 49 if (FieldDefinition::HasObject("field_definition")) 50 WARNING("Le context possÚde déjà un noeud de définition de champs, le dernier défini complétera le premier !"); 51 52 fieldDef = (FieldDefinition*)&FieldDefinition::CreateObject("field_definition"); // << Conversion possible car la classe Field n'a pas de propriétés. 53 fieldDef->parse(_node); 4 54 55 continue; 56 } 57 else if (name.compare("file_definition") == 0) 58 { // Parsing pour la définition des fichiers. 59 INFO("Le parsing des définitions de fichiers n'est pas encore implémenté"); 60 } 61 else if (name.compare("axis_definition") == 0) 62 { // Parsing pour la définition des axes. 63 INFO("Le parsing des définitions d'axes n'est pas encore implémenté"); 64 } 65 else if (name.compare("grid_definition") == 0) 66 { // Parsing pour la définition des grilles. 67 INFO("Le parsing des définitions de grilles n'est pas encore implémenté"); 68 } 69 else 70 WARNING("La définition est invalide, seules les champs, grilles, axes et fichiers peuvent être définis !"); 71 72 73 // Traitement file, grid et axis à compléter. 74 } while (_node.goToNextElement()); 75 ////////////////////////////////////// 76 _node.goToParentElement(); // Retour au parent 77 } 78 79 return; 80 } 81 82 virtual const char* getName(void) const {return ("Context"); } 83 84 FieldDefinition* getFieldDefinition(void) { return (this->fieldDef); } 85 86 ~Context() 87 { delete fieldDef; } 88 89 protected: 90 91 private: 92 93 FieldDefinition* fieldDef; 94 /*FileDefinition* fileDef; 95 AxisDefinition* axisDef; 96 GridDefinition* gridDef;*/ 5 97 98 99 }; //class Context 100 }// namespace XMLIOSERVER 6 101 7 8 9 10 11 12 13 14 #endif 102 #endif // __CONTEXT__
Note: See TracChangeset
for help on using the changeset viewer.