Ignore:
Timestamp:
09/20/10 17:30:34 (14 years ago)
Author:
hozdoba
Message:

Plusieurs modifications en attendant une version propre et stable.

File:
1 edited

Legend:

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

    r120 r122  
    1010 
    1111         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) 
    1313         {/* Ne rien faire de plus */} 
    1414 
    1515         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) 
    1717         {/* Ne rien faire de plus */} 
    1818 
     
    2020         { 
    2121            os << NIndent << "<?xml version=\"1.0\"?>" << std::endl; 
    22             os << NIndent << "<"<< Context::GetRootName() << ">" << std::endl; 
     22            os << NIndent << "<" << Context::GetRootName() << ">" << std::endl; 
    2323 
    2424            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject(); 
     
    5959 
    6060            // Changement de context pour les champs et groupes de champs. 
    61             FieldGroup::SetContext(id); CField::SetContext(id); 
     61            FieldGroup::SetContext(id);  CField::SetContext(id); 
    6262 
    6363            // Changement de context pour les fichiers et groupes de fichiers. 
    64             FileGroup::SetContext(id);  CFile::SetContext(id); 
     64            FileGroup::SetContext(id);   CFile::SetContext(id); 
    6565 
    6666            // Changement de context pour les grilles et groupes de grilles. 
    67             GridGroup::SetContext(id);  CGrid::SetContext(id); 
     67            GridGroup::SetContext(id);   CGrid::SetContext(id); 
    6868 
    6969            // 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); 
    7174         } 
    7275 
     
    9295                  { WARNING("Le noeud de définition possÚde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); } 
    9396 
    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"]); 
    9699 
    97                   if (name.compare(FileDefinition::GetDefName()) == 0) // Parsing pour la définition des fichiers. 
    98                   { fileDef  = CreateInstanceAndParse<FileDefinition >(_node, FileDefinition ::GetDefName().c_str()); continue; } 
    99100 
    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; } 
    102103 
    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; } 
    105115 
    106116                  WARNING("La définition est invalide, seuls les champs, grilles, axes et fichiers peuvent être définis !"); 
     
    116126 
    117127         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)); } 
    119129 
    120130         virtual void printChild(ostream& out) const 
    121131         { 
    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; 
    126137         } 
    127138 
     
    130141            if (_parent != 0) return; 
    131142            // 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(); 
    136148         } 
    137149 
    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); } 
    142155 
    143156         AbstractCalendar * getCalendar(void) const { return (this->ccalendar ); } 
     
    163176         { 
    164177            // 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 ; 
    167181 
    168182            // Désallocation dynamique de mémoire pour le calendrier associé au contexte courant si nécessaire. 
     
    178192         AxisDefinition*   axisDef; 
    179193         GridDefinition*   gridDef; 
     194         DomainDefinition* domainDef; 
    180195 
    181196   }; //class Context 
Note: See TracChangeset for help on using the changeset viewer.