BuchungssatzImpl.javaProxy/Adapter für BuchungssatzDO – die JPA-Entität, die einen Buchhaltungseintrag in org.projectforge.business.fibu.kost repräsentiert. Implementiert das Buchungssatz-Reporting-Interface aus org.projectforge.reporting. Javadoc: „Proxy für BuchungssatzDO“.
Dies ist das klassische Adapter-Pattern: Eine JPA-Entität kann nicht direkt ein Reporting-Interface implementieren (sie leben in separaten Modulen mit unterschiedlichen Abhängigkeitsgraphen), daher delegiert ein Wrapper alle Aufrufe an das DO. Mit 143 Zeilen ist es der größte Impl-Wrapper im Reporting-Paket.
Im Konstruktor akzeptiert es ein BuchungssatzDO, extrahiert verwandte Objekte (Konto, GegenKonto, Kost1, Kost2) und kapselt jedes in seine entsprechende Impl-Klasse: KontoImpl (#795), Kost1Impl, Kost2Impl. Alle Felder werden als final gecacht – einmal während der Konstruktion erstellt und nie neu berechnet.
BuchungssatzDO implements Buchungssatz?Die JPA-Entität lebt im Modul projectforge-business, während das Reporting-Interface vom Finanzberichtsmodul konsumiert wird. Eine direkte Abhängigkeit würde eine zirkuläre Abhängigkeit erzeugen. Der Adapter löst dies: Das DO weiß nichts über Reporting, und das Reporting erhält Daten durch den Wrapper. Zusätzlich kann der Impl Daten transformieren (z. B. getFormattedMonth() ruft StringHelper.format2DigitNumber() auf), ohne das DO mit reportspezifischer Formatierungslogik zu belasten.
Jeder Getter delegiert einfach an das zugrunde liegende BuchungssatzDO:
| Methode | Rückgabe | Quelle |
|---|---|---|
getId() | Long | Direkte Delegation |
getBeleg() | Belegnummer | Direkte Delegation |
getBetrag() | BigDecimal Betrag | Direkte Delegation |
getComment() | String | Direkte Delegation |
getDatum() | LocalDate | Direkte Delegation |
getGegenKonto() | Konto | Gecachter Impl-Proxy |
getKonto() | Konto | Gecachter Impl-Proxy |
getKost1() | Kost1 | Gecachter Impl-Proxy |
getKost2() | Kost2 | Gecachter Impl-Proxy |
getMenge() | Mengenstring | Direkte Delegation |
getMonth() | Integer | Direkte Delegation |
getFormattedMonth() | 2-stelliger String | Formatiert via StringHelper |
getSatznr() | Integer | Direkte Delegation |
getSh() | SHType (Soll/Haben) | Direkte Delegation |
getText() | String | Direkte Delegation |
getYear() | Integer | Direkte Delegation |
Die ID wurde in Commit 4c04cfd65 von Integer auf Long migriert. Datumsfelder verwenden java.time.LocalDate (migriert von java.util.Date in 78b436d9e).
868d6abb7 2025 -> 2026 63081666f Quellcode-Dateiköpfe: 2024 -> 2025. 4c04cfd65 MAJOR-CHANGE! Migration von Integer-IDs zu Long-IDs (inkl. Fremdschlüssel usw.) b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 ceb63e8a1 Quellcode-Kopfzeile: (C) 2001-2021. a6a7aece4 Optimiere Importe 78b436d9e Ersetze Instanzen von java.util.date und java.sql.Date durch java.time.LocalDate 7c79f1922 Copyright des Quellcode-Kopfes -> 2020.