klee-contrib / topmodel

Outil de modélisation et générateurs pour divers langages
https://klee-contrib.github.io/topmodel/
MIT License
11 stars 12 forks source link

[modgen] Pouvoir décider du regroupement par module/sous-module #216

Closed gideruette closed 1 year ago

gideruette commented 1 year ago

Dans les propriétés qui permettent d'ajouter le mot clé module, accepeter les syntaxes suivantes :

Même syntaxe qu'en C#.

JabX commented 1 year ago

Après avoir pas mal passé de temps sur le sujet avec #225, je fais le constat suivant :

Module racine

On n'utilise le module racine que pour la génération des traductions (JS, JPA et TranslationOut). Je dirais que la valeur de regrouper autrement est assez faible, à la limite je préfèrerai sortir qu'un seul fichier par langue plutôt que de le rediviser en sous-modules. C'est fait en dur et ce n'est pas paramétrable (on dit juste aux générateurs où mettre les fichiers dans un chemin qui ne peut dépendre que de la langue).

Le module racine est aussi utilisé par le générateur JPA pour déterminer si deux classes peuvent avoir une many to many dans les deux sens.

Module complet

Tous les autres regroupements utilisent le module complet :

On voit bien le délire : à part le coup des accesseurs de référence (qui n'a aucun intérêt à regrouper autrement puisque ce ne sont pas des classes utilisées directement), tous les autres chemins ne sont pas paramétrables directement et dépendent d'un autre paramètre qui lui doit utiliser le module en entier (classes et endpoints).

On est donc dans tous les cas obligé de complexifier la configuration, y compris pour le cas nominal, afin de pouvoir avoir la main sur un truc qui est totalement acceptable dans sa config par défaut (et encore, déjà il faudrait voir qui utilise des sous-modules, parce que moi non, et je pense qu'aucun projet .NET non plus vu que jusqu'à très récemment ça ne marchait pas vraiment).

L'idée de base avait l'air fun, mais ça sert franchement à rien :)