Projekte

ios-basis-extapimapper 2

Die Mapper dieses Schnittstellenmodells sind kompatibel zum neuen Schnittstellenmodell des Versicherungsmodells. Weitere Informationen hierzu befinden sich in der Dokumentation des F10-Versicherungsmodells
  • stellt Mapper und notwendige Utility-Klassen für die Konvertierung der Modellklassen aus dem Angebotsmodell in DTO-Darstellungen zur Verfügung

  • definiert Abhängigkeiten zu den entsprechenden Mappern aus dem Versicherungsmodell, um die Versicherung und ihre Komponenten mappen zu können

<dependency>
    <groupId>de.faktorzehn.versicherungsmodell</groupId>
    <artifactId>vm-basis-extapimapper2</artifactId>
</dependency>

Mapper-Klassen

Für folgende Modellklassen wurde ein Mapper implementiert:

Mapper Modellklasse

RollenToDtoMapper und RollenToDomainMapper

RolesAndPartner

VersicherungsnehmerToDtoMapper und VersicherungsnehmerToDomainMapper

Role mit der RoleKind POLICY_HOLDER

BeitragszahlerToDtoMapper und BeitragszahlerToDomainMapper

Role mit der RoleKind PREMIUM_PAYER

KorrespondenzempfaengerToDtoMapper und KorrespondenzempfaengerToDomainMapper

Role mit der RoleKind CORRESPONDENCE_RECIPIENT

SepaMandatToDtoMapper

SepaMandat

Mapper für ein erweitertes Angebotsmodell sollen nach Möglichkeit über Komposition statt Ableitung angebunden werden. Die neue Klasse enthält eine Instanz des Parent-Mappers, ruft eine eigene createDto()-Methode auf und ruft in der eigenen mapToDto()-Methode vor dem Mappen der neuen Attribute die mapToDto()-Methode des Parent-Mappers auf.

Partnerdaten

Die Verarbeitung der Partnerdaten erfolgt über die Mapper aus der Faktor-IBP-Schnittstelle.

Customizing

Um die Mapper anwenden zu können, muss ein ServiceMappingContext instanziiert und mitgegeben werden, der mehrere unterstützende Komponenten enthält. Im Standard sind folgende Eigenschaften definiert:

  • BiFunction<Versicherung, VersicherungMappingContext, VersicherungDto> : Das Mapping der Versicherung ist spartenspezifisch und sollte in einer Spartenableitung der jeweiligen Versicherungsmodell-Schnittstelle entnommen werden. Diese Komponente wird für jeden Service benötigt.

  • BiFunction<VorversicherungsInfo, VersicherungMappingContext, VorversicherungsInfoDto> : Das Mapping der Vorversicherungsinfo ist spartenspezifisch und sollte in einer Spartenableitung der jeweiligen Versicherungsmodell-Schnittstelle entnommen werden. Diese Komponente wird für Services benötigt, in denen Vorversicherungsinformationen teil der Ausgabe sind.

  • BiFunction<VersicherungDto, Versicherung> : Das Mapping des VersicherungDto’s ist spartenspezifisch und sollte in einer Spartenableitung der jeweiligen Versicherungsmodell-Schnittstelle entnommen werden. Diese Komponente wird für Services benötigt, in der gesamte Versicherungsdaten mitgegeben werden müssen (beipielsweise die Tarifierung).

  • BiFunction<VersicherungDto, VersicherungMappingContext, Versicherung> : Das Mapping des VersicherungsDto’s ist spartenspezifisch und sollte in einer Spartenableitung der jeweiligen Versicherungsmodell-Schnittstelle entnommen werden. Diese Komponente wird für Services benötigt, in der Versicherungsinformationen relevante Bestandteile sein können (z.B. Tarifierung eines Angebots).

  • BiFunction<VorversicherungsInfoDto, VersicherungMappingContext, VorversicherungsInfo> : Das Mapping des VorversicherungsinfoDto’s ist spartenspezifisch und sollte in einer Spartenableitung der jeweiligen Versicherungsmodell-Schnittstelle entnommen werden. Diese Komponente wird für Services benötigt, in der Vorversicherungsinformationen relevante Bestandteile sein können (z.B. Abschluss eines Angebots).

  • PartnerRepository : Schnittstelle zur Kommunikation mit einem externen Partnersystem. Diese Komponente wird für Services benötigt, in denen Partnerinformationen teil der Ein- oder Ausgabe sind und auf diese Partner über ein externes Partnersystem ermittelt werden.

  • IProductConfiguration: Zugang zur Produktkonfiguration, die bereits in der Superklasse MappingContext implementiert ist. Diese Komponente wird für Services benötigt, in denen produktkonfigurierte Enum-Werte ausgelesen werden müssen.

Der ServiceMappingContext enthält eine integrierte Builder-Klasse, mit der alle benötigten Komponenten durch Verkettung in einem Aufruf hinzugefügt werden können.

Angebotsauskunft

Für die Angebotsauskunft aus dem IOS-Core wurden erweiterte Mapper hinzugefügt:

IOS-Core IOS-Basis Anmerkung

OfferToDtoDetailsMapper

VbOfferToDtoDetailsMapper

Erzeugt die Basis-Ableitung des OfferDto und mappt zusätzlich das Sepa-Mandat. Die Vorversicherungsinfo wird nicht gemappt, da der konkrete Mapper erst spartenspezifisch bekannt ist. Dieses Mapping wird in einer Mapping-Konfiguration des Service-Layers verwaltet.

OfferVariantToDtoDetailsMapper

VbOfferVariantToDtoDetailsMapper

Erzeugt die Basis-Ableitung des OfferVariantDto, mappt aber keine weiteren Attribute. Die Versicherung wird nicht gemappt, da der konkrete Mapper erst spartenspezifisch bekannt ist. Dieses Mapping wird in einer Mapping-Konfiguration des Service-Layers verwaltet.

Mapper aus der Angebotsauskunft verwenden den OfferDetailsMappingContext. Um Zugriff auf den ServiceMappingContext zu haben, der für Mapper verwendet wird, die nicht spezifisch zur Angebotsauskunft gehören, kann sie mit OfferDetailsMappingContext.set(ServiceMappingContext.class.getName(), [Erzeugte Instanz]) gesetzt und darauf über OfferDetailsMappingContext.get(ServiceMappingContext.class.getName()) zugegriffen werden.

Weitere Informationen zu den Mappern der Core-Ebene befinden sich in der IOS-Core Dokumentation.