14#include "arcane/utils/Collection.h"
15#include "arcane/utils/Enumerator.h"
16#include "arcane/utils/OStringStream.h"
17#include "arcane/utils/ArgumentException.h"
18#include "arcane/utils/ScopedPtr.h"
20#include "arcane/impl/CaseDocumentLangTranslator.h"
22#include "arcane/AbstractCaseDocumentVisitor.h"
23#include "arcane/CaseOptions.h"
24#include "arcane/CaseOptionService.h"
25#include "arcane/ICaseMng.h"
26#include "arcane/ICaseDocument.h"
27#include "arcane/CaseNodeNames.h"
38class CaseDocumentLangTranslatorVisitor
46 m_new_lang = new_lang;
51 info() <<
"BeginOpt " << _getName(opt) <<
" {";
59 info() <<
"SimpleOpt " << _getName(opt);
63 info() <<
"MultiSimple " << _getName(opt);
67 info() <<
"MultiExtended " << _getName(opt);
71 info() <<
"Extended " << _getName(opt);
75 info() <<
"MultiEnum " << _getName(opt);
76 info() <<
"WARNING: MultiEnum not handled in translator";
80 info() <<
"Enum " << _getName(opt);
85 info() <<
"BeginService " << _getName(opt);
89 info() <<
"EndService " << _getName(opt);
93 info() <<
"BeginMultiService " << _getName(opt) <<
" index=" << index;
97 info() <<
"EndMultiService " << _getName(opt) <<
" index=" << index;
106 m_stream() << full_xpath <<
"/" << name <<
":" << new_name <<
'\n';
116 m_stream() << full_xpath <<
":" << new_name <<
'\n';
128 int v = opt->enumValueAsInt();
130 m_stream() << opt->
xpathFullName() <<
":text#" << new_name <<
'\n';
135 info() <<
"ALL: " << m_stream.str();
138 String convertString() {
return m_stream.str(); }
147CaseDocumentLangTranslator::
156CaseDocumentLangTranslator::
157~CaseDocumentLangTranslator()
164void CaseDocumentLangTranslator::
172String CaseDocumentLangTranslator::
176 throw ArgumentException(A_FUNCINFO,
"Invalid value for langage");
177 CaseDocumentLangTranslatorVisitor my_visitor(
traceMng(),new_lang);
180 ICaseOptions* o = *i;
181 info() <<
" OptName=" << o->rootTagName();
182 o->visit(&my_visitor);
184 my_visitor.printAll();
186 ICaseDocument* cd = cm->caseDocument();
187 CaseNodeNames* current_cnn = cd->caseNodeNames();
188 ScopedPtrT<CaseNodeNames> cnn {
new CaseNodeNames(new_lang) };
193 _addConvert(cd->fragment()->rootElement(),cnn->root);
194 _addConvert(cd->timeloopElement(),cnn->timeloop);
195 _addConvert(cd->titleElement(),cnn->title);
196 _addConvert(cd->descriptionElement(),cnn->description);
197 _addConvert(cd->modulesElement(),cnn->modules);
200 const XmlNodeList& mesh_elems = cd->meshElements();
201 for(
Integer i=0, n=mesh_elems.size(); i<n; ++i ){
202 XmlNode xnode(mesh_elems.node(i));
203 _addConvert(xnode,cnn->mesh);
204 _addConvert(xnode.child(current_cnn->mesh_file),cnn->mesh_file);
207 _addConvert(cd->functionsElement(),cnn->functions);
218 return my_visitor.convertString() + m_global_convert_string;
224void CaseDocumentLangTranslator::
228 m_global_convert_string = m_global_convert_string + node.xpathFullName() +
":" + new_name +
"\n";
Visiteur abstrait pour une donnée scalaire.
Classe de base d'une option du jeu de donnée.
String name() const
Retourne le nom de l'option correspondant au langage du jeu de données.
String translatedName(const String &lang) const
Nom dans la langue lang de l'option. Retourne name() si pas de traduction.
XmlNode rootElement() const
Retourne l'élément racine du DOM.
String nameOfValue(int value, const String &lang) const
Retourne le nom de correspondant à la valeur value pour le langage lang.
Option du jeu de donnée de type énumération.
Option du jeu de données de type étendu.
Option du jeu de données de type liste d'énumération.
Option du jeu de donnée de type liste de types étendus.
Classe de base d'une option service pouvant être présente plusieurs fois.
Classe de base de l'implémentation des options utilisant des services.
Classe de base des options simples (uniquement une valeur).
String xpathFullName() const
Nom complet au format donné par la norme XPath.
bool hasValidValue() const
Indique si l'option a une valeur invalide.
bool isPresent() const
Retourne true si l'option est présente.
EnumeratorT< ICaseOptions * > Enumerator
Interface du gestionnaire de cas.
virtual XmlNode rootElement() const =0
Retourne l'élément lié à cette liste d'option.
Interface d'une liste d'options du jeu de données.
virtual String rootTagName() const =0
Nom de l'élément dans le langage du jeu de données.
virtual String translatedName(const String &lang) const =0
Nom dans la langue lang de l'option. Retourne rootTagTrueName() si pas de traduction.
Interface du gestionnaire de traces.
Flot de sortie lié à une String.
Chaîne de caractères unicode.
Classe d'accès aux traces.
TraceAccessor(ITraceMng *m)
Construit un accesseur via le gestionnaire de trace m.
TraceMessage info() const
Flot pour un message d'information.
ITraceMng * traceMng() const
Gestionnaire de trace.
String xpathFullName() const
Nom XPath du noeud avec ces ancêtres.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
Collection< ICaseOptions * > CaseOptionsCollection
Collection d'options du jeu de données.