Generelle Konfi­gura­tion

Um für das Projekt die emp­foh­le­ne Gene­rierungs­variante 1 (Interface und Regel-Modul) festzulegen, wird die Konfi­gura­tions­datei nun entsprechend ergänzt:

index 03

Weitere Einstellungen für das Projekt

Diese Einstellungen werden in der Regel nur einmal festgelegt und gelten für alle Entschei­dungstabellen im Projekt.
Die Projekt-Konfiguration resources/lfet/lfet.project.yaml erhält die weiteren Einträge 1) − 6):
lfet:

  ide:
    default: java

    java:
      enabled: true            # 1)

      package: lfet.demo       # 2)

      src:                     # 3)
        encoding: utf-8
        path: ${project.root}/../../java/${package}
        create.missing.folders: true

      interface:               # 4)
        enabled: true
        name: ${dt.name}_iFace
        modifier: '""'
        method.modifier: '""'
        annotations:
          - javax.annotation.processing.Generated("LF-ET")
        language: de

      interface.rules.class:   # 5)
        name: ${dt.name}_rulesEngine
        modifier: public
        method.modifier: public
        annotations:
          - javax.annotation.processing.Generated("LF-ET")

      ini.path: '""'           # 6)

Die neuen Einträge im Detail:

1) ide.java

Der "Generalschlüssel" für Java. Mit ihm wird festgelegt, ob die Konfigurationsparameter für Java berücksichtigt werden sollen oder nicht.

2) ide.java.package

Hiermit legen wir das package fest, das für die generierten Source-Dateien verwendet werden soll.

3) ide.java.src…​

Ein paar Festlegungen für die Source-Dateien: Verzeichnis, Encoding und dass fehlende Verzeichnisse automatisch angelegt werden sollen.

Hier werden auch Parameter auf der rechten Seite als Argument verwendet, wie z.B. project.root oder package, siehe Standard-Schlüssel.

4) ide.java.interface

Aktivierung der Generierungsvariante 1 (Interface und Regel-Modul) und Festlegung erster Grundeinstellungen für die Interfaces:

  • Name des jeweiligen Interfaces

  • Modifier für Interface und Methoden, leerer String = keine Modifier

  • Annotation zur Kennzeichnung als 'Generiert'

  • Sprache für die automatische Umsetzung von Sonderzeichen bei der Bildung von Methodennamen, wie z.B. '<' in 'kleiner'

5) ide.java.interface.rules.class…​

Erste Grundeinstellungen für die Regelmodule:

  • Name des jeweiligen Regelmoduls

  • Modifier für Klasse und Methode

  • Annotation zur Kennzeichnung als 'Generiert'

6) ide.java.ini.path…​

Unterdrückung der automatischen Suche nach weiteren INI-Dateien für die Java-Generierung

Die erste Gene­rie­rung

Die Java-Gene­rie­rung kann jetzt erfolg­reich ausgeführt werden:

gensrc menue 02 xcf java

config project 03
 

Mit diesen Grund-Einstellungen wird jetzt auf Knopfdruck für jede Ent­schei­dungs­ta­belle im Package lfet.​demo ein Interface und ein Regel­modul ge­ne­riert:

config project 02

Die gene­rier­ten Mo­du­le werden nicht verändert, sie werden bei jeder Gene­rie­rung komplett neu berechnet und ge­ne­riert.
 

Am schnellsten wird die Gene­rie­rung mit der Tasten­kombi­nation STRG + G gestartet.

Hinweise

  • Mit der oben be­schrie­benen Konfi­gura­tion sind die einzigen Voraussetzungen für eine erfolg­reiche Gene­rie­rung:

    • dass die Ent­schei­dungs­ta­bellen fehlerfrei sind, siehe Ent­schei­dungs­ta­bellen prüfen, und

    • dass die Namen der Ent­schei­dungs­ta­bellen bei der Gene­rie­rung nicht zu ungültigen Java-Klassennamen führen

  • Die Gene­rie­rung kann über Generierungsparameter umfangreich konfi­guriert werden. Ausgehend von ganz einfachen Klassen bis hin zu generischen, zu­stands­losen Services.

  • Ebenso können gezielt für einzelne Ent­schei­dungs­ta­bellen vom Standard ab­wei­chende oder ergänzende Einstellungen festgelegt werden, wie z.B. individuelle Klassennamen, ein anderes Package, u.v.m. Siehe individuelle Einstellungen für einzelne Ent­schei­dungs­ta­bellen.