Skip to content
Snippets Groups Projects
Commit 8b934d58 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3260 remove unused mapper;

parent 3cc8f05a
No related branches found
No related tags found
No related merge requests found
package de.itvsh.kop.eingangsadapter.semantik; package de.itvsh.kop.eingangsadapter.common.formdata;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
import lombok.NonNull; import lombok.NonNull;
public class FormDataUtils { public class FormDataUtils {
......
...@@ -35,7 +35,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; ...@@ -35,7 +35,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import de.itvsh.kop.common.errorhandling.TechnicalException; import de.itvsh.kop.common.errorhandling.TechnicalException;
import de.itvsh.kop.eingangsadapter.common.formdata.FormData; import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
import de.itvsh.kop.eingangsadapter.semantik.FormDataUtils; import de.itvsh.kop.eingangsadapter.common.formdata.FormDataUtils;
import de.itvsh.kop.eingangsadapter.semantik.enginebased.AbstractFileMapper; import de.itvsh.kop.eingangsadapter.semantik.enginebased.AbstractFileMapper;
@Component @Component
......
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.itvsh.kop.eingangsadapter.intelliform;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import org.springframework.stereotype.Component;
import de.itvsh.kop.eingangsadapter.common.formdata.Antragsteller;
import de.itvsh.kop.eingangsadapter.common.formdata.Antragsteller.AntragstellerBuilder;
@Component
class AntragstellerMapper {
static final String XML_ANTRAGSTELLER = "antragsteller";
static final String XML_MAPPING_ANREDE = "b_anrede";
static final String XML_MAPPING_VORNAME = "pers_vorname";
static final String XML_MAPPING_NACHNAME = "pers_nachname";
static final String XML_MAPPING_GEBURTSNAME = "pers_geburtsname";
static final String XML_MAPPING_GEBURTSDATUM = "pers_geburtsdatum";
static final String XML_MAPPING_GEBURTSORT = "pers_geburtsort";
static final String XML_MAPPING_EMAIL = "kont_email";
static final String XML_MAPPING_TELEFON = "kont_telefonnummer";
static final String XML_MAPPING_STRASSE = "sh_strasse";
static final String XML_MAPPING_HAUSNUMMER = "sh_hausnummer";
static final String XML_MAPPING_PLZ = "sh_plz";
static final String XML_MAPPING_ORT = "ort";
static final String XML_MAPPING_POSTFACH_ID = "nameid";
private static final Set<String> XML_MAPPINGS = new HashSet<>(List.of(
XML_MAPPING_ANREDE,
XML_MAPPING_VORNAME,
XML_MAPPING_NACHNAME,
XML_MAPPING_GEBURTSNAME,
XML_MAPPING_GEBURTSDATUM,
XML_MAPPING_GEBURTSORT,
XML_MAPPING_EMAIL,
XML_MAPPING_TELEFON,
XML_MAPPING_STRASSE,
XML_MAPPING_HAUSNUMMER,
XML_MAPPING_PLZ,
XML_MAPPING_ORT,
XML_MAPPING_POSTFACH_ID));
public Antragsteller mapToAntragsteller(Map<String, Object> formDataMap) {
var builder = Antragsteller.builder().postfachId(getPostfachId(formDataMap));
var filledBuilder = getAntragstellerMap(formDataMap)
.map(antragstellerMap -> addAntragstellerData(builder, antragstellerMap))
.orElse(builder);
removeMappedData(formDataMap);
return filledBuilder.build();
}
private String getPostfachId(Map<String, Object> formDataMap) {
return (String) formDataMap.get(XML_MAPPING_POSTFACH_ID);
}
@SuppressWarnings("unchecked")
private Optional<Map<String, Object>> getAntragstellerMap(Map<String, Object> formDataMap) {
return Optional.ofNullable(formDataMap.get(XML_ANTRAGSTELLER)).map(Map.class::cast).map(HashMap::new);
}
private AntragstellerBuilder addAntragstellerData(AntragstellerBuilder builder, Map<String, Object> antragstellerMap) {
return builder //
.anrede((String) antragstellerMap.get(XML_MAPPING_ANREDE)) //
.vorname((String) antragstellerMap.get(XML_MAPPING_VORNAME)) //
.nachname((String) antragstellerMap.get(XML_MAPPING_NACHNAME)) //
.geburtsname((String) antragstellerMap.get(XML_MAPPING_GEBURTSNAME)) //
.geburtsdatum((String) antragstellerMap.get(XML_MAPPING_GEBURTSDATUM)) //
.geburtsort((String) antragstellerMap.get(XML_MAPPING_GEBURTSORT)) //
.email((String) antragstellerMap.get(XML_MAPPING_EMAIL)) //
.telefon((String) antragstellerMap.get(XML_MAPPING_TELEFON)) //
.strasse((String) antragstellerMap.get(XML_MAPPING_STRASSE)) //
.hausnummer((String) antragstellerMap.get(XML_MAPPING_HAUSNUMMER)) //
.plz((String) antragstellerMap.get(XML_MAPPING_PLZ)) //
.ort((String) antragstellerMap.get(XML_MAPPING_ORT)) //
.data(getNotMappedData(antragstellerMap));
}
private Map<String, Object> getNotMappedData(Map<String, Object> antragstellerMap) {
var tempMap = new HashMap<>(antragstellerMap);
XML_MAPPINGS.forEach(tempMap::remove);
return tempMap;
}
private void removeMappedData(Map<String, Object> formDataMap) {
formDataMap.remove(XML_ANTRAGSTELLER);
formDataMap.remove(XML_MAPPING_POSTFACH_ID);
}
}
\ No newline at end of file
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.itvsh.kop.eingangsadapter.intelliform;
import static org.assertj.core.api.Assertions.*;
import java.util.HashMap;
import java.util.Map;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
class AntragstellerMapperTest {
private final static AntragstellerMapper mapper = new AntragstellerMapper();
@Nested
class TestMapToAntragsteller {
@Test
void shouldMapFields() {
var antragsteller = mapper.mapToAntragsteller(createDataMap());
assertThat(antragsteller).usingRecursiveComparison().ignoringFields("data").isEqualTo(AntragstellerTestFactory.create());
}
@Test
void shouldMapPostfachId() {
var antragsteller = mapper.mapToAntragsteller(createDataMap());
assertThat(antragsteller.getPostfachId()).isEqualTo(AntragstellerTestFactory.POSTFACH_ID);
}
@Nested
class TestOtherData {
private final String NOT_MAPPED_FIELD_KEY = "NotMappedField";
@Test
void shouldNotContainDuplicateValues() {
var antragsteller = mapper.mapToAntragsteller(createDataMap());
assertThat(antragsteller.getData()).doesNotContainKeys(
AntragstellerMapper.XML_MAPPING_ANREDE,
AntragstellerMapper.XML_MAPPING_EMAIL,
AntragstellerMapper.XML_MAPPING_GEBURTSDATUM,
AntragstellerMapper.XML_MAPPING_GEBURTSNAME,
AntragstellerMapper.XML_MAPPING_GEBURTSORT,
AntragstellerMapper.XML_MAPPING_NACHNAME,
AntragstellerMapper.XML_MAPPING_VORNAME,
AntragstellerMapper.XML_MAPPING_TELEFON,
AntragstellerMapper.XML_MAPPING_STRASSE,
AntragstellerMapper.XML_MAPPING_HAUSNUMMER,
AntragstellerMapper.XML_MAPPING_ORT,
AntragstellerMapper.XML_MAPPING_PLZ);
}
@Test
void shouldContainNotMappedData() {
var antragstellerMap = new HashMap<>(AntragstellerTestFactory.createAsMap());
antragstellerMap.put(NOT_MAPPED_FIELD_KEY, "Value!");
var antragsteller = mapper.mapToAntragsteller(createDataMap(antragstellerMap));
assertThat(antragsteller.getData()).containsKey(NOT_MAPPED_FIELD_KEY);
}
}
private Map<String, Object> createDataMap() {
return createDataMap(AntragstellerTestFactory.createAsMap());
}
private Map<String, Object> createDataMap(Map<String, Object> antragstellerMap) {
Map<String, Object> dataMap = new HashMap<>();
dataMap.put(AntragstellerMapper.XML_ANTRAGSTELLER, antragstellerMap);
dataMap.put(AntragstellerMapper.XML_MAPPING_POSTFACH_ID, AntragstellerTestFactory.POSTFACH_ID);
return dataMap;
}
}
}
\ No newline at end of file
/*
* Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
* Ministerpräsidenten des Landes Schleswig-Holstein
* Staatskanzlei
* Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
*
* Lizenziert unter der EUPL, Version 1.2 oder - sobald
* diese von der Europäischen Kommission genehmigt wurden -
* Folgeversionen der EUPL ("Lizenz");
* Sie dürfen dieses Werk ausschließlich gemäß
* dieser Lizenz nutzen.
* Eine Kopie der Lizenz finden Sie hier:
*
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
*
* Sofern nicht durch anwendbare Rechtsvorschriften
* gefordert oder in schriftlicher Form vereinbart, wird
* die unter der Lizenz verbreitete Software "so wie sie
* ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
* ausdrücklich oder stillschweigend - verbreitet.
* Die sprachspezifischen Genehmigungen und Beschränkungen
* unter der Lizenz sind dem Lizenztext zu entnehmen.
*/
package de.itvsh.kop.eingangsadapter.intelliform;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import de.itvsh.kop.eingangsadapter.common.formdata.Antragsteller;
public class AntragstellerTestFactory {
static final String ANREDE = "Herr";
static final String VORNAME = "Max";
static final String NACHNAME = "Mustermann";
static final String GEBURTSNAME = "Maxi";
static final String GEBURTSDATUM = "01.01.1970";
static final String GEBURTSORT = "Sandhausen";
static final String EMAIL = "alsob@ne.ver";
static final String TELEFON = "+ 49 4621 9654";
static final String STRASSE = "Lachstrasse";
static final String HAUSNUMMER = "8484";
static final String PLZ = "12345";
static final String ORT = "Wohlfuehlhausen";
static final String POSTFACH_ID = UUID.randomUUID().toString();
public static Antragsteller create() {
return createBuilder().build();
}
public static Antragsteller.AntragstellerBuilder createBuilder() {
return Antragsteller.builder()
.anrede(ANREDE)
.vorname(VORNAME)
.nachname(NACHNAME)
.geburtsname(GEBURTSNAME)
.geburtsdatum(GEBURTSDATUM)
.geburtsort(GEBURTSORT)
.email(EMAIL)
.telefon(TELEFON)
.strasse(STRASSE)
.hausnummer(HAUSNUMMER)
.plz(PLZ)
.ort(ORT)
.postfachId(POSTFACH_ID);
}
public static Map<String, Object> createAsMap() {
var map = new HashMap<String, Object>();
map.put(AntragstellerMapper.XML_MAPPING_ANREDE, ANREDE);
map.put(AntragstellerMapper.XML_MAPPING_VORNAME, VORNAME);
map.put(AntragstellerMapper.XML_MAPPING_NACHNAME, NACHNAME);
map.put(AntragstellerMapper.XML_MAPPING_GEBURTSNAME, GEBURTSNAME);
map.put(AntragstellerMapper.XML_MAPPING_GEBURTSDATUM, GEBURTSDATUM);
map.put(AntragstellerMapper.XML_MAPPING_GEBURTSORT, GEBURTSORT);
map.put(AntragstellerMapper.XML_MAPPING_EMAIL, EMAIL);
map.put(AntragstellerMapper.XML_MAPPING_TELEFON, TELEFON);
map.put(AntragstellerMapper.XML_MAPPING_STRASSE, STRASSE);
map.put(AntragstellerMapper.XML_MAPPING_HAUSNUMMER, HAUSNUMMER);
map.put(AntragstellerMapper.XML_MAPPING_PLZ, PLZ);
map.put(AntragstellerMapper.XML_MAPPING_ORT, ORT);
return map;
}
}
\ No newline at end of file
...@@ -28,9 +28,9 @@ import java.util.Map; ...@@ -28,9 +28,9 @@ import java.util.Map;
import java.util.Optional; import java.util.Optional;
import de.itvsh.kop.eingangsadapter.common.formdata.FormData; import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
import de.itvsh.kop.eingangsadapter.common.formdata.FormDataUtils;
import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile; import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFile;
import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileGroup; import de.itvsh.kop.eingangsadapter.common.formdata.IncomingFileGroup;
import de.itvsh.kop.eingangsadapter.semantik.FormDataUtils;
//TODO Vererbung ausbauen und durch Utils ersetzen //TODO Vererbung ausbauen und durch Utils ersetzen
public abstract class AbstractFileMapper implements EngineBasedMapper { public abstract class AbstractFileMapper implements EngineBasedMapper {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment