Développement d'une entité

On affiche la fenêtre suivante à partir du menu "Développement" (item Entity). Les boutons sont définis ici.







Une fois le nom C++ de la classe choisi, le nom et le symbole de classe sont libres, mais le nommage automatique est recommandé.

L'interface ne donne la possibilité que de double héritage (au sens de l'héritage multiple de C++) dans la ligne étiquettée par SetParentclassId, et que la possibilité de deux classes "conteneur" dans la ligne étiquettée par SuperSetClassId. Les lignes de code C++ correspondantes seront générées automatiquement dans le constructeur de l'entité, dans la partie qualifiée de non spécifique. Si besoin est d'aller plus loin, il faut ajouter les lignes de code appropriées, dans la partie qualifiée de spécifique du constructeur (voir ci-dessous).

Le symbole de la classe des éléments et les symboles des classes des composants sont extraites des listes déroulantes dans la ligne étiquettées respectivement par ElementClassId et AddComponentClassId. On rappelle que ces deux spécifications s'excluent mutuellement. Dans la figure ci-dessus, les instances de la classe Baignoire ne peuvent pas avoir d'éléments, mais doivent avoir deux composants de classes RobinetAlimentation et RobinetExutoire.

Codage du constructeur de la classe.
Il est normalement entièrement pris en charge par Solfege, plus précisément par l'item Enregistrer du menu Bases de connaissances (qui génère le code C++ à compiler), et auparavant par le bouton Appliquer de cette fenxxtre (qui en génère une version temporaire, valide jusqu'au prochain enregistrement de la base).
Il est cependant possible d'adapter le code à des besoins particuliers. Il suffit pour cela d'éditer le fichier correspondant en cliquant sur le bouton Coder (ou Modifier dès qu'une version a déjà été enregistrée). Pour illustration, le code du constructeur de la classe Baignoire est édité ci-dessous. On a ajouté une ligne, en prenant soin que ce soit bien dans la partie qualifiée de spécifique.
Le bouton avec une croix rouge sert à détruire le corps du constructeur. Il est bien entendu nécessaire de le remplacer par un autre. Il faut pour cela Appliquer la destruction puis à nouveau Modifier l'entité à partir de la fenxxtre de choix.





Haut de la page





On peut doter l'entité d'un démon sur sa structure et/ou d'un ou plusieurs démons sur ses descripteurs .
Le démon sur la structure est exclusivement choisi dans la liste déroulante étiquettée par SetStructureMonitor qui contient les démons déjà créés.
Le ou les démons sur les descripteurs sont justement spécifiés par des couples {démon - descripteur}. Pour chaque couple, le descripteur est choisi dans la liste déroulante supérieure, à droite de la ligne étiquettée par SetMonitorToDescriptor, et le démon dans la liste déroulante inférieure. On rappelle qu'il ne faut pas associer deux démons au mxxme descripteur, dans une classe d'entité. Haut de la page





Les descripteurs propres sont ceux qui ne sont pas définis dans les classes parentes, autrement dit qui ne sont pas hérités.
Le fenxxtre ci-dessus sert à doter l'entité de descripteurs, constants dans la partie haute et variables en bas.
Il est en mxxme temps possible de provoquer le codage dans le constructeur d'une affectation de valeur initiale.
Le choix du descripteur à ajouter se fait à l'intérieur de la liste déroulante supérieure, à droite, qui contient les descripteurs déjà créés. Ce choix provoque le cas échéant la visualisation du domaine de valeur dans la zone inférieure (c'est le cas pour le descripteur Debit, qu'en fait on n'attribuera pas à cette classe), et éventuellement du commentaire attaché au descripteur (dans la zone de texte en bas de la fenxxtre).
On peut donc décider d'une valeur initiale, dans la zone de texte intermédiaire. En tout état de cause, cette valeur doit xxtre du bon type et figurer, le cas échéant, dans le domaine de valeur.

Haut de la page





Les descripteurs hérités sont ceux qui ont déjà été définis dans les classes parentes, et donc automatiquement affectés à la classe courante.
Le fenxxtre ci-dessus sert à affecter éventuellement des valeurs spécifiques à ces descripteurs, constants dans la partie haute et variables en bas.
Dans chaque partie, la ligne étiquettée Inherited..Desc value affiche les descripteurs hérités avec les valeurs éventuellement héritées d'une des classes immédiatement parentes. La ligne étiquettée Overloaded..Desc value sert à surcharger ces valeurs héritées, ou en affecter une à partir de ce niveau d'héritage et par conséquent pour les éventuelles sous-classes. Haut de la page





Haut de la page





Haut de la page

Retour aux items

Retour au menu BASIC DIESE