Classe de représentation d'un ensemble de propriétés. More...
#include "cogitant/propertyset.h"
Classes | |
class | Filter |
Filtre sur certains types de propriétés. More... | |
class | FilterModel |
Filtre acceptant uniquement les propriétés correspondant au modèle des graphes conceptuels. More... | |
class | FilterNoFilter |
Filtre acceptant toutes les propriétés. More... | |
Public Member Functions | |
std::string | toString () const |
Transformation en chaîne de caractères. More... | |
Constructeurs - destructeur. | |
PropertySet () | |
Constructeur d'un ensemble de propriétés vide. More... | |
~PropertySet () | |
Destructeur. More... | |
Modifications. | |
Property * | get (Property::Type t, iSet sub=ISET_NULL) |
Accès à une référence à une propriété. More... | |
Property * | get (std::string const &t, iSet sub=ISET_NULL) |
Accès à une référence à une propriété non standard. More... | |
PropertySet * | getSubSet (iSet sub) |
Accès au sous-ensemble de propriétés. More... | |
PropertySet const * | getSubSet (iSet sub) const |
Accès au sous-ensemble de propriétés. More... | |
void | setPtrVoid (Property::Type t, void *ptr, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété. More... | |
void | set (Property::Type t, unsigned int val, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété. More... | |
void | set (Property::Type t, std::string const &str, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété. More... | |
void | set (std::string const &t, std::string const &str, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété non standard. More... | |
void | set (Property::Type t, std::vector< iSet > const &tab, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété. More... | |
void | set (Property::Type t, Property::ExtendedValue const &e, iSet sub=ISET_NULL) |
Modification de la valeur d'une propriété. More... | |
void | remove (Property::Type t, iSet sub=ISET_NULL) |
Suppression d'une propriété. More... | |
void | remove (std::string const &t, iSet sub=ISET_NULL) |
Suppression d'une propriété non standard. More... | |
void | removeSubSet (iSet sub) |
Suppression du sous ensemble de propriétés. More... | |
Accesseurs | |
Property const * | get (Property::Type t, iSet sub=ISET_NULL) const |
Accès à une référence à une propriété. More... | |
Property const * | get (std::string const &t, iSet sub=ISET_NULL) const |
Accès à une référence à une propriété non standard. More... | |
bool | has (Property::Type t, iSet sub=ISET_NULL) const |
L'ensemble de propriété contient-il une valeur pour le type de propriété passé ? | |
bool | has (std::string const &t, iSet sub=ISET_NULL) const |
L'ensemble de propriété contient-il une valeur pour le type de propriété passé ? | |
bool | read (Property::Type t, void const *&ref, iSet sub=ISET_NULL) const |
Accès à la valeur de type pointeur d'une propriété. More... | |
bool | read (Property::Type t, unsigned int &ref, iSet sub=ISET_NULL) const |
Accès à la valeur entière d'une propriété. More... | |
bool | read (Property::Type t, std::string &ref, iSet sub=ISET_NULL) const |
Accès à la valeur chaîne d'une propriété. More... | |
bool | read (std::string const &t, std::string &ref, iSet sub=ISET_NULL) const |
Accès à la valeur chaîne d'une propriété non standard. More... | |
bool | read (Property::Type t, std::vector< iSet > &ref, iSet sub=ISET_NULL) const |
Accès à la valeur ensemble d'identifiants d'une propriété. More... | |
bool | read (Property::Type t, Property::ExtendedValue const *&ref, iSet sub=ISET_NULL) const |
Accès à la valeur ensemble d'identifiants d'une propriété. More... | |
void * | readPtrVoid (Property::Type t, iSet sub=ISET_NULL) const |
Accès à la valeur pointeur d'une propriété. More... | |
unsigned int | readInt (Property::Type t, iSet sub=ISET_NULL) const |
Accès à la valeur entière d'une propriété. More... | |
std::string const & | readString (Property::Type t, iSet sub=ISET_NULL) const |
Accès à la valeur chaîne d'une propriété. More... | |
std::string const & | readString (std::string const &t, iSet sub=ISET_NULL) const |
Accès à la valeur chaîne d'une propriété non standard. More... | |
std::vector< iSet > const & | readVectorISet (Property::Type t, iSet sub=ISET_NULL) const |
Accès à la valeur ensemble d'identificateurs d'une propriété. More... | |
Property::ExtendedValue const & | readExtended (Property::Type t, iSet sub=ISET_NULL) const |
Accès à la valeur Property::ExtendedValue. More... | |
Public Member Functions inherited from cogitant::Set_Simple_Final< Property > | |
Set_Simple_Final () | |
Set_Simple_Final (Set_Simple_Final< Property > const &c) | |
~Set_Simple_Final () | |
iSet | iAdd (const Property &c) |
void | iDelete (const iSet i) |
void | findAndDelete (const Property &c) |
void | reserve (nSet const size) |
void | clear () |
nSet | maxSize () const |
nSet | size () const |
bool | empty () const |
iSet | iBegin () const |
iSet | iEnd () const |
void | iNext (iSet &i) const |
Property const & | iGetContent (const iSet i) const |
Property & | iGetContent (const iSet i) |
iSet | iFind (const Property &c) const |
Property & | operator[] (const iSet i) |
Property const & | operator[] (const iSet i) const |
Protected Member Functions | |
Property * | add (Property const &prop, iSet sub=ISET_NULL) |
Ajout de la propriété. More... | |
Protected Member Functions inherited from cogitant::Set_Simple_Final< Property > | |
bool | isValidIterator (const iSet i1) const |
Opérateurs. | |
PropertySet & | operator= (PropertySet const &p) |
Affectation. More... | |
std::ostream & | operator<< (std::ostream &os, const PropertySet &ob) |
Sortie sur un flux. More... | |
Classe de représentation d'un ensemble de propriétés.
Un ensemble de propriété est habituellement associé à une instance de CogitantObject (et surtout de ses sous-classes). Un ensemble de propriétés est un ensemble de couples (type, valeur), le type étant habituellement un entier (mais pouvant être une chaîne), et la valeur pouvant être un entier, une chaîne de caractères, un pointeur ou un tableau d'entiers. Il est possible de chercher la valeur d'une propriété en connaissant son type, de modifier la valeur d'une propriété, etc. en utilisant les méthodes de cette classe telles que set(), read() ou remove(). Ces méthodes sont suchargées pour permettre une gestion des différents types de valeurs. Dans le cadre d'une utilisation normale de la bibliothèque, il est inutile de se préoccuper du paramètre sub, qu'on laissera à la valeur par défaut ISET_NULL
. Dans une ensemble de propriétés donné, il ne peut y avoir plusieurs valeurs différentes pour un type de propriété donné, ceci est géré de façon transparente : L'ajout d'une propriété d'un type donné efface habituellement une occurrence de la propriété de même type déjà présente
Une utilisation avancée de cette classe consiste à utiliser ce paramètre sub, qui permet d'utiliser plusieurs ensembles de propriétés contenus dans un seul ensemble (ce qui permet donc d'avoir plusieurs valeurs pour un même type de propriété). Chacun de ces sous-ensembles est associé à un iSet particulier (et il ne peut y avoir deux sous-ensembles associés à un même iSet). Ceci permet de représenter dans un seul ensemble des propriétés qui sont rattachées à différents objets, ce qui est utile quand des propriétés correspondant à des objets non représentés par un CogitantObject doivent être manipulées. Par exemple, cette fonctionnalité est utilisée pour représenter les propriétés graphiques des arêtes liées à un sommet relation : une arête n'est pas représentée par un CogitantObject, les propriétés graphiques de l'arête sont donc stockées dans l'instance de Relation correspondante, et plus particulièrement dans le sous ensemble de propriétés lié à e, e étant l'étiquette de l'arête.
cogitant::PropertySet::PropertySet | ( | ) |
Constructeur d'un ensemble de propriétés vide.
cogitant::PropertySet::~PropertySet | ( | ) |
Destructeur.
Les destructeur est déclaré virtuel, de cette façon, une sous classe peut effectuer des traitements particuliers tel que la désallocation des valeurs lors de la destruction de l'ensemble de propriétés (aucune méthode n'étant déclarée virtuelle dans Property ces traitements ne peuvent être effectués dans le destructeur de Property).
Ajout de la propriété.
La propriété est ajouté à l'ensemble dans le cas ou sub vaut ISET_NULL, ou à l'ensemble associé à sub (éventuellement créé à l'occasion) dans les autres cas.
Property* cogitant::PropertySet::get | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) |
Accès à une référence à une propriété.
Le pointeur obtenu par cette méthode peut servir à modifier la valeur de la propriété.
t | type de propriété recherché |
sub | si différent de ISET_NULL, recherche dans l'ensemble de propriétés de sub. |
NULL
sinon. Accès à une référence à une propriété non standard.
Le pointeur obtenu par cette méthode peut servir à modifier la valeur de la propriété.
t | type de propriété recherché. |
sub | si différent de ISET_NULL, recherche dans l'ensemble de propriétés de sub. |
NULL
sinon. Property const* cogitant::PropertySet::get | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à une référence à une propriété.
Le pointeur obtenu par cette méthode ne peut pas servir à modifier la valeur de la propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
NULL
sinon. Accès à une référence à une propriété non standard.
Le pointeur obtenu par cette méthode ne peut pas servir à modifier la valeur de la propriété.
sub | identificateur du sous-ensemble de propriétés. |
t | type de propriété recherché. |
NULL
sinon. PropertySet* cogitant::PropertySet::getSubSet | ( | iSet | sub | ) |
Accès au sous-ensemble de propriétés.
sub | identifiant du sous-ensemble. Si ISET_NULL, retourne l'ensemble courant. |
PropertySet const* cogitant::PropertySet::getSubSet | ( | iSet | sub | ) | const |
Accès au sous-ensemble de propriétés.
sub | identifiant du sous-ensemble. Si ISET_NULL, retourne l'ensemble courant. |
PropertySet& cogitant::PropertySet::operator= | ( | PropertySet const & | p | ) |
Affectation.
bool cogitant::PropertySet::read | ( | Property::Type | t, |
void const *& | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur de type pointeur d'une propriété.
t | type de propriété recherché. |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
sub | identificateur du sous-ensemble de propriétés. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. bool cogitant::PropertySet::read | ( | Property::Type | t, |
unsigned int & | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur entière d'une propriété.
t | type de propriété recherché. |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
sub | identificateur du sous-ensemble de propriétés. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. bool cogitant::PropertySet::read | ( | Property::Type | t, |
std::string & | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur chaîne d'une propriété.
t | type de propriété recherché |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
sub | identificateur du sous-ensemble de propriétés. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. bool cogitant::PropertySet::read | ( | std::string const & | t, |
std::string & | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur chaîne d'une propriété non standard.
t | type de propriété recherché |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
sub | identificateur du sous-ensemble de propriétés. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. bool cogitant::PropertySet::read | ( | Property::Type | t, |
std::vector< iSet > & | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur ensemble d'identifiants d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. bool cogitant::PropertySet::read | ( | Property::Type | t, |
Property::ExtendedValue const *& | ref, | ||
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur ensemble d'identifiants d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
ref | (sortie) référence sur la valeur de la propriété de type t trouvée. |
true
ssi une propriété de type t est trouvée. Dans le cas contraire, la valeur de ref n'est pas définie. Property::ExtendedValue const& cogitant::PropertySet::readExtended | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur Property::ExtendedValue.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
unsigned int cogitant::PropertySet::readInt | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur entière d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
0
sinon. void* cogitant::PropertySet::readPtrVoid | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur pointeur d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
NULL
sinon. std::string const& cogitant::PropertySet::readString | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur chaîne d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
std::string const& cogitant::PropertySet::readString | ( | std::string const & | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur chaîne d'une propriété non standard.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
std::vector<iSet> const& cogitant::PropertySet::readVectorISet | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) | const |
Accès à la valeur ensemble d'identificateurs d'une propriété.
t | type de propriété recherché. |
sub | identificateur du sous-ensemble de propriétés. |
void cogitant::PropertySet::remove | ( | Property::Type | t, |
iSet | sub = ISET_NULL |
||
) |
Suppression d'une propriété.
Si aucune propriété de ce type n'existe, aucun traitement n'est effectué.
Suppression d'une propriété non standard.
Si aucune propriété de ce type n'existe, aucun traitement n'est effectué.
void cogitant::PropertySet::removeSubSet | ( | iSet | sub | ) |
Suppression du sous ensemble de propriétés.
void cogitant::PropertySet::set | ( | Property::Type | t, |
unsigned int | val, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété.
Une propriété de ce type peut exister ou pas.
void cogitant::PropertySet::set | ( | Property::Type | t, |
std::string const & | str, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété.
Une propriété de ce type peut exister ou pas.
void cogitant::PropertySet::set | ( | std::string const & | t, |
std::string const & | str, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété non standard.
Une propriété de ce type peut exister ou pas.
void cogitant::PropertySet::set | ( | Property::Type | t, |
std::vector< iSet > const & | tab, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété.
Une propriété de ce type peut exister ou pas.
void cogitant::PropertySet::set | ( | Property::Type | t, |
Property::ExtendedValue const & | e, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété.
Une propriété de ce type peut exister ou pas.
void cogitant::PropertySet::setPtrVoid | ( | Property::Type | t, |
void * | ptr, | ||
iSet | sub = ISET_NULL |
||
) |
Modification de la valeur d'une propriété.
Une propriété de ce type peut exister ou pas.
std::string cogitant::PropertySet::toString | ( | ) | const |
Transformation en chaîne de caractères.
Retourne le contenu de l'ensemble sous une forme affichable (mais pas très lisible, car très simple).
|
friend |
Sortie sur un flux.