Das neue Interface

et rechnungsbetrag 01

LF-ET ge­ne­riert aus der Ent­schei­dungs­tabelle ein Interface mit den folgenden Anpassungen:

  • Das Interface ist jetzt stateless und generisch, d.h. zu­stands­los und typisiert, der Typ ist ein zu­sätz­licher Parameter in allen Methoden

  • Die Methoden-Namen bei den Enums sind sprechender

    • nicht mehr isEnum oder doEnum

    • sondern z.B. isBestellwert

  • Die Namen der Enum-Werte werden aus den Symbolen abgeleitet

    • nicht mehr $001, $002, $003, …​

    • sondern z.B. $KLEINER2000, $20007500, …​

  • Ein zusätzlicher Trace-Code, der NACH jeder Regelausführung aufgerufen wird

// *** WARNING: DO NOT MODIFY *** This is a generated Java source code!
//
// Generated by LF-ET 2.4.1 (260219a), https://www.lohrfink.de/lfet
// From decision table
// "/src/main/resources/lfet/demo/Rechnungsbetrag.lfet"
// 24.02.2026 14:44
//

// Prolog Standard ---->
// profile LFET.Java.Prolog.Standard.Interface.ini not found
// used 24.02.2026 14:44 build in default

package lfet.demo;

import javax.annotation.processing.Generated;

@Generated("LF-ET")
interface Rechnungsbetrag_iFace<T>
{

    // Prolog Standard <----

    /**
     * <b>B01: Bestellwert</b><br>
     * <br>
     * The enum generation has been triggered in project.ini by:<br>
     * - <b>ide.java.interface.enum.1</b>: symbol=Intervall; include.tags.title=Bestellwert; exclude.tags.title=Rabatt<br>
     * - <b>ide.Java.Interface.Enum.default.Values</b>: method.name=enum.name; enum.value.name=symbol, uppercase, prefix$
     */
    boolean isBestellwert(Rechnungsbetrag_iFace.Bestellwert arg0, T model);

    /**
     * <b>B02: Rabatt</b><br>
     * <br>
     * <b>B02/01: &gt;0 - Rabatt wurde erfasst</b>
     */
    boolean isRabatt_Groesser0(T model);

    /**
     * <b>B03: Rabattvariante</b><br>
     * <br>
     * <b>B03/01: % - prozentualer Nachlass auf den Bestellwert</b>
     */
    boolean isRabattvariante_ProzentualerNachlassAufDenBestellwert(T model);

    /**
     * <b>B04: Rabatt &lt; Bestellwert</b><br>
     * <br>
     * <b>B04/01: J - Ja</b>
     */
    boolean isRabattKleinerBestellwert(T model);

    /**
     * <b>A01: Rabatt ber&uuml;cksichtigen</b>
     */
    void doRabattBeruecksichtigen(T model);

    /**
     * <b>A02: Porto berechnen</b>
     */
    void doPortoBerechnen(T model);

    /**
     * <b>A03: Rechnungsbetrag</b><br>
     * <br>
     * <b>A03/01: akt. - Rechnungsbetrag muss aktualisiert werden</b>
     */
    void doRechnungsbetrag_Akt(T model);

    /**
     * <b>A03: Rechnungsbetrag</b><br>
     * <br>
     * <b>A03/02: &uuml;bern. - Bestellwert kann als Rechnungsbetrag &uuml;bernommen werden</b>
     */
    void doRechnungsbetrag_Uebern(T model);

    void doTrace(java.lang.String dtName, java.lang.String version, int rules, int rule, T model);

    void doTraceAfterRule(java.lang.String dtName, java.lang.String version, int rules, int rule, T model);

    /**
     * <b>B01: Bestellwert</b><br>
     * <br>
     * The enum generation has been triggered in project.ini by:<br>
     * - <b>ide.java.interface.enum.1</b>: symbol=Intervall; include.tags.title=Bestellwert; exclude.tags.title=Rabatt<br>
     * - <b>ide.Java.Interface.Enum.default.Values</b>: method.name=enum.name; enum.value.name=symbol, uppercase, prefix$
     */
    enum Bestellwert
    {
        /**
         * <b>B01: Bestellwert</b><br>
         * <br>
         * <b>B01/01: &lt; 20,00 - gering</b>
         */
        $KLEINER2000("< 20,00", Double.NEGATIVE_INFINITY, 19.99),

        /**
         * <b>B01: Bestellwert</b><br>
         * <br>
         * <b>B01/02: 20,00 - 75,00 - normal</b>
         */
        $20007500("20,00 - 75,00", 20.0, 75.0);

        private final String symbol;
        private final double symbolMin;
        private final double symbolMax;

        Bestellwert(String symbol, double symbolMin, double symbolMax)
        {
            this.symbol = symbol;
            this.symbolMin = symbolMin;
            this.symbolMax = symbolMax;
        }

        public String getSymbol()
        {
            return symbol;
        }

        public double getSymbolMin()
        {
            return symbolMin;
        }

        public double getSymbolMax()
        {
            return symbolMax;
        }

        public boolean isInSymbolInterval(double d)
        {
            return d >= symbolMin && d <= symbolMax;
        }

        public boolean isInSymbolInterval(int i)
        {
            return i >= symbolMin && i <= symbolMax;
        }
    }

    // Epilog Standard ---->
    // profile LFET.Java.Epilog.Standard.Interface.ini not found
    // used 24.02.2026 14:44 build in default

}

// Epilog Standard <----

// End of generated Java source code
// Generated by LF-ET 2.4.1 (260219a), https://www.lohrfink.de/lfet