klee-contrib / topmodel

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

Templates de valeurs par implémentation de domaine #297

Closed JabX closed 1 year ago

JabX commented 1 year ago

Fix #293 (enfin pas la partie sur les enums)

On peut spécifier un template à utiliser par défaut (qui peut utiliser {value}), ou bien spécifier des surcharges pour des valeurs précises dans l'implémentation d'un domaine. On peut également définir des imports qui ne seront ajoutés aux fichiers que si la valeur est utilisée pour la génération (implémenté en C# et JS uniquement).

Exemples :

---
domain:
  name: DO_NUMBER
  label: Nombre
  java:
    type: BigDecimal
    imports:
      - java.math.BigDecimal
    values:
      template: new BigDecimal({value})
---
domain:
  name: DO_DATE
  label: Date
  ts:
    type: string
    values:
      overrides:
        now: 
          value: today().toISO()
          imports:
            - "./common/utils/today"
  csharp:
    type: DateOnly?
    values:
      overrides:
        now: DateOnly.FromDateTime(DateTime.Now)
  java:
    type: LocalDate
    imports:
      - java.time.LocalDate
    values:
      overrides:
        now: LocalDate.now()
  sql:
    type: date
    values:
      overrides:
        now: now()

Cette PR apporte 2 breaking changes :