Classe abstraite pour la représentation d'un ensemble de types bannis (représentés par des iSet). More...
#include "cogitant/bannedtypes.h"
Classes | |
class | Iterator |
Itérateur permettant de parcourir tous les types conjonctifs de l'ensemble de types bannis. More... | |
Public Member Functions | |
Constructeurs - destructeur. | |
BannedTypes () | |
Constructeur. More... | |
virtual | ~BannedTypes () |
Destructeur. More... | |
Modifications. | |
virtual void | setPartialOrder (PartialOrder const *po) |
Fixe l'ordre partiel défini sur l'ensemble de types associé. More... | |
virtual void | clear ()=0 |
Vide l'ensemble. More... | |
virtual void | addBannedType (ConceptType::ConjunctiveType const &b)=0 |
Ajout d'un type banni. More... | |
virtual void | delBannedType (ConceptType::ConjunctiveType const &b)=0 |
Supprime un type banni. More... | |
virtual void | optimize ()=0 |
Optimiser. More... | |
void | addAllBannedTypes (std::vector< iSet > const &b) |
Ajout d'un ensemble de couples de types bannis. More... | |
Accesseurs. | |
virtual bool | optimized () const =0 |
Optimisation des structures de données. More... | |
virtual Iterator * | iterator () const =0 |
Retourne un iterateur (alloué dynamiquement) permettant de parcourir la structure. More... | |
virtual nSet | size () const =0 |
Nombre de types bannis. More... | |
virtual bool | isBanned (ConceptType::ConjunctiveType const &t) const =0 |
Recherche. More... | |
virtual bool | hasBannedType (ConceptType::ConjunctiveType const &t) const =0 |
Est-ce que l'ensemble de type a "exactement" ce type banni-là. More... | |
Protected Member Functions | |
virtual bool | iteratorNext (Iterator *it) const =0 |
Passage à l'élément suivant de l'itérateur. More... | |
virtual std::vector< iSet > const & | iteratorGetCurrent (Iterator const *it) const =0 |
Accès à l'élément courant de l'itérateur. More... | |
Protected Attributes | |
PartialOrder const * | m_partialorder |
Ordre partiel sur les types primitifs repérés dans l'ensemble de types bannis. More... | |
Friends | |
class | Iterator |
Opérateurs. | |
std::ostream & | operator<< (std::ostream &out, BannedTypes const &c) |
Classe abstraite pour la représentation d'un ensemble de types bannis (représentés par des iSet).
cogitant::BannedTypes::BannedTypes | ( | ) |
Constructeur.
|
virtual |
Destructeur.
void cogitant::BannedTypes::addAllBannedTypes | ( | std::vector< iSet > const & | b | ) |
Ajout d'un ensemble de couples de types bannis.
Cette méthode ajoute à l'ensemble des types bannis tous les couples de types présents dans le vecteur reçu en paramètre.
b | Ensemble de types. |
ExceptionReadOnlyObject | |
ExceptionAlreadyPresent |
|
pure virtual |
Ajout d'un type banni.
ExceptionReadOnlyObject | |
ExceptionAlreadyPresent |
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Vide l'ensemble.
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Supprime un type banni.
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Est-ce que l'ensemble de type a "exactement" ce type banni-là.
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Recherche.
Contrairement à hasBannedType(), cette méthode utilise l'ordre sur les types de concepts, dans la majorité des cas, c'est donc isBanned() qui soit être utilisée.
true
ssi le type conjonctif passé est interdit. Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Retourne un iterateur (alloué dynamiquement) permettant de parcourir la structure.
Implemented in cogitant::BannedTypes_Simple.
|
protectedpure virtual |
Accès à l'élément courant de l'itérateur.
Implemented in cogitant::BannedTypes_Simple.
|
protectedpure virtual |
Passage à l'élément suivant de l'itérateur.
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Optimiser.
L'appel à cette méthode provoque un calcul des structures optimisées pour l'accès rapide à l'opération de recherche. Une fois optimisé, l'ensemble ne doit plus être modifié. Cette méthode doit être concrétisée dans les sous classes (éventuellement avec un code vide) et fournir une éventuelle optimisation.
Implemented in cogitant::BannedTypes_Simple.
|
pure virtual |
Optimisation des structures de données.
Si les structures de données sont optimisées, plus aucune modification ne peut être effectuée.
true
ssi la structure de données est optimisée. Implemented in cogitant::BannedTypes_Simple.
|
virtual |
Fixe l'ordre partiel défini sur l'ensemble de types associé.
Cette méthode doit être appelée avec tout appel à isBanned(). La classe Support se charge de l'appeler automatiquement, donc il est inutile de l'appeler explicitement.
|
pure virtual |
Nombre de types bannis.
Implemented in cogitant::BannedTypes_Simple.
|
protected |
Ordre partiel sur les types primitifs repérés dans l'ensemble de types bannis.
L'ordre partiel doit être connu du BannedTypes parce que lors de l'interrogation pour savoir si un type conjonctif est interdit, il faut chercher si le type a vérifier est une spécialisation d'un des types bannis mémorisés, donc BannedTypes doit pouvoir accéder au PartialOrder correspondant.