Classe abstraite mère de tous les objets de la plate-forme. More...
#include "cogitant/object.h"
Public Member Functions | |
Constructeurs - destructeur. | |
CogitantObject () | |
Constructeur. More... | |
CogitantObject (CogitantObject const &o) | |
Constructeur par recopie. More... | |
virtual | ~CogitantObject () |
Destructeur. More... | |
Modifications. | |
PropertySet * | properties () |
Accès à l'ensemble des propriétés. More... | |
Accesseurs. | |
virtual std::string | toString () const |
Transformation en chaîne de caractères. More... | |
std::string | className () const |
Nom de la classe. More... | |
PropertySet const * | properties () const |
Accès en lecture seule à l'ensemble des propriétés. More... | |
bool | hasProperties () const |
Existence de propriétés. More... | |
Protected Member Functions | |
Allocateurs. | |
virtual PropertySet * | allocProperties () const |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet. More... | |
Opérateurs. | |
CogitantObject & | operator= (CogitantObject const &ob) |
Affectation. More... | |
std::ostream & | operator<< (std::ostream &os, CogitantObject const &ob) |
Sortie sur un flux. More... | |
Classe abstraite mère de tous les objets de la plate-forme.
Les fonctionnalités communes à tous les objets de la plate-forme sont définies dans cette classe. Ces fonctionnalités résident principalement en une gestion des propriétés associées à l'objet et aux opérations de base pouvant être redéfinies dans les sous classes (accès au nom de la classe, opérateur de sortie et d'affectation, etc.) Il est à noter que certaines classes de la plate-forme ne dérivent pas de cette classe pour des raisons de performance ou d'occupation mémoire : Set, Property, Edge, etc.
L'ensemble des propriétés de l'objet est représenté par un pointeur sur une sous classe de PropertySet. Ce pointeur est initialisé à NULL
à la création de l'objet pour deux raisons :
cogitant::CogitantObject::CogitantObject | ( | ) |
Constructeur.
L'ensemble des propriétés (m_properties) est initialisé à NULL
. Toutefois, ce membre étant privé, si l'accès aux propriétés se fait par la méthode properties(), l'ensemble des propriétés sera considéré comme vide après appel à ce constructeur.
cogitant::CogitantObject::CogitantObject | ( | CogitantObject const & | o | ) |
Constructeur par recopie.
L'ensemble des propriétés est recopié. Il est conseillé de ne pas recourir au constructeur par recopie car les allocateurs de l'objet construit ne sont pas accessibles (car définis dans une méthode virtuelle) et l'allocation des membres s'effectue donc par les allocateurs par défaut (sauf si le constructeur par recopie est redéfini en utilisant un allocateur comme dans le cas de la classe Support).
|
virtual |
Destructeur.
|
protectedvirtual |
Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet.
std::string cogitant::CogitantObject::className | ( | ) | const |
Nom de la classe.
bool cogitant::CogitantObject::hasProperties | ( | ) | const |
Existence de propriétés.
Il peut être utile d'utiliser cette méthode avant d'appeler properties() car ce dernier appel crée dans tous les cas (i.e. même pour une lecture) un ensemble de propriétés si celui-ci n'existe pas déjà.
true
ssi l'objet a déjà un ensemble de propriétés (éventuellement vide). CogitantObject& cogitant::CogitantObject::operator= | ( | CogitantObject const & | ob | ) |
Affectation.
PropertySet* cogitant::CogitantObject::properties | ( | ) |
Accès à l'ensemble des propriétés.
NULL
), cette méthode alloue et retourne un ensemble de propriétés par allocProperties(). PropertySet const* cogitant::CogitantObject::properties | ( | ) | const |
Accès en lecture seule à l'ensemble des propriétés.
NULL
), cette méthode alloue et retourne un ensemble de propriétés par allocProperties(). NULL
, cette méthode modifie le membre m_properties (malgré la déclaration const
de la méthode), même si ceci est totalement transparent pour l'utilisateur de la classe.
|
virtual |
Transformation en chaîne de caractères.
Il est préférable de redéfinir cette méthode dans les sous classes pour l'adapter aux spécificités de chaque classe. Habituellement, cette méthode doit retourner une chaîne assez courte.
Reimplemented in cogitant::CoreferenceClass, cogitant::Concept, cogitant::LabeledGraphObject, and cogitant::SupportObject.
|
friend |
Sortie sur un flux.
Par défaut, sort la chaîne de caractères correspondant à l'objet (appel à toString()), mais il est possible de redéfinir l'opérateur de sortie pour sortir plus de renseignements.