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:

<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>

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();
    }

}