BuchungssatzImpl.javaProxy/adaptateur pour BuchungssatzDO — l'entité JPA représentant une écriture comptable dans org.projectforge.business.fibu.kost. Implémente l'interface de reporting Buchungssatz de org.projectforge.reporting. Javadoc : « Proxy pour BuchungssatzDO ».
Il s'agit du classique patron Adaptateur : une entité JPA ne peut pas implémenter directement une interface de reporting (elles vivent dans des modules séparés avec des graphes de dépendances différents), donc un wrapper délègue tous les appels au DO. Avec 143 lignes, c'est le plus grand wrapper Impl du package de reporting.
Dans son constructeur, il accepte un BuchungssatzDO, extrait les objets associés (Konto, GegenKonto, Kost1, Kost2), et encapsule chacun dans sa classe Impl correspondante : KontoImpl (#795), Kost1Impl, Kost2Impl. Tous les champs sont mis en cache comme final — créés une seule fois lors de la construction et jamais recalculés.
BuchungssatzDO implements Buchungssatz ?L'entité JPA vit dans le module projectforge-business, tandis que l'interface de reporting est consommée par le module de reporting financier. Une dépendance directe créerait une dépendance circulaire. L'adaptateur résout ce problème : le DO ne sait rien du reporting, et le reporting obtient les données via le wrapper. De plus, l'Impl peut transformer les données (par ex. getFormattedMonth() appelant StringHelper.format2DigitNumber()) sans polluer le DO avec une logique de formatage spécifique au reporting.
Chaque getter délègue simplement au BuchungssatzDO sous-jacent :
| Méthode | Retourne | Source |
|---|---|---|
getId() | Long | Délégation directe |
getBeleg() | Numéro de document | Délégation directe |
getBetrag() | BigDecimal montant | Délégation directe |
getComment() | Chaîne | Délégation directe |
getDatum() | LocalDate | Délégation directe |
getGegenKonto() | Konto | Proxy Impl mis en cache |
getKonto() | Konto | Proxy Impl mis en cache |
getKost1() | Kost1 | Proxy Impl mis en cache |
getKost2() | Kost2 | Proxy Impl mis en cache |
getMenge() | Chaîne de quantité | Délégation directe |
getMonth() | Integer | Délégation directe |
getFormattedMonth() | Chaîne à 2 chiffres | Formaté via StringHelper |
getSatznr() | Integer | Délégation directe |
getSh() | SHType (débit/crédit) | Délégation directe |
getText() | Chaîne | Délégation directe |
getYear() | Integer | Délégation directe |
L'ID a été migré de Integer vers Long dans le commit 4c04cfd65. Les champs de date utilisent java.time.LocalDate (migré depuis java.util.Date dans 78b436d9e).
868d6abb7 2025 -> 2026 63081666f En-têtes des fichiers source : 2024 -> 2025. 4c04cfd65 CHANGEMENT-MAJEUR ! Migration des identifiants integer vers Long (y compris clés étrangères, etc.) b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. 5f7ef41b8 Copyright 2021 -> 2022 ceb63e8a1 En-tête du code source : (C) 2001-2021. a6a7aece4 Optimiser les imports 78b436d9e Remplacer les instances de java.util.date et java.sql.Date par java.time.LocalDate 7c79f1922 Copyright de l'en-tête source -> 2020.