AXE=1, SYMPODE, BOUQUET, FRUIT
Enumération exhaustive des symboles de classe des entités du domaine.
Les classes d'entités sont définies par l'utilisateur comme des sous-classes de Entity. Chaque sous-classe est caractérisée par un symbole de classe qui doit être présent dans l'énumération UserClassId. La méthode ClassSymbol(id) permet d'affecter le symbole de classe id à une entité :
Bouquet::Bouquet() { ClassSymbol(BOUQUET)} ... printf("\nLa classe dont '%s' est une instance a %s (=%d) pour symbole.", this->InstanceName(), ClassIdToCharTab[this->ClassSymbol()]); }>> La classe dont 'bouquet_812' est une instance a BOUQUET (=123) pour symbole.On voit que le message ClassSymbol() adressé, par exemple, à une instance de la sous-classe Bouquet renvoie le symbole attribué (BOUQUET). A la position d'indice BOUQUET (123), se trouve la chaîne de caractères "BOUQUET".
Les entiers corrrespondant aux symboles doivent être tous strictement plus grands que zéro. En effet, l'entier 2 (équivalent au symbole BD_ENTITY) est utilisé par DIESE comme symbole de classe de Entity (voir page 'Constantes symboliques générales'). Ainsi, de même que DIESE contraint les symboles des classes d'une application A construite sur DIESE, l'application A contraint à son tour les symboles des classes d'une application B construite sur A.
Dans l'application A (fichier A_UserTypes.h), on écrit :
#include "B_diese.h" // les énumérations dans BASIC DIESE enum A_ClassId{I1=1, I2, I3};Et dans l'application B (fichier B_UserTypes.h) :
#include A_UserTypes.h // les énumérations dans l'application A enum B_ClassId{J1=4, J2, J3};