Les classes générées le sont à partir des objets suivants :
PsType
PsSimulatedObject
Le schéma du premier chapitre est le diagramme UML des objets permettant de définir les éléments constitutifs de ses objets. On y retrouve les deux types d'objets PsType et PsSimulatedObject qui sont tous deux héritiers de PsObject. C'est d'ailleurs dans cette base que l'on trouve tous les attributs nécessaires.
Par la suite les notations suivantes seront adoptées pour les attributs et éléments :
[?] : optionnel
[1] : obligatoire
[*] : entre 0 et N
a désigne les attributs
o désigne les éléments
Le schéma du premier chapitre est le diagramme UML des objets permettant de définir les éléments constitutifs de ses objets.
Les attributs communs à toutes les structures nommées sont :
a name [1] : Nom de la classe qui sera générée, la première lettre sera toujours en majuscule
a doc [?] : Texte complétant le texte généré automatiquement pour la documentation Doxygen
Les deux types d'objets PsType et PsSimulatedObject sont tous deux héritiers de PsObject. C'est d'ailleurs dans cette base que l'on trouve tous les attributs nécessaires :
a fileName [?] : Nom du fichier de la classe qui sera utilisé pour l'include dans le fichier cpp, si non précisé par défaut le nom de la classe name en minuscule
a authors [?] : Texte contenant les noms des auteurs qui apparaitront dans la documentation Doxygen
a brief [?] : Texte remplaçant le bref généré automatiquement pour la documentation Doxygen
a class [?] : Nom de la classe ancêtre, si non précisé c'est PsType ou PsSimulatedObject par défaut
a incFileName [?] : Nom du fichier à inclure pour l'ancêtre (sans '.h') par défaut le nom class de la classe ancêtre
o items [*] : Liste des données de la classe, ce sont des éléments Data
Les éléments sont des Data dans lesquels on trouve le type de deux natures ou SimpleType ou RefType, le premier correspond à tous les types simple du C++ (float, int, bool,...) le second à un type quelconque. Dans un cas comme dans l'autre l'élément peut être ou non stocké dans un dictionnaire (map) ou une liste (list). Les attributs des éléments sont :
a optionalParameter [1] : (booléen valeurs possibles true ou false) Drapeau indiquant comment l'élément est lu dans les paramètres de configuration, par défaut true (true pas de message d'erreur si absent, false message d'erreur si absent et retour de loadParameters ou loadAttributsParameters à false)
a container [?] : Soit un PsMap qui contient lui-même un élément index de type SimpleType ou RefType, soit un PsList, soit rien
a defaultValue [?] : Le texte utilisé pour initialiser l'attribut par défaut
Ex: pour un entier « 1 », pour un PsPosition « 1, 2, 3, 4, 5, 6 », qui donneront respectivement :
nbElt = 1 ; maPosition = PsPosition( 1, 2, 3, 4, 5, 6 ) ;Il faut noter qu'à partir du moment où on utilise un container (liste ou dictionnaire) la valeur par défaut n'a plus de sens, elle sera ignorée.
o type [1] : Type de l'élément
o index [?] : Type de l'index dans le cas d'un dictionnaire (sinon ignoré)
Selon les cas les attributs du type sont :
a type [1] : Enuméré définissant le type de l'élément, les valeurs possible sont tous les types simples de variables concaténés avec Type ; ex: intType, boolType,...
a class [1] : Nom de la classe
a incFileName [?] : Nom du fichier à inclure pour la classe (sans '.h') par défaut le nom class de la classe
Les PsType ne sont qu'une collection de données, en revanche pour les PsSimulatedObject on ajoute un attribut et les entrées/sorties :
a exitOnInitError [?] : (booléen valeurs possibles true ou false) Drapeau indiquant si la simulation doit s'arrêter lors de l'initialisation si celle-ci n'a pas pu se finir sans erreur, si non précisé on n'arrête pas par défaut
o outputs [*] : elles ont le même format que les données
o inputs [*] : elles possèdent leur propre format
Les inputs possèdent deux attributs :
a optionalConnection [?] : (booléen valeurs possibles true ou false) Drapeau indiquant comment la connexion est lue dans les paramètres de configuration, par défaut true (true pas de message d'erreur si absent, false message d'erreur si absent et retour de loadConnectionsParameters à false)
a paramInArray [?] : (booléen valeurs possibles true ou false) Drapeau indiquant comment la connexion est lue dans les paramètres de configuration, sous forme de tableau ou de deux champs de texte
Tous les champs Name doivent être remplis.