Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ICaseOptions.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/* ICaseOptions.h (C) 2000-2023 */
9/* */
10/* Options du jeu de donnés. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ICASEOPTIONS_H
13#define ARCANE_ICASEOPTIONS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/CaseOptionTypes.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \internal
29 * \brief Interface d'une liste d'options du jeu de données.
30 *
31 * Cette interface est gérée par un compteur de référence et ne doit pas
32 * être détruite explictement.
33 */
34class ARCANE_CORE_EXPORT ICaseOptions
35{
37
38 protected:
39
40 virtual ~ICaseOptions() = default;
41
42 public:
43
44 //! Vrai nom (non traduit) de l'élément.
45 virtual String rootTagTrueName() const = 0;
46
47 //! Nom de l'élément dans le langage du jeu de données.
48 virtual String rootTagName() const = 0;
49
50 //! Nom dans la langue \a lang de l'option. Retourne \a rootTagTrueName() si pas de traduction.
51 virtual String translatedName(const String& lang) const = 0;
52
53 ARCCORE_DEPRECATED_2019("Use read(eCaseOptionReadPhase) instead")
54 virtual void read(bool is_phase1) = 0;
55
56 /*!
57 * \brief Effectue la lecture de la phase \a read_phase des options.
58 */
59 virtual void read(eCaseOptionReadPhase read_phase) = 0;
60
61 virtual void addInvalidChildren(XmlNodeList&) = 0;
62
63 virtual void printChildren(const String& lang, int indent) = 0;
64
65 //! Retourne le service associé ou `nullptr` s'il n'y en a pas.
66 virtual IServiceInfo* caseServiceInfo() const = 0;
67
68 //! Retourne le module associé ou `nullptr` s'il n'y en a pas.
69 virtual IModule* caseModule() const = 0;
70
71 /*!
72 * \internal
73 * \brief Associe le service \a m à ce jeu de données.
74 */
75 virtual void setCaseServiceInfo(IServiceInfo* m) = 0;
76
77 /*!
78 * \internal
79 * \brief Associe le module \a m à ce jeu de données.
80 */
81 virtual void setCaseModule(IModule* m) = 0;
82
83 /*!
84 * \internal
85 * \brief Ajoute à la liste \a col tous les options filles.
86 */
87 virtual void deepGetChildren(Array<CaseOptionBase*>& col) = 0;
88
89 virtual ICaseOptionList* configList() = 0;
90
91 virtual const ICaseOptionList* configList() const = 0;
92
93 //! Fonction indiquant l'état d'activation de l'option
94 virtual ICaseFunction* activateFunction() = 0;
95
96 /*!
97 * \brief Indique si l'option est présente dans le jeu de données.
98 *
99 * Une option peut ne pas apparaître si elle ne contient que des
100 * options ayant une valeur par défaut.
101 */
102 virtual bool isPresent() const = 0;
103
104 /*!
105 * \internal
106 * \brief Ajoute une traduction pour le nom de l'option.
107 *
108 * Ajoute le nom \a name de l'option correspondant au langage \a lang.
109 * Si une traduction existe déjà pour ce langage, elle est remplacée par
110 * celle-ci.
111 */
112 virtual void addAlternativeNodeName(const String& lang, const String& name) = 0;
113
114 virtual ICaseMng* caseMng() const = 0;
115 virtual ITraceMng* traceMng() const = 0;
116 /*!
117 * \brief Sous-domain associé.
118 *
119 * \deprecated Ne plus utiliser cette méthode car à terme une option
120 * pourra exister sans sous-domaine.
121 */
122 ARCCORE_DEPRECATED_2019("Do not use subDomain(). Try to get subDomain from an other way.")
123 virtual ISubDomain* subDomain() const = 0;
124 ARCCORE_DEPRECATED_2019("Use meshHandle().mesh() instead")
125 virtual IMesh* mesh() const = 0;
126 virtual MeshHandle meshHandle() const = 0;
127 ARCANE_DEPRECATED_REASON("Y2023: use caseMng()->caseDocument() instead.")
128 virtual ICaseDocument* caseDocument() const = 0;
129 virtual ICaseDocumentFragment* caseDocumentFragment() const = 0;
130
131 /*!
132 * \internal
133 * Détache l'option de son parent.
134 */
135 virtual void detach() = 0;
136
137 //! Applique le visiteur sur cette option
138 virtual void visit(ICaseDocumentVisitor* visitor) const = 0;
139
140 //! Nom complet au format XPath correspondant à rootElement()
141 virtual String xpathFullName() const = 0;
142
143 public:
144
145 virtual Ref<ICaseOptions> toReference() = 0;
146};
147
148/*---------------------------------------------------------------------------*/
149/*---------------------------------------------------------------------------*/
150/*!
151 * \internal
152 * \brief Interface d'une liste d'options présente plusieurs fois.
153 */
154class ARCANE_CORE_EXPORT ICaseOptionsMulti
155{
156 public:
157
158 virtual ~ICaseOptionsMulti() {}
159
160 public:
161
162 virtual void multiAllocate(const XmlNodeList&) =0;
163 virtual ICaseOptions* toCaseOptions() =0;
164 virtual void addChild(ICaseOptionList* v) =0;
165 virtual Integer nbChildren() const =0;
166 virtual ICaseOptionList* child(Integer index) const =0;
167};
168
169/*---------------------------------------------------------------------------*/
170/*---------------------------------------------------------------------------*/
171
172extern "C++" ARCANE_CORE_EXPORT ISubDomain*
173_arcaneDeprecatedGetSubDomain(ICaseOptions* opt);
174
175/*---------------------------------------------------------------------------*/
176/*---------------------------------------------------------------------------*/
177
178} // End namespace Arcane
179
180/*---------------------------------------------------------------------------*/
181/*---------------------------------------------------------------------------*/
182
183#endif
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Classe de base d'une option du jeu de donnée.
Interface du visiteur pour une option du jeu de données.
Interface du gestionnaire de cas.
Definition ICaseMng.h:56
virtual String rootTagTrueName() const =0
Vrai nom (non traduit) de l'élément.
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 d'un module.
Definition IModule.h:39
Interface des informations d'un service ou d'un module.
Interface du gestionnaire d'un sous-domaine.
Definition ISubDomain.h:74
Handle sur un maillage.
Definition MeshHandle.h:47
Liste de noeuds d'un arbre DOM.
Definition XmlNodeList.h:33
Classe de base des vecteurs 1D de données.
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eCaseOptionReadPhase
Phases de la lecture.