Arcane  v3.16.4.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IProperty.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/* IProperty.h (C) 2000-2025 */
9/* */
10/* Interface des propriétés. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPROPERTY_H
13#define ARCANE_CORE_IPROPERTY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IPropertyValue;
29class IPropertyType;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34/*!
35 * \internal
36 * \brief Définition des types pour les propriétés.
37 */
39{
40 public:
41
42 virtual ~Property() = default;
43
44 public:
45
46 //! Genre d'une propriété
48 {
49 PkSimple, //!< Genre simple (Réel, entier, chaîne, ...)
50 PkEnum, //!< Genre énuméré
51 PkExtended, //!< Genre étendu
52 PkComplex //!< Genre complexe contenant des sous-types
53 };
54 //! Type simple dans le cas d'un genre PkSimple
56 {
57 StString,
58 StReal,
59 StInteger,
60 StBool
61 };
62};
63
64/*---------------------------------------------------------------------------*/
65/*---------------------------------------------------------------------------*/
66/*!
67 * \internal
68 * \brief Interface d'une valeur propriété.
69 */
71: public Property
72{
73 public:
74
75 //! Stocke la valeur de la propriété dans \a str
76 virtual void valueToString(String& str) const = 0;
77 //! Stocke le nom de la propriété dans \a str
78 virtual void nameToString(String& str) const = 0;
79 //! Positionne la nouvelle valeur de la propriété à \a str
80 virtual void setValueFromString(const String& str) = 0;
81 //! Retourne si la valeur actuelle est la valeur par défaut
82 virtual bool isDefaultValue() const = 0;
83 //! Retourne si la valeur actuelle est la valeur originelle
84 virtual bool isOriginalValue() const = 0;
85 //! Stocke la valeur originale de la propriété dans \a str
86 virtual void originalValueToString(String& str) const = 0;
87 //! Retourne si la valeur peut être éditée.
88 virtual bool canBeEdited() const = 0;
89 //! Retourne le type de cette propriété.
90 virtual IPropertyType* type() = 0;
91 //! Retourne l'instance associé à cette valeur.
93};
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97/*!
98 * \internal
99 * \brief Interface d'un type de propriété.
100 */
102: public Property
103{
104 public:
105
106 //! Retourne dans \a str le nom du type.
107 virtual void typeNameToString(String& str) const = 0;
108
109 //! Retourne le genre du type de la propriété
110 virtual ePropertyKind kind() const = 0;
111
112 /*!
113 * \brief Retourne le nombre de valeurs enumérées possible pour le type.
114 * Cette méthode n'est utile que les types du genre PkEnum. Dans les
115 * autres cas, elle retourne zéro.
116 */
117 virtual Integer nbEnumeratedValue() const = 0;
118
119 /*!
120 * \brief Retourne la \a ième valeur enumérée du type.
121 * Cette méthode n'est utile que les types du genre PkEnum. Dans les
122 * autres cas, elle retourne la chaîne nulle.
123 */
124 virtual String enumeratedValue(Integer i) const = 0;
125
126 /*!
127 * \brief Retourne le type simple du stockage de la propriété.
128 * Cette méthode n'est valide que les types du genre PkSimple. Pour tous les
129 * autres types, elle retourne StString.
130 */
131 virtual eSimpleType simpleType() const = 0;
132};
133
134/*---------------------------------------------------------------------------*/
135/*---------------------------------------------------------------------------*/
136/*!
137 * \internal
138 * \brief Interface d'une instance d'un type de propriété.
139 */
141: public Property
142{
143 public:
144
145 //! Stocke le nom de l'instance dans \a str
146 virtual void nameToString(String& str) const = 0;
147 //! Retourne le type de l'instance.
148 virtual IPropertyType* type() = 0;
149};
150
151/*---------------------------------------------------------------------------*/
152/*---------------------------------------------------------------------------*/
153
154} // namespace Arcane
155
156/*---------------------------------------------------------------------------*/
157/*---------------------------------------------------------------------------*/
158
159#endif
Fichier de configuration d'Arcane.
virtual IPropertyType * type()=0
Retourne le type de l'instance.
virtual void nameToString(String &str) const =0
Stocke le nom de l'instance dans str.
virtual ePropertyKind kind() const =0
Retourne le genre du type de la propriété
virtual eSimpleType simpleType() const =0
Retourne le type simple du stockage de la propriété. Cette méthode n'est valide que les types du genr...
virtual Integer nbEnumeratedValue() const =0
Retourne le nombre de valeurs enumérées possible pour le type. Cette méthode n'est utile que les type...
virtual void typeNameToString(String &str) const =0
Retourne dans str le nom du type.
virtual String enumeratedValue(Integer i) const =0
Retourne la ième valeur enumérée du type. Cette méthode n'est utile que les types du genre PkEnum....
virtual void originalValueToString(String &str) const =0
Stocke la valeur originale de la propriété dans str.
virtual bool isOriginalValue() const =0
Retourne si la valeur actuelle est la valeur originelle.
virtual void nameToString(String &str) const =0
Stocke le nom de la propriété dans str.
virtual IPropertyType * type()=0
Retourne le type de cette propriété.
virtual void valueToString(String &str) const =0
Stocke la valeur de la propriété dans str.
virtual bool canBeEdited() const =0
Retourne si la valeur peut être éditée.
virtual IPropertyTypeInstance * typeInstance()=0
Retourne l'instance associé à cette valeur.
virtual void setValueFromString(const String &str)=0
Positionne la nouvelle valeur de la propriété à str.
virtual bool isDefaultValue() const =0
Retourne si la valeur actuelle est la valeur par défaut.
eSimpleType
Type simple dans le cas d'un genre PkSimple.
Definition IProperty.h:56
ePropertyKind
Genre d'une propriété
Definition IProperty.h:48
@ PkSimple
Genre simple (Réel, entier, chaîne, ...)
Definition IProperty.h:49
@ PkComplex
Genre complexe contenant des sous-types.
Definition IProperty.h:52
@ PkEnum
Genre énuméré
Definition IProperty.h:50
@ PkExtended
Genre étendu.
Definition IProperty.h:51
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
Int32 Integer
Type représentant un entier.