Das Modell

impl 01 model

Die Klasse Rechnungsbetrag_model enthält alle fachlichen Attribute, die durch die Entscheidungstabelle entweder ausgewertet oder berechnet werden, wie z.B. Bestellwert, Rabatt oder Porto.

et rechnungsbetrag 01

Manuell Programmiert

Wir verwenden gerne Lombok, dies erspart die manuelle Programmierung aller Standard-Glue-Codes, wie z.B. Konstruktoren und Zugriffsmethoden.

Die manuell programmierte Java-Klasse:
package lfet.demo;

import lombok.Data;

import java.math.BigDecimal;

@Data
public class Rechnungsbetrag_model {

    private final BigDecimal bestellwert;
    private final BigDecimal rabatt;
    private final String rabattTyp; // "%", "EUR"
    private final BigDecimal porto;

    private BigDecimal rechnungPorto = BigDecimal.ZERO;
    private BigDecimal rechnungRabatt = BigDecimal.ZERO;
    private BigDecimal rechnungBetrag = BigDecimal.ZERO;

    public boolean isRabattProzent() {
        return rabattTyp.contains("%");
    }

}

Von Lombok erzeugt

Dieser Abschnitt ist nur für diejenigen gedacht, die Lombok noch nicht kennen.

Die von Lombok automatisch erzeugte Java-Klasse:
package lfet.demo;

import java.math.BigDecimal;
import lombok.Generated;

public class Rechnungsbetrag_model {
    private final BigDecimal bestellwert;
    private final BigDecimal rabatt;
    private final String rabattTyp;
    private final BigDecimal porto;
    private BigDecimal rechnungPorto;
    private BigDecimal rechnungRabatt;
    private BigDecimal rechnungBetrag;

    public boolean isRabattProzent() {
        return this.rabattTyp.contains("%");
    }

    @Generated
    public Rechnungsbetrag_model(BigDecimal bestellwert, BigDecimal rabatt, String rabattTyp, BigDecimal porto) {
        this.rechnungPorto = BigDecimal.ZERO;
        this.rechnungRabatt = BigDecimal.ZERO;
        this.rechnungBetrag = BigDecimal.ZERO;
        this.bestellwert = bestellwert;
        this.rabatt = rabatt;
        this.rabattTyp = rabattTyp;
        this.porto = porto;
    }

    @Generated
    public BigDecimal getBestellwert() {
        return this.bestellwert;
    }

    @Generated
    public BigDecimal getRabatt() {
        return this.rabatt;
    }

    @Generated
    public String getRabattTyp() {
        return this.rabattTyp;
    }

    @Generated
    public BigDecimal getPorto() {
        return this.porto;
    }

    @Generated
    public BigDecimal getRechnungPorto() {
        return this.rechnungPorto;
    }

    @Generated
    public BigDecimal getRechnungRabatt() {
        return this.rechnungRabatt;
    }

    @Generated
    public BigDecimal getRechnungBetrag() {
        return this.rechnungBetrag;
    }

    @Generated
    public void setRechnungPorto(BigDecimal rechnungPorto) {
        this.rechnungPorto = rechnungPorto;
    }

    @Generated
    public void setRechnungRabatt(BigDecimal rechnungRabatt) {
        this.rechnungRabatt = rechnungRabatt;
    }

    @Generated
    public void setRechnungBetrag(BigDecimal rechnungBetrag) {
        this.rechnungBetrag = rechnungBetrag;
    }

    @Generated
    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Rechnungsbetrag_model)) {
            return false;
        } else {
            Rechnungsbetrag_model other = (Rechnungsbetrag_model)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$bestellwert = this.getBestellwert();
                Object other$bestellwert = other.getBestellwert();
                if (this$bestellwert == null) {
                    if (other$bestellwert != null) {
                        return false;
                    }
                } else if (!this$bestellwert.equals(other$bestellwert)) {
                    return false;
                }

                Object this$rabatt = this.getRabatt();
                Object other$rabatt = other.getRabatt();
                if (this$rabatt == null) {
                    if (other$rabatt != null) {
                        return false;
                    }
                } else if (!this$rabatt.equals(other$rabatt)) {
                    return false;
                }

                Object this$rabattTyp = this.getRabattTyp();
                Object other$rabattTyp = other.getRabattTyp();
                if (this$rabattTyp == null) {
                    if (other$rabattTyp != null) {
                        return false;
                    }
                } else if (!this$rabattTyp.equals(other$rabattTyp)) {
                    return false;
                }

                Object this$porto = this.getPorto();
                Object other$porto = other.getPorto();
                if (this$porto == null) {
                    if (other$porto != null) {
                        return false;
                    }
                } else if (!this$porto.equals(other$porto)) {
                    return false;
                }

                Object this$rechnungPorto = this.getRechnungPorto();
                Object other$rechnungPorto = other.getRechnungPorto();
                if (this$rechnungPorto == null) {
                    if (other$rechnungPorto != null) {
                        return false;
                    }
                } else if (!this$rechnungPorto.equals(other$rechnungPorto)) {
                    return false;
                }

                Object this$rechnungRabatt = this.getRechnungRabatt();
                Object other$rechnungRabatt = other.getRechnungRabatt();
                if (this$rechnungRabatt == null) {
                    if (other$rechnungRabatt != null) {
                        return false;
                    }
                } else if (!this$rechnungRabatt.equals(other$rechnungRabatt)) {
                    return false;
                }

                Object this$rechnungBetrag = this.getRechnungBetrag();
                Object other$rechnungBetrag = other.getRechnungBetrag();
                if (this$rechnungBetrag == null) {
                    if (other$rechnungBetrag != null) {
                        return false;
                    }
                } else if (!this$rechnungBetrag.equals(other$rechnungBetrag)) {
                    return false;
                }

                return true;
            }
        }
    }

    @Generated
    protected boolean canEqual(Object other) {
        return other instanceof Rechnungsbetrag_model;
    }

    @Generated
    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        Object $bestellwert = this.getBestellwert();
        result = result * 59 + ($bestellwert == null ? 43 : $bestellwert.hashCode());
        Object $rabatt = this.getRabatt();
        result = result * 59 + ($rabatt == null ? 43 : $rabatt.hashCode());
        Object $rabattTyp = this.getRabattTyp();
        result = result * 59 + ($rabattTyp == null ? 43 : $rabattTyp.hashCode());
        Object $porto = this.getPorto();
        result = result * 59 + ($porto == null ? 43 : $porto.hashCode());
        Object $rechnungPorto = this.getRechnungPorto();
        result = result * 59 + ($rechnungPorto == null ? 43 : $rechnungPorto.hashCode());
        Object $rechnungRabatt = this.getRechnungRabatt();
        result = result * 59 + ($rechnungRabatt == null ? 43 : $rechnungRabatt.hashCode());
        Object $rechnungBetrag = this.getRechnungBetrag();
        result = result * 59 + ($rechnungBetrag == null ? 43 : $rechnungBetrag.hashCode());
        return result;
    }

    @Generated
    public String toString() {
        String var10000 = String.valueOf(this.getBestellwert());
        return "Rechnungsbetrag_model(bestellwert=" + var10000 
		+ ", rabatt=" + String.valueOf(this.getRabatt()) 
		+ ", rabattTyp=" + this.getRabattTyp() 
		+ ", porto=" + String.valueOf(this.getPorto()) 
		+ ", rechnungPorto=" + String.valueOf(this.getRechnungPorto()) 
		+ ", rechnungRabatt=" + String.valueOf(this.getRechnungRabatt()) 
		+ ", rechnungBetrag=" + String.valueOf(this.getRechnungBetrag()) + ")";
    }
}