Index: XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp
===================================================================
--- XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp	(revision 125)
+++ XMLIO_V2/dev/dev_rv/src/XMLIO/context.hpp	(revision 126)
@@ -16,149 +16,4 @@
             fieldDef(NULL), fileDef(NULL), axisDef(NULL), gridDef(NULL), domainDef(NULL)
          {/* Ne rien faire de plus */}
-
-         static void ShowTree(ostream& os = std::clog)
-         {
-            os << NIndent << "<?xml version=\"1.0\"?>" << std::endl;
-            os << NIndent << "<" << Context::GetRootName() << ">" << std::endl;
-
-            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
-            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
-               // On sort chacun des contextes successivement.
-            { Context::SetCurrentContext((*it).first); os << *((*it).second)[(*it).first] << std::endl; }
-
-            os << NIndent << "</" << Context::GetRootName() << ">" << std::endl  ;
-         }
-
-         static void FreeMemory(void)
-         {
-            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
-            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
-            { Context::SetCurrentContext((*it).first); delete ((*it).second)[(*it).first]; }
-         }
-
-         // Ne plus utiliser, disponible dans les classe treatment.
-         static void ResolveInheritance(void)
-         {
-            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
-            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
-            {
-               // RÃ©solution des hÃ©ritages descendants (cÃ d des hÃ©ritages de groupes) pour chacun des contextes.
-               Context::SetCurrentContext((*it).first);
-               ((*it).second)[(*it).first]->resolveDescInheritance();
-
-               // RÃ©solution des hÃ©ritages par rÃ©fÃ©rence au niveau des fichiers.
-               const std::vector<CFile*>& allFiles = CFile::GetCurrentListObject().getVector();
-               for (unsigned int i = 0; i < allFiles.size(); i++) allFiles[i]->resolveFieldRefInheritance();
-            }
-         }
-
-         static Context* SwapContext(void)
-         {
-            if (Stid.size() == 0)
-            {
-               WARNING("SwapContext impossible car le pile des contextes est vides !");
-               return (NULL);
-            }
-            string lastId = Stid.top (); Stid.pop ();
-            return (Context::GetObject(lastId));
-         }
-
-         static Context* GetCurrentContext(void)
-         { return (Context::GetObject(Context::GetCurrentContextId())); }
-
-         static void SetCurrentContext(const string& id, bool withSwap = false)
-         {
-            if (withSwap) Stid.push (Context::GetCurrentContextId());
-
-            // On modifie le context courrant pour tout les ObjectTemplate
-            Context::SetContext(id);
-
-            // Changement de context pour les champs et groupes de champs.
-            FieldGroup::SetContext(id);  CField::SetContext(id);
-
-            // Changement de context pour les fichiers et groupes de fichiers.
-            FileGroup::SetContext(id);   CFile::SetContext(id);
-
-            // Changement de context pour les grilles et groupes de grilles.
-            GridGroup::SetContext(id);   CGrid::SetContext(id);
-
-            // Changement de context pour les axes et groupes d'axes.
-            AxisGroup::SetContext(id);   CAxis::SetContext(id);
-
-            // Changement de context pour les domaines et groupes de domaines.
-            DomainGroup::SetContext(id); CDomain::SetContext(id);
-         }
-
-         virtual void parse (XMLNode& _node)
-         {
-            THashAttributes attributes;
-
-            /// PARSING POUR GESTION DES ENFANTS
-            if (_node.getElementName().compare(Context::GetName()))
-               WARNING("Le noeud est mal nommÃ© mais sera traitÃ© comme un context !");
-
-            if (!(_node.goToChildElement()))
-               WARNING("Le context ne contient pas d'enfant !");
-            else
-            {
-              do { // Parcours des contexts pour traitement.
-
-                  string name = _node.getElementName();
-                  attributes.clear();
-                  _node.getAttributes(attributes);
-
-                  if (attributes.end() != attributes.find("id"))
-                  { WARNING("Le noeud de dÃ©finition possÃšde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); }
-
-                  if (name.compare(FieldDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des champs.
-                  { fieldDef  = CreateInstanceAndParse<FieldDefinition >(_node, FieldDefinition::GetDefName().c_str()); continue; }
-
-                  if (name.compare(FileDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des fichiers.
-                  { fileDef   = CreateInstanceAndParse<FileDefinition  >(_node, FileDefinition  ::GetDefName().c_str()); continue; }
-
-                  if (name.compare(AxisDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des axes.
-                  { axisDef   = CreateInstanceAndParse<AxisDefinition  >(_node, AxisDefinition  ::GetDefName().c_str()); continue; }
-
-                  if (name.compare(GridDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des grilles.
-                  { gridDef   = CreateInstanceAndParse<GridDefinition  >(_node, GridDefinition  ::GetDefName().c_str()); continue; }
-
-                  if (name.compare(DomainDefinition::GetDefName()) == 0) // Parsing pour la dÃ©finition des domaines.
-                  { domainDef = CreateInstanceAndParse<DomainDefinition>(_node, DomainDefinition::GetDefName().c_str()); continue; }
-
-                  WARNING("La dÃ©finition est invalide, seuls les champs, grilles, axes et fichiers peuvent Ãªtre dÃ©finis !");
-
-               } while (_node.goToNextElement());
-
-               _node.goToParentElement(); // Retour au parent
-            }
-         }
-
-         static string GetRootName(void) { return ("simulation"); }
-         static string GetName(void)     { return ("context"); }
-         static string GetDefName(void)  { return (Context::GetName()); }
-
-
-         virtual bool hasChild(void) const
-         { return ((fieldDef != NULL) or (fileDef != NULL)  or (axisDef != NULL) or (gridDef != NULL) or (domainDef != NULL)); }
-
-         virtual void printChild(ostream& out) const
-         {
-            if(fieldDef  != NULL) out << *(FieldGroup*)       fieldDef  << std::endl;
-            if(fileDef   != NULL) out << *(FileGroup*)        fileDef   << std::endl;
-            if(axisDef   != NULL) out << *(AxisDefinition*)   axisDef   << std::endl;
-            if(gridDef   != NULL) out << *(GridDefinition*)   gridDef   << std::endl;
-            if(domainDef != NULL) out << *(DomainDefinition*) domainDef << std::endl;
-         }
-
-         virtual void resolveDescInheritance(const AttributRegistrar* const _parent = 0)
-         {
-            if (_parent != 0) return;
-            // RÃ©solution des hÃ©ritages descendants pour chacun des groupes de dÃ©finitions.
-            if(fieldDef  != NULL) fieldDef ->resolveDescInheritance();
-            if(fileDef   != NULL) fileDef  ->resolveDescInheritance();
-            if(axisDef   != NULL) axisDef  ->resolveDescInheritance();
-            if(gridDef   != NULL) gridDef  ->resolveDescInheritance();
-            if(domainDef != NULL) domainDef->resolveDescInheritance();
-         }
 
          FieldDefinition  * getFieldDefinition(void)  const { return (this->fieldDef ); }
@@ -198,19 +53,172 @@
          }
 
+      public : /* virtual */
+
+         virtual void parse (XMLNode& _node)
+         {
+            THashAttributes attributes;
+
+            /// PARSING POUR GESTION DES ENFANTS
+            if (_node.getElementName().compare(Context::GetName()))
+               WARNING("Le noeud est mal nommÃ© mais sera traitÃ© comme un context !");
+
+            if (!(_node.goToChildElement()))
+               WARNING("Le context ne contient pas d'enfant !");
+            else
+            {
+              do { // Parcours des contexts pour traitement.
+
+                  string name = _node.getElementName();
+                  attributes.clear();
+                  _node.getAttributes(attributes);
+
+                  if (attributes.end() != attributes.find("id"))
+                  { WARNING("Le noeud de dÃ©finition possÃšde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); }
+
+                  if (name.compare(FieldDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des champs.
+                  { fieldDef  = CreateInstanceAndParse<FieldDefinition >(_node, FieldDefinition::GetDefName().c_str()); continue; }
+
+                  if (name.compare(FileDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des fichiers.
+                  { fileDef   = CreateInstanceAndParse<FileDefinition  >(_node, FileDefinition  ::GetDefName().c_str()); continue; }
+
+                  if (name.compare(AxisDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des axes.
+                  { axisDef   = CreateInstanceAndParse<AxisDefinition  >(_node, AxisDefinition  ::GetDefName().c_str()); continue; }
+
+                  if (name.compare(GridDefinition::GetDefName())  == 0) // Parsing pour la dÃ©finition des grilles.
+                  { gridDef   = CreateInstanceAndParse<GridDefinition  >(_node, GridDefinition  ::GetDefName().c_str()); continue; }
+
+                  if (name.compare(DomainDefinition::GetDefName()) == 0) // Parsing pour la dÃ©finition des domaines.
+                  { domainDef = CreateInstanceAndParse<DomainDefinition>(_node, DomainDefinition::GetDefName().c_str()); continue; }
+
+                  WARNING("La dÃ©finition est invalide, seuls les champs, grilles, axes et fichiers peuvent Ãªtre dÃ©finis !");
+
+               } while (_node.goToNextElement());
+
+               _node.goToParentElement(); // Retour au parent
+            }
+         }
+
+         virtual bool hasChild(void) const
+         { return ((fieldDef != NULL) or (fileDef != NULL)  or (axisDef != NULL) or (gridDef != NULL) or (domainDef != NULL)); }
+
+         virtual void printChild(ostream& out) const
+         {
+            if(fieldDef  != NULL) out << *(FieldGroup*)       fieldDef  << std::endl;
+            if(fileDef   != NULL) out << *(FileGroup*)        fileDef   << std::endl;
+            if(axisDef   != NULL) out << *(AxisDefinition*)   axisDef   << std::endl;
+            if(gridDef   != NULL) out << *(GridDefinition*)   gridDef   << std::endl;
+            if(domainDef != NULL) out << *(DomainDefinition*) domainDef << std::endl;
+         }
+
+         virtual void resolveDescInheritance(const AttributRegistrar* const _parent = 0)
+         {
+            if (_parent != 0) return;
+            // RÃ©solution des hÃ©ritages descendants pour chacun des groupes de dÃ©finitions.
+            if(fieldDef  != NULL) fieldDef ->resolveDescInheritance();
+            if(fileDef   != NULL) fileDef  ->resolveDescInheritance();
+            if(axisDef   != NULL) axisDef  ->resolveDescInheritance();
+            if(gridDef   != NULL) gridDef  ->resolveDescInheritance();
+            if(domainDef != NULL) domainDef->resolveDescInheritance();
+         }
+
+      public : /* static */
+
+         static string GetRootName(void) { return ("simulation"); }
+         static string GetName(void)     { return ("context"); }
+         static string GetDefName(void)  { return (Context::GetName()); }
+
+         static void ShowTree(ostream& os = std::clog)
+         {
+            os << NIndent << "<?xml version=\"1.0\"?>" << std::endl;
+            os << NIndent << "<" << Context::GetRootName() << ">" << std::endl;
+
+            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
+            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
+               // On sort chacun des contextes successivement.
+            {
+               Context::SetCurrentContext((*it).first);
+               os << NIndent << std::endl;
+               os << *((*it).second)[(*it).first] << std::endl;
+            }
+
+            os << NIndent << std::endl;
+            os << NIndent << "</" << Context::GetRootName() << ">" << std::endl  ;
+         }
+
+         static void FreeMemory(void)
+         {
+            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
+            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
+            { Context::SetCurrentContext((*it).first); delete ((*it).second)[(*it).first]; }
+         }
+
+         // Ne plus utiliser, disponible dans les classe treatment.
+         static void ResolveInheritance(void)
+         {
+            Poco::HashMap<string, StrHashMap<Context> > &AllListContext = Context::GetAllListObject();
+            for (Poco::HashMap<string, StrHashMap<Context> >::Iterator it = AllListContext.begin(); it != AllListContext.end(); it++)
+            {
+               // RÃ©solution des hÃ©ritages descendants (cÃ d des hÃ©ritages de groupes) pour chacun des contextes.
+               Context::SetCurrentContext((*it).first);
+               ((*it).second)[(*it).first]->resolveDescInheritance();
+
+               // RÃ©solution des hÃ©ritages par rÃ©fÃ©rence au niveau des fichiers.
+               const std::vector<CFile*>& allFiles = CFile::GetCurrentListObject().getVector();
+               for (unsigned int i = 0; i < allFiles.size(); i++) allFiles[i]->resolveFieldRefInheritance();
+            }
+         }
+
+         static Context* SwapContext(void)
+         {
+            if (Stid.size() == 0)
+            {
+               WARNING("SwapContext impossible car le pile des contextes est vides !");
+               return (NULL);
+            }
+            string lastId = Stid.top (); Stid.pop ();
+            return (Context::GetObject(lastId));
+         }
+
+         static Context* GetCurrentContext(void)
+         { return (Context::GetObject(Context::GetCurrentContextId())); }
+
+         static void SetCurrentContext(const string& id, bool withSwap = false)
+         {
+            if (withSwap) Stid.push (Context::GetCurrentContextId());
+
+            // On modifie le context courrant pour tout les ObjectTemplate
+            Context::SetContext(id);
+
+            // Changement de context pour les champs et groupes de champs.
+            FieldGroup::SetContext(id);  CField::SetContext(id);
+
+            // Changement de context pour les fichiers et groupes de fichiers.
+            FileGroup::SetContext(id);   CFile::SetContext(id);
+
+            // Changement de context pour les grilles et groupes de grilles.
+            GridGroup::SetContext(id);   CGrid::SetContext(id);
+
+            // Changement de context pour les axes et groupes d'axes.
+            AxisGroup::SetContext(id);   CAxis::SetContext(id);
+
+            // Changement de context pour les domaines et groupes de domaines.
+            DomainGroup::SetContext(id); CDomain::SetContext(id);
+         }
+
       private:
 
          static stack<string> Stid;
 
-         AbstractCalendar* ccalendar;
-
-         FieldDefinition*  fieldDef;
-         FileDefinition*   fileDef;
-         AxisDefinition*   axisDef;
-         GridDefinition*   gridDef;
-         DomainDefinition* domainDef;
+         AbstractCalendar * ccalendar;
+
+         FieldDefinition  * fieldDef;
+         FileDefinition   * fileDef;
+         AxisDefinition   * axisDef;
+         GridDefinition   * gridDef;
+         DomainDefinition * domainDef;
 
    }; //class Context
 
-   //stack<string> Context::Stid();
+   stack<string> Context::Stid;
 
 }// namespace XMLIOSERVER
