Ignore:
Timestamp:
06/14/10 15:32:15 (14 years ago)
Author:
hozdoba
Message:

Commit intermédiaire en attendant l'arrivée de l'héritage par référence...
Prise en charge de la définition des fichiers.
Correction des fichiers xml de définition (pour tests).
Correction de deux problÚmes de mise à jour de context.
etc.

File:
1 edited

Legend:

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

    r105 r106  
    99      public: 
    1010             
    11          Context(void) : ObjectTemplate<Context>(), fieldDef(NULL) 
     11         Context(void) : ObjectTemplate<Context>(), fieldDef(NULL), fileDef(NULL) 
    1212         {/* Ne rien faire de plus */}                
    13          Context(const string& _id) : ObjectTemplate<Context>(_id), fieldDef(NULL) 
     13         Context(const string& _id) : ObjectTemplate<Context>(_id), fieldDef(NULL), fileDef(NULL) 
    1414         {/* Ne rien faire de plus */} 
    1515          
     
    1818            // On modifie le context courrant pour tout les ObjectTemplate 
    1919            Context::SetContext(id); 
     20             
     21            // Changement de context pour les champs et groupes de champs. 
    2022            FieldGroup::SetContext(id); 
    21             Field::SetContext(id); 
     23            CField::SetContext(id); 
     24             
     25            // Changement de context pour les champs et groupes de champs. 
     26            FileGroup::SetContext(id); 
     27            CFile::SetContext(id); 
    2228         } 
    2329          
     
    2531         {  
    2632            out << IncIndent << "<" << c.getName()<< " id=\"" <<  c.getId() << "\">" << std::endl; 
     33             
    2734            if(c.fieldDef != NULL) out << *(FieldGroup*)c.fieldDef << std::endl; 
     35            if(c.fileDef != NULL)  out << *(FileGroup*) c.fileDef  << std::endl; 
     36             
    2837            out << NIndent << "</" << c.getName()<< ">" << DecEndl; 
    2938            return (out); 
     
    3443            // Résolution des héritages descendants pour chacun des groupes de définitions. 
    3544            if(fieldDef != NULL) fieldDef->resolveDescInheritance(); 
     45            if(fileDef != NULL)  fileDef->resolveDescInheritance(); 
    3646         } 
    3747          
     
    7080                  } 
    7181                  else if (name.compare("file_definition") == 0) 
    72                   { // Parsing pour la définition des fichiers.                   
    73                      INFO("Le parsing des définitions de fichiers n'est pas encore implémenté"); 
     82                  { // Parsing pour la définition des fichiers.  
     83                                    
     84                     if (FileDefinition::HasObject("file_definition"))  
     85                        WARNING("Le context possÚde déjà un noeud de définition de fichiers, le dernier défini complétera le premier !"); 
     86                      
     87                     fileDef = (FileDefinition*)&FileDefinition::CreateObject("file_definition"); // << Conversion possible car la classe Field n'a pas de propriétés. 
     88                     fileDef->parse(_node); 
     89 
     90                     continue; 
    7491                  }  
    7592                  else if (name.compare("axis_definition") == 0) 
     
    97114          
    98115         FieldDefinition* getFieldDefinition(void) { return (this->fieldDef); } 
     116         FileDefinition*  getFileDefinition(void)  { return (this->fileDef);  } 
    99117                   
    100118         ~Context() 
    101          { if(fieldDef != NULL) delete fieldDef; }       
     119         {  
     120            if(fieldDef != NULL) delete fieldDef; 
     121            if(fileDef != NULL)  delete fileDef; 
     122         }       
    102123 
    103124       
     
    105126       
    106127         FieldDefinition*  fieldDef; 
    107          /*FileDefinition* fileDef; 
    108          AxisDefinition*   axisDef; 
     128         FileDefinition*  fileDef; 
     129         /*AxisDefinition*   axisDef; 
    109130         GridDefinition*   gridDef;*/ 
    110131 
Note: See TracChangeset for help on using the changeset viewer.