Ignore:
Timestamp:
06/04/10 16:18:34 (14 years ago)
Author:
ymipsl
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • XMLIO_V2/dev/trunk/src/XMLIO/context.hpp

    r79 r98  
    1 #ifndef CONTEXT_HPP 
    2 #define CONTEXT_HPP 
     1#ifndef __CONTEXT__ 
     2#define __CONTEXT__  
    33 
     4       
     5namespace 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); 
    454 
     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;*/ 
    597 
     98       
     99   }; //class Context 
     100}// namespace XMLIOSERVER 
    6101 
    7  
    8  
    9  
    10  
    11  
    12  
    13  
    14 #endif 
     102#endif  // __CONTEXT__ 
Note: See TracChangeset for help on using the changeset viewer.