Quick links: Tutorial - Examples - Files - Symbols.
Classes: Hierarchy - Index - List - Members.
Namespaces: Index - base - cs - display.

List of all members
cogitant::CogitantObject Class Reference

Classe abstraite mère de tous les objets de la plate-forme. More...

#include "cogitant/object.h"

Inheritance diagram for cogitant::CogitantObject:
cogitant::Allocator cogitant::Environment cogitant::GraphObject cogitant::ObservableObject cogitant::ResultOpeProjection cogitant::SetOfCouples cogitant::Support cogitant::SupportObject cogitantcs::Base cogitantdisplay::Drawing cogitantdisplay::Figure

Public Member Functions

Constructeurs - destructeur.
 CogitantObject ()
 Constructeur. More...
 
 CogitantObject (CogitantObject const &o)
 Constructeur par recopie. More...
 
virtual ~CogitantObject ()
 Destructeur. More...
 
Modifications.
PropertySetproperties ()
 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 PropertySetallocProperties () 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.

CogitantObjectoperator= (CogitantObject const &ob)
 Affectation. More...
 
std::ostream & operator<< (std::ostream &os, CogitantObject const &ob)
 Sortie sur un flux. More...
 

Detailed Description

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 :

See also
Objects and properties.

Constructor & Destructor Documentation

◆ CogitantObject() [1/2]

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.

◆ CogitantObject() [2/2]

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).

◆ ~CogitantObject()

virtual cogitant::CogitantObject::~CogitantObject ( )
virtual

Destructeur.

Member Function Documentation

◆ allocProperties()

virtual PropertySet* cogitant::CogitantObject::allocProperties ( ) const
protectedvirtual

Fonction créant l'instance d'une sous classe de PropertySet pour la représentation des propriétés de l'objet.

Returns
Un ensemble de propriétés vide alloué dans cette méthode. Cet ensemble n'est pas affecté au membre m_properties.
Warning
Cette méthode étant virtuelle, il est conseillé de ne pas l'appeler dans un constructeur.

◆ className()

std::string cogitant::CogitantObject::className ( ) const

Nom de la classe.

Returns
Une chaîne de caractères représentant de façon unique le nom de la classe (la plus basse dans la hiérarchie) dont est instance l'objet. Ce nom de classe est obtenu par les fonctionnalités RTTI (Runtime type information) du compilateur. Selon les compilateurs la chaîne retournée peut avoir différentes formes (le namespace peut figurer ou pas, des séparateurs particuliers peuvent être utilisés entre namespace et nom de la classe).

◆ hasProperties()

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à.

Returns
true ssi l'objet a déjà un ensemble de propriétés (éventuellement vide).

◆ operator=()

CogitantObject& cogitant::CogitantObject::operator= ( CogitantObject const &  ob)

Affectation.

◆ properties() [1/2]

PropertySet* cogitant::CogitantObject::properties ( )

Accès à l'ensemble des propriétés.

Returns
Un pointeur sur l'ensemble des propriétés de l'objet, qui ne doit pas être détruit. Si aucun accès à l'ensemble des propriétés n'a été effectué (c'est à dire m_properties == NULL), cette méthode alloue et retourne un ensemble de propriétés par allocProperties().
Warning
Cette méthode pouvant appeler allocProperties(), il est conseillé de ne pas l'appeler dans un constructeur.
Examples:
converter.cpp.

◆ properties() [2/2]

PropertySet const* cogitant::CogitantObject::properties ( ) const

Accès en lecture seule à l'ensemble des propriétés.

Returns
Un pointeur sur l'ensemble des propriétés de l'objet, qui ne doit pas être détruit. Si aucun accès à l'ensemble des propriétés n'a été effectué (c'est à dire m_properties == NULL), cette méthode alloue et retourne un ensemble de propriétés par allocProperties().
Warning
Cette méthode pouvant appeler allocProperties(), il est conseillé de ne pas l'appeler dans un constructeur. Dans le cas où m_properties == 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.

◆ toString()

virtual std::string cogitant::CogitantObject::toString ( ) const
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.

Returns
le nom de la classe (appel à className()).

Reimplemented in cogitant::CoreferenceClass, cogitant::Concept, cogitant::LabeledGraphObject, and cogitant::SupportObject.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  os,
CogitantObject const &  ob 
)
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.