Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
CaseOptionBase.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* CaseOptionBase.h (C) 2000-2025 */
9/* */
10/* Classe d'une base d'une option du jeu de donnés. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CASEOPTIONBASE_H
13#define ARCANE_CASEOPTIONBASE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/String.h"
18
19#include "arcane/XmlNode.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
31class ICaseDocument;
33class ICaseMng;
34class ICaseOptionList;
35class ISubDomain;
36class ICaseFunction;
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
50class ARCANE_CORE_EXPORT CaseOptionBase
51{
52 protected:
53
54 CaseOptionBase(const CaseOptionBuildInfo& cob);
55
56 public:
57
58 virtual ~CaseOptionBase();
59
60 public:
61
63 String trueName() const;
64
66 String name() const;
67
69 String translatedName(const String& lang) const;
70
72 void search(bool is_phase1);
73
75 virtual void print(const String& lang,std::ostream& o) const =0;
76
78 ICaseMng* caseMng() const;
79
82
84 ITraceMng* traceMng() const;
85
87 ARCCORE_DEPRECATED_2019("Do not use subDomain(). Try to get subDomain from an other way.")
88 ISubDomain* subDomain() const;
89
91 ARCANE_DEPRECATED_REASON("Y2023: use caseMng()->caseDocument() instead.")
93
96
98 void setRootElement(const XmlNode& root_element);
99
101 XmlNode rootElement() const;
102
104 virtual ICaseFunction* function() const =0;
105
107 Integer minOccurs() const;
108
110 Integer maxOccurs() const;
111
113 bool isOptional() const;
114
123 virtual void updateFromFunction(Real current_time,Integer current_iteration) =0;
124
132 void addAlternativeNodeName(const String& lang,const String& name);
133
135 void addDefaultValue(const String& category,const String& value);
136
138 virtual void visit(ICaseDocumentVisitor* visitor) const =0;
139
141 void checkIsInitialized() const { _checkIsInitialized(); }
142
143 protected:
144
146 String _defaultValue() const;
147
148 void _setDefaultValue(const String& def_value);
149
150 protected:
151
152 virtual void _search(bool is_phase1) =0;
153 void _setIsInitialized();
154 bool _isInitialized() const;
155 void _checkIsInitialized() const;
156 void _checkMinMaxOccurs(Integer nb_occur);
157 String _xpathFullName() const;
158
159 private:
160
162
163 private:
164
165 void _setTranslatedName();
166 void _setCategoryDefaultValue();
172 CaseOptionBase(const CaseOptionBase& from) = delete;
174 CaseOptionBase& operator=(const CaseOptionBase& from) = delete;
175};
176
177/*---------------------------------------------------------------------------*/
178/*---------------------------------------------------------------------------*/
179
180} // End namespace Arcane
181
182/*---------------------------------------------------------------------------*/
183/*---------------------------------------------------------------------------*/
184
185#endif
Implémentation de la classe de base d'une option du jeu de données.
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.
void addDefaultValue(const String &category, const String &value)
Ajoute la valeur par défaut value à la catégorie category.
CaseOptionBase(const CaseOptionBase &from)=delete
Constructeur de copie.
ICaseDocument * caseDocument() const
Retourne le gestionnaire de document.
virtual void visit(ICaseDocumentVisitor *visitor) const =0
Applique le visiteur sur cette option.
void search(bool is_phase1)
Récupère la valeur du fichier de configuration pour la variable.
void checkIsInitialized() const
Lève une exception si l'option n'a pas été initialisée.
ICaseMng * caseMng() const
Gestionnaire de cas.
ICaseDocumentFragment * caseDocumentFragment() const
Retourne le document associé à cette option.
void addAlternativeNodeName(const String &lang, const String &name)
Ajoute une traduction pour le nom de l'option.
void setRootElement(const XmlNode &root_element)
Positionne l'élément racine à root_element.
bool isOptional() const
Permet de savoir si une option est optionnelle.
Integer maxOccurs() const
Nombre maximum d'occurences (pour une option multiple) (-1 == unbounded)
XmlNode rootElement() const
Retourne l'élément racine du DOM.
virtual ICaseFunction * function() const =0
Retourne la fonction liée à cette option ou nullptr s'il n'y en a pas.
virtual void updateFromFunction(Real current_time, Integer current_iteration)=0
Met à jour la valeur de l'option à partir d'une fonction.
ITraceMng * traceMng() const
Gestionnaire de traces.
CaseOptionBasePrivate * m_p
Implémentation.
ISubDomain * subDomain() const
Gestionnaire de sous-domaine.
String trueName() const
Retourne le vrai nom (non traduit) de l'option.
ICaseOptionList * parentOptionList() const
OptionList parent.
Integer minOccurs() const
Nombre minimum d'occurences (pour une option multiple)
virtual void print(const String &lang, std::ostream &o) const =0
Imprime la valeur de l'option dans le langage lang,sur le flot o.
CaseOptionBase & operator=(const CaseOptionBase &from)=delete
Opérateur de recopie.
Informations pour construire une option de jeu de données.
Interface d'une partie d'un jeu de données.
Interface du visiteur pour une option du jeu de données.
Interface d'une classe gérant un document XML du jeu de données.
Interface d'une fonction du jeu de données.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
Interface d'une liste d'options du jeu de données.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
Noeud d'un arbre DOM.
Definition XmlNode.h:51
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.
double Real
Type représentant un réel.