Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IProperty.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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-2018 */
9/* */
10/* Interface des propriétés. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPROPERTY_H
13#define ARCANE_IPROPERTY_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28class IPropertyValue;
29class IPropertyType;
30class IPropertyTypeInstance;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
39{
40 public:
41
42 virtual ~Property() {}
43
54 {
55 StString,
56 StReal,
57 StInteger,
58 StBool
59 };
60};
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
69: public Property
70{
71 public:
72
73 virtual ~IPropertyValue() {}
74
75 public:
76
78 virtual void valueToString(String& str) const =0;
80 virtual void nameToString(String& str) const =0;
82 virtual void setValueFromString(const String& str) =0;
84 virtual bool isDefaultValue() const =0;
86 virtual bool isOriginalValue() const =0;
88 virtual void originalValueToString(String& str) const =0;
90 virtual bool canBeEdited() const =0;
92 virtual IPropertyType* type() =0;
95};
96
97/*---------------------------------------------------------------------------*/
98/*---------------------------------------------------------------------------*/
104: public Property
105{
106 public:
107
108 virtual ~IPropertyType() {}
109
110 public:
111
113 virtual void typeNameToString(String& str) const =0;
114
116 virtual ePropertyKind kind() const =0;
117
123 virtual Integer nbEnumeratedValue() const =0;
124
130 virtual String enumeratedValue(Integer i) const =0;
131
137 virtual eSimpleType simpleType() const =0;
138};
139
140/*---------------------------------------------------------------------------*/
141/*---------------------------------------------------------------------------*/
147: public Property
148{
149 public:
150
152
153 public:
154
156 virtual void nameToString(String& str) const =0;
158 virtual IPropertyType* type() =0;
159};
160
161/*---------------------------------------------------------------------------*/
162/*---------------------------------------------------------------------------*/
163
164ARCANE_END_NAMESPACE
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169#endif
170
Fichier de configuration d'Arcane.
Interface d'une instance d'un type de propriété.
Definition IProperty.h:148
virtual ~IPropertyTypeInstance()
Libère les ressources.
Definition IProperty.h:151
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.
Interface d'un type de propriété.
Definition IProperty.h:105
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 ~IPropertyType()
Libère les ressources.
Definition IProperty.h:108
Interface d'une valeur propriété.
Definition IProperty.h:70
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 ~IPropertyValue()
Libère les ressources.
Definition IProperty.h:73
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.
Définition des types pour les propriétés.
Definition IProperty.h:39
eSimpleType
Type simple dans le cas d'un genre PkSimple.
Definition IProperty.h:54
ePropertyKind
Genre d'une propriété
Definition IProperty.h:46
@ PkSimple
Genre simple (Réel, entier, chaîne, ...)
Definition IProperty.h:47
@ PkEnum
Genre enuméré
Definition IProperty.h:48
@ PkExtended
Genre étendu.
Definition IProperty.h:49
Chaîne de caractères unicode.