Arcane
v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
CaseOptionBase.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2023 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-2023 */
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
24
namespace
Arcane
25
{
26
27
/*---------------------------------------------------------------------------*/
28
/*---------------------------------------------------------------------------*/
29
30
class
CaseOptionBuildInfo;
31
class
ICaseDocument;
32
class
ICaseDocumentFragment;
33
class
ICaseMng;
34
class
ICaseOptionList;
35
class
ISubDomain;
36
class
ICaseFunction;
37
class
CaseOptionBasePrivate;
38
class
ICaseDocumentVisitor;
39
40
/*---------------------------------------------------------------------------*/
41
/*---------------------------------------------------------------------------*/
42
/*!
43
* \brief Classe de base d'une option du jeu de donnée.
44
*
45
* \ingroup CaseOption
46
*
47
* Fait le lien entre l'option de nom \a m_name et le noeud du
48
* DOM correspondant.
49
*/
50
class
ARCANE_CORE_EXPORT
CaseOptionBase
51
{
52
protected
:
53
54
CaseOptionBase
(
const
CaseOptionBuildInfo
&
cob
);
55
56
public
:
57
58
virtual
~CaseOptionBase
();
59
60
public
:
61
62
//! Retourne le vrai nom (non traduit) de l'option.
63
String
trueName()
const
;
64
65
//! Retourne le nom de l'option correspondant au langage du jeu de données
66
String
name()
const
;
67
68
//! Nom dans la langue \a lang de l'option. Retourne \a name() si pas de traduction.
69
String
translatedName(
const
String
&
lang
)
const
;
70
71
//! Récupère la valeur du fichier de configuration pour la variable
72
void
search(
bool
is_phase1
);
73
74
//! Imprime la valeur de l'option dans le langage \a lang,sur le flot \a o
75
virtual
void
print
(
const
String
&
lang
,std::ostream&
o
)
const
=0;
76
77
//! Gestionnaire de cas
78
ICaseMng
* caseMng()
const
;
79
80
//! OptionList parent
81
ICaseOptionList
* parentOptionList()
const
;
82
83
//! Gestionnaire de traces
84
ITraceMng
* traceMng()
const
;
85
86
//! Gestionnaire de sous-domaine
87
ARCCORE_DEPRECATED_2019(
"Do not use subDomain(). Try to get subDomain from an other way."
)
88
ISubDomain
* subDomain()
const
;
89
90
//! Retourne le gestionnaire de document
91
ARCANE_DEPRECATED_REASON("
Y2023
:
use
caseMng()->caseDocument()
instead
.")
92
ICaseDocument
* caseDocument()
const
;
93
94
//! Retourne le document associé à cette option
95
ICaseDocumentFragment
* caseDocumentFragment()
const
;
96
97
//! Positionne l'élément racine à \a root_element
98
void
setRootElement(
const
XmlNode
&
root_element
);
99
100
//! Retourne l'élément racine du DOM
101
XmlNode
rootElement()
const
;
102
103
//! Retourne la fonction liée à cette option ou `nullptr` s'il n'y en a pas
104
virtual
ICaseFunction
* function()
const
=0;
105
106
//! Nombre minimum d'occurences (pour une option multiple)
107
Integer minOccurs()
const
;
108
109
//! Nombre maximum d'occurences (pour une option multiple) (-1 == unbounded)
110
Integer maxOccurs()
const
;
111
112
/*! \brief Met à jour la valeur de l'option à partir d'une fonction.
113
*
114
* Si l'option n'est pas liée à une table de marche, ne fait rien.
115
* Sinon, utilise \a current_time ou \a current_iteration suivant
116
* le type de paramètre de la fonction pour calculer la nouvelle
117
* valeur de l'option. Cette valeur sera ensuite accessible normalement par
118
* la méthode operator().
119
*/
120
virtual
void
updateFromFunction(Real
current_time
,Integer
current_iteration
) =0;
121
122
/*!
123
\brief Ajoute une traduction pour le nom de l'option.
124
*
125
Ajoute le nom \a name de l'option correspondant au langage \a lang.
126
Si une traduction existe déjà pour ce langage, elle est remplacée par
127
celle-ci.
128
*/
129
void
addAlternativeNodeName(
const
String
&
lang
,
const
String
& name);
130
131
//! Ajoute la valeur par défaut \a value à la catégorie \a category
132
void
addDefaultValue(
const
String
&
category
,
const
String
& value);
133
134
//! Applique le visiteur sur cette option
135
virtual
void
visit(
ICaseDocumentVisitor
*
visitor
)
const
=0;
136
137
//! Lève une exception si l'option n'a pas été initialisée.
138
void
checkIsInitialized()
const
{ _checkIsInitialized(); }
139
140
protected
:
141
142
//! Retourne la valeur par défaut de l'option ou 0 s'il n'y en a pas
143
String
_defaultValue()
const
;
144
145
void
_setDefaultValue(
const
String
&
def_value
);
146
147
protected
:
148
149
virtual
void
_search(
bool
is_phase1
) =0;
150
void
_setIsInitialized();
151
bool
_isInitialized()
const
;
152
void
_checkIsInitialized()
const
;
153
void
_checkMinMaxOccurs(Integer
nb_occur
);
154
String
_xpathFullName()
const
;
155
156
private
:
157
158
CaseOptionBasePrivate
* m_p;
//!< Implémentation.
159
160
private
:
161
162
void
_setTranslatedName();
163
void
_setCategoryDefaultValue();
164
/*! \brief Constructeur de copie.
165
*
166
* Le constructeur par copie est privée car l'option ne doit pas être
167
* copiée, notamment à cause du ICaseFunction qui est unique.
168
*/
169
CaseOptionBase
(
const
CaseOptionBase
&
from
) =
delete
;
170
//! Opérateur de recopie
171
CaseOptionBase
& operator=(
const
CaseOptionBase
&
from
) =
delete
;
172
};
173
174
/*---------------------------------------------------------------------------*/
175
/*---------------------------------------------------------------------------*/
176
177
}
// End namespace Arcane
178
179
/*---------------------------------------------------------------------------*/
180
/*---------------------------------------------------------------------------*/
181
182
#endif
Arcane::CaseOptionBasePrivate
Definition
CaseOptionBase.cc:40
Arcane::CaseOptionBase
Classe de base d'une option du jeu de donnée.
Definition
CaseOptionBase.h:51
Arcane::CaseOptionBase::print
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.
Arcane::CaseOptionBuildInfo
Definition
CaseOptionBuildInfo.h:40
Arcane::ICaseDocumentFragment
Definition
ICaseDocument.h:40
Arcane::ICaseDocumentVisitor
Interface du visiteur pour une option du jeu de données.
Definition
ICaseDocumentVisitor.h:43
Arcane::ICaseDocument
Definition
ICaseDocument.h:102
Arcane::ICaseFunction
Definition
ICaseFunction.h:46
Arcane::ICaseMng
Interface du gestionnaire de cas.
Definition
ICaseMng.h:56
Arcane::ICaseOptionList
Definition
ICaseOptionList.h:38
Arcane::ISubDomain
Interface du gestionnaire d'un sous-domaine.
Definition
ISubDomain.h:74
Arcane::XmlNode
Noeud d'un arbre DOM.
Definition
XmlNode.h:51
Arccore::ITraceMng
Interface du gestionnaire de traces.
Definition
arccore/src/trace/arccore/trace/ITraceMng.h:156
Arccore::Ref
Référence à une instance.
Definition
arccore/src/base/arccore/base/Ref.h:143
Arccore::String
Chaîne de caractères unicode.
Definition
arccore/src/base/arccore/base/String.h:70
Arcane
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Definition
AbstractCaseDocumentVisitor.cc:20
arcane
core
CaseOptionBase.h
Généré le Lundi 10 Février 2025 02:47:07 pour Arcane par
1.9.8