<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.faktorzehn.ios</groupId>
<artifactId>ios-expert-unfall</artifactId>
<version>25.7.0-SNAPSHOT</version>
</parent>
<artifactId>ios-expert-unfall-extapi</artifactId>
<name>Faktor-IOS-Expert Unfall-ExtApi</name>
<packaging>jar</packaging>
<properties>
<checkstyle.header.file>${project.basedir}/../../checkstyle.java.header</checkstyle.header.file>
</properties>
<dependencies>
<dependency>
<groupId>de.faktorzehn.muster.shu-privat</groupId>
<artifactId>vm-unfall-extapi</artifactId>
</dependency>
<dependency>
<groupId>de.faktorzehn.systems</groupId>
<artifactId>ios-basis-extapi2</artifactId>
</dependency>
</dependencies>
</project>
Sparte anlegen
Modul Extservices
Modul Extservices anlegen
Für externe Services bietet sich an, für die Servicelogik und das Schnittstellenmodell jeweils ein eigenes Modul anzulegen, damit Umsysteme nur das Schnittstellenmodul einbinden müssen.
ExtApi:
Extservices:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>de.faktorzehn.ios</groupId>
<artifactId>ios-expert-unfall</artifactId>
<version>25.7.0-SNAPSHOT</version>
</parent>
<artifactId>ios-expert-unfall-extservices</artifactId>
<name>Faktor-IOS-Expert Unfall-Extservices</name>
<packaging>jar</packaging>
<properties>
<checkstyle.header.file>${project.basedir}/../../checkstyle.java.header</checkstyle.header.file>
</properties>
<dependencies>
<dependency>
<groupId>de.faktorzehn.ios</groupId>
<artifactId>ios-expert-unfall-business</artifactId>
</dependency>
<dependency>
<groupId>de.faktorzehn.ios</groupId>
<artifactId>ios-expert-unfall-extapi</artifactId>
</dependency>
<dependency>
<groupId>de.faktorzehn.systems</groupId>
<artifactId>ios-basis-extservices2</artifactId>
</dependency>
</dependencies>
</project>
Sparte konfigurieren
Der Standard stellt eine Angebotsauskunft bereit, welche für jede Sparte einfach erweitert werden kann, um das spartenspezifische Schnittstellenmodell der Versicherungsmodells einzubinden.
UvExtServiceLobConfig
Die Klasse UvExtServiceLobConfig
ist das Gegenstück zu UvLobConfig
auf der externen Service Layer und bindet die spartenspezifische Mapping-Configuration für die ANgebotsauskunft an.
@Component
public class UvExtServiceLobConfig extends VbExtServiceLobConfig {
private final UvLobConfig lobConfig;
public HrExtServiceLobConfig(UvLobConfig lobConfig) {
this.lobConfig = lobConfig;
}
@Override
public UvExtServiceMappingConfig getMappingConfig() {
return new HrExtServiceMappingConfig(lobConfig);
}
@Override
public UvLobConfig getLobConfig() {
return lobConfig;
}
}
In der Klasse UvExtServiceMappingConfig
werden die Methoden mapVersicherung()
und mapVorversicherungsInfo()
überschrieben, um die spartenspezifischen Mapper einzubinden.
/**
* Unfallspezifische Implementierung, die zusätzlich den Versicherungsmapper für {@link UvVertrag
* UvVertraege} und den Vorversicherungsinfomapper mit {@link UvVorversicherung UvVorversicherungen} und {@link UvVorschaden UvVorschaeden} einbindet.
*/
public class UvExtServiceMappingConfig extends VbExtServiceMappingConfig {
public UvExtServiceMappingConfig(UvLobConfig lobConfig) {
super(lobConfig);
}
@Override
protected void mapVersicherung(Versicherung versicherung,
VbOfferVariantDto varianteDto,
OfferDetailsMappingContext mappingContext) {
varianteDto.setVersicherung(new UvVersicherungToDtoMapper()
.createDto((ShuErwVersicherung)versicherung),
createVersicherungMappingContext());
}
@Override
protected void mapVorversicherungsInfo(VorversicherungsInfo vorversicherungsInfo,
VbOfferDto angebotDto,
OfferDetailsMappingContext mappingContext) {
angebotDto.setVorversicherungsInfo(new UvVorversicherungsInfoToDtoMapper()
.createDto(vorversicherungsInfo, createVersicherungMappingContext()));
}
private VersicherungMappingContext createVersicherungMappingContext() {
return new DefaultVersicherungMappingContext(getLobConfig().getProductConfiguration().getRepository(),
getLobConfig().getVersicherungOperations());
}
@Override
protected UvLobConfig getLobConfig() {
return (UvLobConfig)super.getLobConfig();
}
}