Abschließende Ergänzungen

Zum Abschluss werden noch ein paar Anpassungen auf Projekt-Ebene vorgenommen:

  1. Es soll zustandslos gearbeitet werden

  2. Die Enums und die dazu­gehörigen Methoden­namen sollen sprechender werden

  3. Es soll ein zusätzlicher Trace-Code NACH jeder Regel generiert werden

Die Anpassungen

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 neue Einträge bei 4.1) und 7)
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
        stateless: true        # 4.1)
        trace.after.rule: true

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

      ini.path: '""'           # 6)

      interface.enum:          # 7)
        default.values:
          method.name: enum.name
          enum.value.name:
            - symbol
            - uppercase
            - prefix$

Die neuen Einträge im Detail:

4.1)

stateless: true

Mit dem Wert true wird das Interface stateless und generisch, d.h. zustandslos und typisiert, generiert.

Dieser Typ ist dann auch ein zusätzlicher Parameter in allen Methoden des Regelmoduls.

trace.after.rule: true

Mit dem Wert true wird ein zusätzlicher Trace-Code NACH der letzten Aktion in jeder Regel hinzugefügt.

7)

default.values

Die Enum-Definitionen in diesem Bereich gelten als Voreinstellung für ALLE Enum-Generierungen im Projekt

method.name: enum.name

Die Methodennamen sollen nicht mehr isEnum oder doEnum heissen, sondern sollen den Namen des Enums verwenden, wie z.B. isBestellwert

enum.value.name

− symbol
− uppercase
− prefix$

Die Enum-Werte selbst sollen nicht mehr einfach nur durchnummeriert werden ($001, $002,…​) sondern sollen auch sprechender aus dem Symbol des jeweiligen Wertes in Grossbuchstaben mit vorangestelltem Dollar-Zeichen gebildet werden, wie z.B. $KLEINER2000.