class EntitySpec


Méthodes publiques

[more] Constructeurs/Destructeurs
[more] Identification
[more] Opérations
[more] Affectation des méthodes


o Constructeurs/Destructeurs

o EntitySpec()
Constructeur de base. La valeur RETURN_INSTANCES est affectée au mode. La valeur ALLENT est affectée au quantificateur. Aucune méthode n'est dotée d'un corps.

o EntitySpec(UserClassId)
Constructeur de base, avec le symbole de la classe puits. La valeur RETURN_INSTANCES est affectée au mode. La valeur ALLENT est affectée au quantificateur. Aucune méthode n'est dotée d'un corps.

o EntitySpec(UserClassId, QuantificatorId, int n, bool(* predicat) (EntitySpecMethod*), int (* h) (EntitySpecMethod*), BasicEntity*)
Constructeur de base, avec un prédicat de sélection en quatrième argument. La valeur RETURN_INSTANCES est affectée au mode. Le deuxième argument est NFIRST ou ALLENT. Le troisième argument est l'effectif n. Il doit être strictement positif si et seulement si le second argument est NFIRST et qu'aucune fonction d'évaluation de l'effectif, assignée par la méthode AssignQuantityEvaluator, n'est spécifiée en cinquième argument (valeur NULL pour h). Le sixième argument est l'entité de référence. Le prédicat de sélection est assigné par la méthode AssignSelectorPredicate.

o EntitySpec(UserClassId id, QuantificatorId, int n, BasicEntity* (* f) (EntitySpecMethod*), int (* h) (EntitySpecMethod*), BasicEntity*)
Constructeur de base, avec une fonction de construction en quatrième argument (f). La valeur INSTANTIATE est affectée au mode. Le deuxième argument est NFIRST. Le troisième argument est l'effectif n. Il doit être strictement positif si aucune fonction d'évaluation de l'effectif, assignée par la méthode AssignQuantityEvaluator, n'est spécifiée en cinquième argument (valeur NULL pour h). Le sixième argument est l'entité de référence. La fonction de construction est assignée par la méthode AssignEntityInstantiator. Elle construit les intances une à une et est donc invoquée n fois lors de l'expansion. Si f a la valeur NULL, Expand invoque NewEntityFromId(id) (voir page 'Fonctions globales/Création d'instances d'entités')

o EntitySpec(UserClassId, QuantificatorId, int n, pEntityTab* (* g) (EntitySpecMethod*), int (* h) (EntitySpecMethod*), BasicEntity*)
Constructeur de base, avec une fonction de construction en quatrième argument (g). Cette fonction construit elle-même la liste des n intances qui sera renvoyée par Expand, après examen des spécifications de domaines de valeurs. La valeur INSTANTIATE est affectée au mode. Le deuxième argument est NFIRST. Le troisième argument est l'effectif n. Il doit être strictement positif si aucune fonction d'évaluation de l'effectif, assignée par la méthode AssignQuantityEvaluator, n'est spécifiée en cinquième argument (valeur NULL pour h). Le sixième argument est l'entité de référence. La fonction de construction est assignée par la méthode AssignEntityListInstantiator.

o EntitySpec(const EntitySpec&)
Constructeur par copie. Les entités de la liste expansée (renvoyée par GetExpansion) ne sont pas copiées. Autrement dit, cette liste est vide dans la copie. Une nouvelle liste peut être générée par un appel à Expand appliqué à la copie. Par contre, la copie possède les mêmes spécifications de domaines de valeurs que l'instance d'origine copiée.

o ~EntitySpec()
Destructeur. Ni les entités de la liste expansée ni les spécifications de domaines de valeurs éventuellement attachées ne sont détruites.

ovoid ClassName(char*)
Affecte à la classe le nom donné en argument. Cette méthode doit être invoquée dans le constructeur de EntitySpec qui reçoit le nom de classe en argument ou explicitement dans le constructeur des sous-classes. Il est nécessaire d'affecter un nom de classe dans le cas où un corps d'une méthode est externalisé (voir la page sur la classe Swig, page 'Externalisation de données fonctionnelles').

ochar* ClassName() const
Renvoie le nom de classe de la spécification.

o Identification

oUserClassId GetReferenceClassId()
Renvoie le symbole de classe de la classe dans laquelle sont recherchés les entités à placer dans la liste expansée. Si un symbole n'a pas été précisé, on l'établit à partir du nom de classe. Si celui-ci n'a pas été fourni, l'exception NoInformationForReferenceClass est levée.

ovoid ReferenceClassId(UserClassId)
Etablit le symbole de classe de la classe dans laquelle sont recherchés les entités à placer dans la liste expansée.

ovoid ReferenceClassName(char*)
Etablit le nom de classe de la classe dans laquelle sont recherchés les entités à placer dans la liste expansée.

ovoid SetMode(EntitySpecMode)
Etablit le mode de la spécification, qui détermine si les instances à retourner sont à créer ou non.

ovoid SetQuantificatorId(QuantificatorId)
Etablit le quantificateur de la spécification, qui détermine si toutes les instances sélectionnées sont à retourner ou bien seulement les n premières trouvées.

ovoid IntQuantity(int)
Etablit la taille maximale de la liste d'entités à construire, parmi les entités satisfaisant la spécification.

ovoid ReferentEntity(BasicEntity*)
Etablit l'entité de référence de la spécification.

opEntityTab* GetExpansion()
Renvoie la liste des entités qui correspondent à la spécification. Cette liste est construite par un appel à Expand. Attention ! Il ne s'agit pas d'une copie : cette liste ne doit être modifiée qu'en connaissance de cela. Notamment, les corps de la méthode EntityListInstantiator vide généralement cette liste avant de la recompléter.

o Opérations

ovoid AddDescValueSpec(DescValueSpec*)
Ajoute à la présente spécification une spécification de domaine de valeur, après celles éventuellement déjà ajoutées.

ovoid Expand()
Génère la liste des entités qui correspondent à la spécification. Affecte cette valeur à l'attribut de la présente spécification renvoyé par un appel à GetExpansion. Selon le mode de la spécification, Expand invoque le prédicat de sélection sur les instances existantes de la classe de référence, ou bien la fonction d'instanciation (celle assignée par AssignEntityInstantiator ou par AssignEntityListInstantiator).

o Affectation des méthodes

ovoid AssignSelectorPredicate(bool(* function) (EntitySpecMethod* pM))
Affecte à la spécification un prédicat qui détermine si une entité correspond à la spécification. L'entité est la valeur de l'argument de pM de symbole CANDIDATEENTITY_ARGUMENT. Un autre argument, de symbole REFERENCEENTITY_ARGUMENT, a pour valeur une entité quelconque qui peut servir de référence dans le corps du prédicat.

ovoid AssignEntityInstantiator(BasicEntity* (* function) (EntitySpecMethod* pM))
Affecte à la spécification une fonction qui construit une entité d'une certaine classe, celle dont le symbole est la valeur de l'argument de pM dont le symbole est CLASSID_ARGUMENT. Un autre argument, de symbole REFERENCEENTITY_ARGUMENT, a pour valeur une entité quelconque qui peut servir de référence dans le corps de la fonction.

ovoid AssignEntityListInstantiator(pEntityTab* (* function)(EntitySpecMethod* pM))
Cette fonction est analogue à la précédente, à ceci près qu'elle affecte à la spécification une fonction qui construit la liste complète des entités de la classe dont le symbole est la valeur de l'argument de pM dont le symbole est CLASSID_ARGUMENT. Un autre argument de pM, de symbole LISTSIZE_ARGUMENT, est la taille de la liste à construire.

ovoid AssignQuantityEvaluator(int (*function) (EntitySpecMethod* pM))
Affecte à la spécification une fonction qui renvoie le nombre d'entités que doiAffecte à la spécification une fonction qui renvoie le nombre d'entités que doit contenir, au maximum, la liste renvoyée par Expand. Cette fonction n'est invoquée que si l'effectif n, celui passé en paramètre du constructeur ou établi par par IntQuantity, n'est pas strictement positif. L'entité qui est la valeur de l'argument de pM de symbole REFERENCEENTITY_ARGUMENT est une entité quelconque susceptible de renseigner la détermination de l'effectif.


Cette classe n'a pas de classe descendante.

This page was generated with the help of DOC++.