From 6c9b9103c263488aecbf8a6f076edc57759e41ef Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Tue, 31 Mar 2026 17:08:31 +0200 Subject: [PATCH 1/4] AER-4271 Added support for using max speed with NON_URBAN ROADS With new road emissions for NON_URBAN_ROAD speed will be relevant. Therefore speed will be read. Because with new data speed determines the emission and not only the road type code, the road type code has been generalized to NON_URBAN_ROAD in the GML. The road type code NON_URBAN_ROAD_NATIONAL and NON_URBAN_ROAD_GENERAL could be used on both SRM1 and SRM2 soruces. But these with the new data they become explicitly for use with a specific SRM version. NON_URBAN_ROAD_NATIONAL is for SRM2 roads, and NON_URBAN_ROAD_GENERAL for SRM1 roads. This was somewhat implicit, as in Calculator UI only NON_URBAN_ROAD_NATIONAL was used, and only SRM2 can be modified in Calculator. But it would be possible to manually use NON_URBAN_ROAD_GENERAL in an SRM2 source. Both NON_URBAN_ROAD_NATIONAL and NON_URBAN_ROAD_GENERAL are still supported to be used in GML, also for backward compatibility. --- .../gml/base/source/road/GML2ADMSRoad.java | 5 + .../aerius/gml/base/source/road/GML2Road.java | 56 +++- .../gml/base/source/road/GML2SRM1Road.java | 12 + .../gml/base/source/road/GML2SRM2Road.java | 12 + .../base/source/road/v10/GML2SRM2RoadV10.java | 6 +- .../base/source/road/v40/GML2SRM1Road.java | 11 + .../base/source/road/v40/GML2SRM2Road.java | 11 + .../gml/base/source/road/v40/GML2SRMRoad.java | 23 +- .../aerius/gml/v6_0/togml/Road2GML.java | 63 ++-- .../road_non_urban_national_v6_0.gml | 85 ++++++ .../gml/v1_1/roundtrip/road_empty.gml | 4 +- .../gml/v2_0/roundtrip/road_empty.gml | 4 +- .../gml/v2_1/roundtrip/road_empty.gml | 4 +- .../gml/v2_2/roundtrip/road_empty.gml | 4 +- .../gml/v3_0/roundtrip/road_empty.gml | 4 +- .../gml/v3_1/roundtrip/road_empty.gml | 4 +- .../gml/v4_0/roundtrip/road_empty.gml | 4 +- .../gml/v6_0/roundtrip/road_empty.gml | 4 +- .../gml/v6_0/roundtrip/road_non_urban.gml | 3 +- .../roundtrip/road_non_urban_national.gml | 85 ++++++ .../scenario_composting_proposed.gml | 59 ++-- .../scenario_composting_reference.gml | 59 ++-- .../scenario_greenhouse_proposed.gml | 2 +- .../scenario_greenhouse_reference.gml | 4 +- .../scenario_livestock_farming_proposed.gml | 2 +- .../scenario_livestock_farming_reference.gml | 2 +- .../v6_0/roundtrip/scenario_powerplant.gml | 6 +- .../scenario_traffic_network_proposed.gml | 268 +++++++++--------- .../scenario_traffic_network_reference.gml | 248 ++++++++-------- .../domain/v2/source/road/RoadSpeedType.java | 2 +- 30 files changed, 689 insertions(+), 367 deletions(-) create mode 100644 source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml create mode 100644 source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java index 2903c4f9..3f3d0950 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java @@ -46,6 +46,11 @@ protected ADMSRoadEmissionSource construct() { return new ADMSRoadEmissionSource(); } + @Override + protected String convertRoadTypeCode(final String roadTypeCode) { + return roadTypeCode; + } + @Override protected void setSpecificVariables(final T source, final ADMSRoadEmissionSource emissionSource) { emissionSource.setWidth(source.getWidth()); diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java index 428da2ec..a2b589a1 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java @@ -48,13 +48,15 @@ protected GML2Road(final GMLConversionData conversionData) { public S convert(final T source) throws AeriusException { final S emissionSource = construct(); final List mergingStandardVehicles = new ArrayList<>(); + final String roadTypeCode = convertRoadTypeCode(source.getRoadTypeCode()); + for (final IsGmlProperty vp : source.getVehicles()) { - addVehicleEmissions(emissionSource.getSubSources(), source, vp, mergingStandardVehicles); + addVehicleEmissions(source.getRoadTypeCode(), emissionSource.getSubSources(), source, vp, mergingStandardVehicles); } emissionSource.setTrafficDirection(source.getTrafficDirection()); emissionSource.setRoadManager(source.getRoadManager()); emissionSource.setRoadAreaCode(source.getRoadAreaCode()); - emissionSource.setRoadTypeCode(source.getRoadTypeCode()); + emissionSource.setRoadTypeCode(roadTypeCode); setSpecificVariables(source, emissionSource); @@ -65,29 +67,39 @@ public S convert(final T source) throws AeriusException { protected abstract S construct(); + /** + * Returns the internal representative road type code given the road type in the GML. + * + * @param roadTypeCode road type in the GML + * @return internally to be used road type code + */ + protected abstract String convertRoadTypeCode(String roadTypeCode); + protected abstract void setSpecificVariables(T source, S emissionSource); protected abstract void setOptionalVariables(T source, S emissionSource) throws AeriusException; - protected void addVehicleEmissions(final List addToVehicles, final T source, final IsGmlProperty vp, + protected void addVehicleEmissions(final String gmlRoadTypeCode, final List addToVehicles, final T source, + final IsGmlProperty vp, final List mergingStandardVehicles) { final IsGmlVehicle av = vp.getProperty(); - if (av instanceof final IsGmlStandardVehicle standardVehicle) { - addEmissionValues(addToVehicles, source, standardVehicle, mergingStandardVehicles); - } else if (av instanceof final IsGmlSpecificVehicle specificVehicle) { + + switch (av) { + case final IsGmlStandardVehicle standardVehicle -> + addEmissionValues(gmlRoadTypeCode, addToVehicles, source, standardVehicle, mergingStandardVehicles); + case final IsGmlSpecificVehicle specificVehicle -> addToVehicles.add(GML2VehicleUtil.convertEmissionValuesSpecific(source, specificVehicle, getConversionData())); - } else if (av instanceof final IsGmlCustomVehicle customVehicle) { - addToVehicles.add(GML2VehicleUtil.convertEmissionValuesCustom(customVehicle)); - } else { - throw new IllegalArgumentException("Instance not supported:" + av.getClass().getCanonicalName()); + case final IsGmlCustomVehicle customVehicle -> addToVehicles.add(GML2VehicleUtil.convertEmissionValuesCustom(customVehicle)); + default -> throw new IllegalArgumentException("Instance not supported:" + av.getClass().getCanonicalName()); } } - private void addEmissionValues(final List addToVehicles, final T source, final IsGmlStandardVehicle sv, + private void addEmissionValues(final String gmlRoadTypeCode, final List addToVehicles, final T source, final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { final StandardVehicles standardVehicle = findExistingMatch(sv, mergingStandardVehicles).orElseGet(() -> { final StandardVehicles vse = new StandardVehicles(); - vse.setMaximumSpeed(sv.getMaximumSpeed()); + + vse.setMaximumSpeed(getMaximumSpeed(gmlRoadTypeCode, sv.getMaximumSpeed())); vse.setStrictEnforcement(sv.isStrictEnforcement()); vse.setTimeUnit(TimeUnit.valueOf(sv.getTimeUnit().name())); mergingStandardVehicles.add(vse); @@ -100,6 +112,26 @@ private void addEmissionValues(final List addToVehicles, final T sourc standardVehicle.getValuesPerVehicleTypes().put(sv.getVehicleType(), valuesPerVehicleType); } + /** + * Get the maximum speed value. For NON_URBAN_ROAD_NATIONAL and NON_URBAN_ROAD_GENERAL fill in the speed in case of missing speed. + * These two codes are used in older versions of IMAER. In those cases speed was not set for NON_URBAN_ROAD. NATIONAL is representative for roads + * with speed >= 80 km/h. Therefore 80 is set. GENERAL represented roads with average speed of 60 km/h. Therefore 60 is set. + * + * @param gmlRoadTypeCode the road type code as set in the GML + * @param maximumSpeed optional max speed set in the GML + * @return the maximum speed to use. + */ + private static Integer getMaximumSpeed(final String gmlRoadTypeCode, final Integer maximumSpeed) { + if (maximumSpeed != null && maximumSpeed != 0) { + return maximumSpeed; + } + return switch (gmlRoadTypeCode) { + case "NON_URBAN_ROAD_NATIONAL" -> Integer.valueOf(80); + case "NON_URBAN_ROAD_GENERAL" -> Integer.valueOf(60); + default -> maximumSpeed; + }; + } + private Optional findExistingMatch(final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { return mergingStandardVehicles.stream() .filter(x -> Objects.equals(x.getMaximumSpeed(), sv.getMaximumSpeed())) diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java index 7259abbb..0bb42fbb 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java @@ -22,6 +22,7 @@ import nl.overheid.aerius.gml.base.GMLConversionData; import nl.overheid.aerius.gml.base.IsGmlProperty; import nl.overheid.aerius.shared.domain.v2.source.SRM1RoadEmissionSource; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM1LinearReference; import nl.overheid.aerius.shared.exception.AeriusException; import nl.overheid.aerius.shared.exception.ImaerExceptionReason; @@ -44,6 +45,17 @@ protected SRM1RoadEmissionSource construct() { return new SRM1RoadEmissionSource(); } + /** + * Returns the converted road type code set in the GML to the internal road type to use. + * In case of SRM1 roads and NON_URBAN_ROADS. It should always use NON_URBAN_ROAD_GENERAL. + */ + @Override + protected String convertRoadTypeCode(final String roadTypeCode) { + return roadTypeCode != null && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) + ? "NON_URBAN_ROAD_GENERAL" + : roadTypeCode; + } + @Override protected void setSpecificVariables(final IsGmlSRM1Road source, final SRM1RoadEmissionSource emissionSource) { // NO-OP for SRM1 diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java index 1cb37a65..ead318f8 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java @@ -22,6 +22,7 @@ import nl.overheid.aerius.gml.base.GMLConversionData; import nl.overheid.aerius.gml.base.IsGmlProperty; import nl.overheid.aerius.shared.domain.v2.source.SRM2RoadEmissionSource; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2RoadSideBarrier; import nl.overheid.aerius.shared.exception.AeriusException; @@ -45,6 +46,17 @@ protected SRM2RoadEmissionSource construct() { return new SRM2RoadEmissionSource(); } + /** + * Returns the converted road type code set in the GML to the internal road type to use. + * In case of SRM2 roads and NON_URBAN_ROADS. It should always use NON_URBAN_ROAD_NATIONAL. + */ + @Override + protected String convertRoadTypeCode(final String roadTypeCode) { + return roadTypeCode != null && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) + ? "NON_URBAN_ROAD_NATIONAL" + : roadTypeCode; + } + @Override protected void setSpecificVariables(final T source, final SRM2RoadEmissionSource emissionSource) { // NO-OP diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v10/GML2SRM2RoadV10.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v10/GML2SRM2RoadV10.java index 754642fc..683e5d5b 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v10/GML2SRM2RoadV10.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v10/GML2SRM2RoadV10.java @@ -23,6 +23,7 @@ import nl.overheid.aerius.gml.base.source.road.v11.GML2SRM2RoadV11; import nl.overheid.aerius.gml.base.source.road.v40.IsGmlStandardVehicle; import nl.overheid.aerius.shared.domain.v2.base.TimeUnit; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.StandardVehicles; import nl.overheid.aerius.shared.domain.v2.source.road.ValuesPerVehicleType; import nl.overheid.aerius.shared.domain.v2.source.road.Vehicles; @@ -42,11 +43,12 @@ public GML2SRM2RoadV10(final GMLConversionData conversionData) { } @Override - protected void addEmissionValues(final List addToVehicles, final T source, final IsGmlStandardVehicle sv, + protected void addEmissionValues(final RoadType roadType, final List addToVehicles, final T source, final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { final StandardVehicles standardVehicle = findExistingMatch(sv, mergingStandardVehicles).orElseGet(() -> { final StandardVehicles vse = new StandardVehicles(); - vse.setMaximumSpeed(source.getMaximumSpeed()); + + vse.setMaximumSpeed(getMaximumSpeed(roadType, source.getMaximumSpeed())); vse.setStrictEnforcement(source.isStrictEnforcement()); vse.setTimeUnit(TimeUnit.valueOf(sv.getTimeUnit().name())); mergingStandardVehicles.add(vse); diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java index 1486428c..c15f4473 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java @@ -22,6 +22,7 @@ import nl.overheid.aerius.gml.base.GMLConversionData; import nl.overheid.aerius.gml.base.IsGmlProperty; import nl.overheid.aerius.shared.domain.v2.source.SRM1RoadEmissionSource; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM1LinearReference; import nl.overheid.aerius.shared.exception.AeriusException; import nl.overheid.aerius.shared.exception.ImaerExceptionReason; @@ -44,6 +45,16 @@ protected SRM1RoadEmissionSource construct() { return new SRM1RoadEmissionSource(); } + @Override + protected String convertRoadTypeCode(final RoadType roadType) { + return roadType == RoadType.NON_URBAN_ROAD ? "NON_URBAN_ROAD_GENERAL" : roadType.getRoadTypeCode(); + } + + @Override + protected Integer getMaximumSpeed(final RoadType roadType, final Integer maximumSpeed) { + return (maximumSpeed == null || maximumSpeed == 0) && roadType == RoadType.NON_URBAN_ROAD ? Integer.valueOf(60) : maximumSpeed; + } + @Override protected void setSpecificVariables(final IsGmlSRM1Road source, final SRM1RoadEmissionSource emissionSource) { // Overwrite the road type based on sector with the one based on speed profile diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java index c383b196..ed404ebe 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java @@ -24,6 +24,7 @@ import nl.overheid.aerius.gml.base.source.road.IsGmlRoadSideBarrier; import nl.overheid.aerius.gml.base.source.road.IsGmlSRM2RoadLinearReference; import nl.overheid.aerius.shared.domain.v2.source.SRM2RoadEmissionSource; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2RoadSideBarrier; import nl.overheid.aerius.shared.exception.AeriusException; @@ -47,6 +48,16 @@ protected SRM2RoadEmissionSource construct() { return new SRM2RoadEmissionSource(); } + @Override + protected String convertRoadTypeCode(final RoadType roadType) { + return roadType == null ? null : roadType.getRoadTypeCode(); + } + + @Override + protected Integer getMaximumSpeed(final RoadType roadType, final Integer maximumSpeed) { + return (maximumSpeed == null || maximumSpeed == 0) && roadType == RoadType.NON_URBAN_ROAD ? Integer.valueOf(80) : maximumSpeed; + } + @Override protected void setSpecificVariables(final T source, final SRM2RoadEmissionSource emissionSource) { // NO-OP diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java index 7926603e..bdb2a5e7 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java @@ -57,15 +57,16 @@ protected GML2SRMRoad(final GMLConversionData conversionData) { public S convert(final T source) throws AeriusException { final S emissionSource = construct(); final List mergingStandardVehicles = new ArrayList<>(); + final RoadType roadType = RoadType.valueFromSectorId(source.getSectorId()); + + emissionSource.setRoadTypeCode(convertRoadTypeCode(roadType)); for (final IsGmlProperty vp : source.getVehicles()) { - addVehicleEmissions(emissionSource.getSubSources(), source, vp, mergingStandardVehicles); + addVehicleEmissions(roadType, emissionSource.getSubSources(), source, vp, mergingStandardVehicles); } emissionSource.setTrafficDirection(source.getTrafficDirection()); emissionSource.setRoadManager(source.getRoadManager()); emissionSource.setRoadAreaCode("NL"); // Ensure road type get set before specific, as it's overwritten by SRM1 - final RoadType roadType = RoadType.valueFromSectorId(source.getSectorId()); - emissionSource.setRoadTypeCode(roadType == null ? null : roadType.getRoadTypeCode()); setSpecificVariables(source, emissionSource); @@ -76,15 +77,19 @@ public S convert(final T source) throws AeriusException { protected abstract S construct(); + protected abstract String convertRoadTypeCode(RoadType roadType); + + protected abstract Integer getMaximumSpeed(final RoadType roadType, final Integer maximumSpeed); + protected abstract void setSpecificVariables(T source, S emissionSource); protected abstract void setOptionalVariables(T source, S emissionSource) throws AeriusException; - protected void addVehicleEmissions(final List addToVehicles, final T source, final IsGmlProperty vp, - final List mergingStandardVehicles) { + protected void addVehicleEmissions(final RoadType roadType, final List addToVehicles, final T source, + final IsGmlProperty vp, final List mergingStandardVehicles) { final IsGmlVehicle av = vp.getProperty(); if (av instanceof IsGmlStandardVehicle) { - addEmissionValues(addToVehicles, source, (IsGmlStandardVehicle) av, mergingStandardVehicles); + addEmissionValues(roadType, addToVehicles, source, (IsGmlStandardVehicle) av, mergingStandardVehicles); } else if (av instanceof IsGmlSpecificVehicle) { addEmissionValues(addToVehicles, source, (IsGmlSpecificVehicle) av); } else if (av instanceof IsGmlCustomVehicle) { @@ -95,11 +100,12 @@ protected void addVehicleEmissions(final List addToVehicles, final T s } - protected void addEmissionValues(final List addToVehicles, final T source, final IsGmlStandardVehicle sv, + protected void addEmissionValues(final RoadType roadType, final List addToVehicles, final T source, final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { final StandardVehicles standardVehicle = findExistingMatch(sv, mergingStandardVehicles).orElseGet(() -> { final StandardVehicles vse = new StandardVehicles(); - vse.setMaximumSpeed(sv.getMaximumSpeed()); + + vse.setMaximumSpeed(getMaximumSpeed(roadType, sv.getMaximumSpeed())); vse.setStrictEnforcement(sv.isStrictEnforcement()); vse.setTimeUnit(TimeUnit.valueOf(sv.getTimeUnit().name())); mergingStandardVehicles.add(vse); @@ -112,6 +118,7 @@ protected void addEmissionValues(final List addToVehicles, final T sou standardVehicle.getValuesPerVehicleTypes().put(sv.getVehicleType().getStandardVehicleCode(), valuesPerVehicleType); } + protected Optional findExistingMatch(final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { return mergingStandardVehicles.stream() .filter(x -> Objects.equals(x.getMaximumSpeed(), sv.getMaximumSpeed())) diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java index 90000bb2..bfea6111 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import nl.overheid.aerius.gml.v6_0.source.TimeUnit; @@ -45,6 +46,7 @@ import nl.overheid.aerius.shared.domain.v2.source.road.ADMSRoadSideBarrierType; import nl.overheid.aerius.shared.domain.v2.source.road.CustomVehicles; import nl.overheid.aerius.shared.domain.v2.source.road.RoadElevation; +import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM1LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2RoadSideBarrier; @@ -76,7 +78,7 @@ public nl.overheid.aerius.gml.v6_0.source.EmissionSource convert( return returnSource; } - private ADMSRoad convertAdms(final ADMSRoadEmissionSource emissionSource) { + private static ADMSRoad convertAdms(final ADMSRoadEmissionSource emissionSource) { final ADMSRoad returnSource = new ADMSRoad(); returnSource.setVehicles(toVehicleProperties(emissionSource.getSubSources())); @@ -92,7 +94,7 @@ private ADMSRoad convertAdms(final ADMSRoadEmissionSource emissionSource) { return returnSource; } - private SRM2Road convertSrm2(final SRM2RoadEmissionSource emissionSource) { + private static SRM2Road convertSrm2(final SRM2RoadEmissionSource emissionSource) { final SRM2Road returnSource = new SRM2Road(); returnSource.setVehicles(toVehicleProperties(emissionSource.getSubSources())); @@ -107,7 +109,7 @@ private SRM2Road convertSrm2(final SRM2RoadEmissionSource emissionSource) { return returnSource; } - private SRM1Road convertSrm1(final SRM1RoadEmissionSource emissionSource) { + private static SRM1Road convertSrm1(final SRM1RoadEmissionSource emissionSource) { final SRM1Road returnSource = new SRM1Road(); returnSource.setVehicles(toVehicleProperties(emissionSource.getSubSources())); @@ -120,7 +122,7 @@ private SRM1Road convertSrm1(final SRM1RoadEmissionSource emissionSource) { return returnSource; } - private List toVehicleProperties(final List vehicleGroups) { + private static List toVehicleProperties(final List vehicleGroups) { final List vehiclesList = new ArrayList<>(vehicleGroups.size()); for (final Vehicles vehicleGroup : vehicleGroups) { @@ -137,34 +139,46 @@ private List toVehicleProperties(final List vehicleG return vehiclesList; } - private void handleGenericProperties(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, + private static void handleGenericProperties(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final RoadEmissionSource returnSource) { handleRoadCodes(emissionSource, returnSource); handleRoadManager(emissionSource, returnSource); handleTrafficDirection(emissionSource, returnSource); } - private void handleRoadCodes(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, + private static void handleRoadCodes(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final RoadEmissionSource returnSource) { returnSource.setRoadAreaCode(emissionSource.getRoadAreaCode()); - returnSource.setRoadTypeCode(emissionSource.getRoadTypeCode()); + returnSource.setRoadTypeCode(gmlRoadTypeCode(emissionSource.getRoadTypeCode(), emissionSource.getSubSources())); } - private void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final SRM2Road returnSource) { + private static String gmlRoadTypeCode(final String roadTypeCode, final List vehicles) { + // If there are standard vehicles with no speed set keep the original road type code for non urban roads. + // This to be backward compatible for when the code is used in combination with data not yet supporting non urban roads with max speed. + // Because if NON_URBAN_ROAD would be used in combination with no speed, it would mean it would be interpreted as having 0 speed, + // and it could mean using an invalid speed category because it would have been expected the speed to be 80 km/h. + final boolean maxSpeedNotSet = vehicles.stream().filter(StandardVehicles.class::isInstance).map(StandardVehicles.class::cast) + .anyMatch(e -> Optional.ofNullable(e.getMaximumSpeed()).orElse(0) == 0); + + return !maxSpeedNotSet && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) ? RoadType.NON_URBAN_ROAD.name() : roadTypeCode; + } + + private static void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final SRM2Road returnSource) { //don't return tunnel factor if it's the default value. if (Double.doubleToLongBits(emissionSource.getTunnelFactor()) != Double.doubleToLongBits(1.0)) { returnSource.setTunnelFactor(emissionSource.getTunnelFactor()); } } - private void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.SRM1RoadEmissionSource emissionSource, final SRM1Road returnSource) { + private static void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.SRM1RoadEmissionSource emissionSource, + final SRM1Road returnSource) { //don't return tunnel factor if it's the default value. if (Double.doubleToLongBits(emissionSource.getTunnelFactor()) != Double.doubleToLongBits(1.0)) { returnSource.setTunnelFactor(emissionSource.getTunnelFactor()); } } - private void handleElevation(final SRM2RoadEmissionSource emissionSource, final SRM2Road returnSource) { + private static void handleElevation(final SRM2RoadEmissionSource emissionSource, final SRM2Road returnSource) { returnSource.setElevation(emissionSource.getElevation()); //don't set the elevation height if it's normal elevation. if (returnSource.getElevation() != RoadElevation.NORMAL) { @@ -172,7 +186,7 @@ private void handleElevation(final SRM2RoadEmissionSource emissionSource, final } } - private void handleBarriers(final SRM2RoadEmissionSource emissionSource, final SRM2Road returnSource) { + private static void handleBarriers(final SRM2RoadEmissionSource emissionSource, final SRM2Road returnSource) { if (emissionSource.getBarrierLeft() != null) { returnSource.setBarrierLeft(toGMLRoadSideBarrier(emissionSource.getBarrierLeft())); } @@ -181,7 +195,7 @@ private void handleBarriers(final SRM2RoadEmissionSource emissionSource, final S } } - private RoadSideBarrierProperty toGMLRoadSideBarrier(final SRM2RoadSideBarrier barrier) { + private static RoadSideBarrierProperty toGMLRoadSideBarrier(final SRM2RoadSideBarrier barrier) { final nl.overheid.aerius.gml.v6_0.source.road.RoadSideBarrier gmlBarrier = new nl.overheid.aerius.gml.v6_0.source.road.RoadSideBarrier(); gmlBarrier.setBarrierType(barrier.getBarrierType()); gmlBarrier.setHeight(barrier.getHeight()); @@ -189,7 +203,7 @@ private RoadSideBarrierProperty toGMLRoadSideBarrier(final SRM2RoadSideBarrier b return new RoadSideBarrierProperty(gmlBarrier); } - private void handleBarriers(final ADMSRoadEmissionSource emissionSource, final ADMSRoad returnSource) { + private static void handleBarriers(final ADMSRoadEmissionSource emissionSource, final ADMSRoad returnSource) { if (emissionSource.getBarrierLeft() != null && emissionSource.getBarrierLeft().getBarrierType() != ADMSRoadSideBarrierType.NONE) { returnSource.setBarrierLeft(toGMLRoadSideBarrier(emissionSource.getBarrierLeft())); } @@ -198,7 +212,7 @@ private void handleBarriers(final ADMSRoadEmissionSource emissionSource, final A } } - private void handleTimeVaryingProfile(final ADMSRoadEmissionSource emissionSource, final ADMSRoad returnSource) { + private static void handleTimeVaryingProfile(final ADMSRoadEmissionSource emissionSource, final ADMSRoad returnSource) { if (emissionSource.getCharacteristics() instanceof ADMSSourceCharacteristics) { final ADMSSourceCharacteristics characteristics = (ADMSSourceCharacteristics) emissionSource.getCharacteristics(); final AbstractTimeVaryingProfile hourlyProfile = ToGMLUtil.determineTimeVaryingProfile( @@ -212,7 +226,7 @@ private void handleTimeVaryingProfile(final ADMSRoadEmissionSource emissionSourc } } - private ADMSRoadSideBarrierProperty toGMLRoadSideBarrier(final ADMSRoadSideBarrier barrier) { + private static ADMSRoadSideBarrierProperty toGMLRoadSideBarrier(final ADMSRoadSideBarrier barrier) { final nl.overheid.aerius.gml.v6_0.source.road.ADMSRoadSideBarrier gmlBarrier = new nl.overheid.aerius.gml.v6_0.source.road.ADMSRoadSideBarrier(); gmlBarrier.setBarrierType(barrier.getBarrierType()); gmlBarrier.setDistance(barrier.getWidth()); @@ -223,17 +237,17 @@ private ADMSRoadSideBarrierProperty toGMLRoadSideBarrier(final ADMSRoadSideBarri return new ADMSRoadSideBarrierProperty(gmlBarrier); } - private void handleRoadManager(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, + private static void handleRoadManager(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final RoadEmissionSource returnSource) { returnSource.setRoadManager(emissionSource.getRoadManager()); } - private void handleTrafficDirection(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, + private static void handleTrafficDirection(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final RoadEmissionSource returnSource) { returnSource.setTrafficDirection(emissionSource.getTrafficDirection()); } - private void addVehicleEmissionSource(final List vehiclesList, final StandardVehicles vse) { + private static void addVehicleEmissionSource(final List vehiclesList, final StandardVehicles vse) { // Loop over all vehicle types in the valuesPerVehicleTypes map, but sort them first to get predictable order. final List vehicleTypes = vse.getValuesPerVehicleTypes().keySet().stream().sorted().collect(Collectors.toList()); for (final String vehicleType : vehicleTypes) { @@ -251,7 +265,7 @@ private void addVehicleEmissionSource(final List vehiclesList, } } - private void addVehicleEmissionSource(final List vehiclesList, final SpecificVehicles vse) { + private static void addVehicleEmissionSource(final List vehiclesList, final SpecificVehicles vse) { final SpecificVehicle sv = new SpecificVehicle(); sv.setCode(vse.getVehicleCode()); @@ -260,7 +274,7 @@ private void addVehicleEmissionSource(final List vehiclesList, vehiclesList.add(new VehiclesProperty(sv)); } - private void addVehicleEmissionSource(final List vehiclesList, final CustomVehicles vce) { + private static void addVehicleEmissionSource(final List vehiclesList, final CustomVehicles vce) { final CustomVehicle cv = new CustomVehicle(); cv.setDescription(vce.getDescription()); cv.setEmissionFactors(getEmissions(vce.getEmissionFactors(), Substance.NOX)); @@ -269,7 +283,7 @@ private void addVehicleEmissionSource(final List vehiclesList, vehiclesList.add(new VehiclesProperty(cv)); } - private List getSrm2DynamicSegments(final SRM2RoadEmissionSource emissionSource) { + private static List getSrm2DynamicSegments(final SRM2RoadEmissionSource emissionSource) { final List partialChangeProperties = new ArrayList<>(); if (emissionSource.getPartialChanges() != null && !emissionSource.getPartialChanges().isEmpty()) { for (final SRM2LinearReference dynamicSegment : emissionSource.getPartialChanges()) { @@ -280,7 +294,7 @@ private List getSrm2DynamicSegments(final SRM2R return partialChangeProperties; } - private void addSrm2PartialChanges(final SRM2LinearReference dynamicSegment, + private static void addSrm2PartialChanges(final SRM2LinearReference dynamicSegment, final List partialChangeProperties) { final SRM2RoadLinearReference dynamicSegmentGML = new SRM2RoadLinearReference(); @@ -301,8 +315,9 @@ private void addSrm2PartialChanges(final SRM2LinearReference dynamicSegment, partialChangeProperties.add(new SRM2RoadLinearReferenceProperty(dynamicSegmentGML)); } - private List getSrm1DynamicSegments(final SRM1RoadEmissionSource emissionSource) { + private static List getSrm1DynamicSegments(final SRM1RoadEmissionSource emissionSource) { final List partialChangeProperties = new ArrayList<>(); + if (emissionSource.getPartialChanges() != null && !emissionSource.getPartialChanges().isEmpty()) { for (final SRM1LinearReference dynamicSegment : emissionSource.getPartialChanges()) { addSrm1PartialChanges(dynamicSegment, partialChangeProperties); @@ -312,7 +327,7 @@ private List getSrm1DynamicSegments(final SRM1R return partialChangeProperties; } - private void addSrm1PartialChanges(final SRM1LinearReference dynamicSegment, + private static void addSrm1PartialChanges(final SRM1LinearReference dynamicSegment, final List partialChangeProperties) { final SRM1RoadLinearReference dynamicSegmentGML = new SRM1RoadLinearReference(); diff --git a/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml b/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml new file mode 100644 index 00000000..24bafbe3 --- /dev/null +++ b/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml @@ -0,0 +1,85 @@ + + + + + + + 2030 + Situatie 1 + + + + + Situatie 1 + RzjbVuSNcncK + PROPOSED + + + + + DEV + 1.0-SNAPSHOT_20141002_990e21dea1 + + + + + + + + + NL.IMAER + ES.1 + + + Bron 1 + + + + + 0.0 + + + 2.5 + 0.0 + + + + + + + 128114.62 442318.8 128033.98 442170.96 + + + + + + + 24.525329736565443 + + + + + 95.61190577751265 + + + + + 13.553471696523006 + + + + + 19.73090437453009 + + + + + 15000.0 + DAY + 0.1 + + + NORMAL + + + diff --git a/source/imaer-gml/src/test/resources/gml/v1_1/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v1_1/roundtrip/road_empty.gml index 889b1988..ff551a68 100644 --- a/source/imaer-gml/src/test/resources/gml/v1_1/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v1_1/roundtrip/road_empty.gml @@ -116,13 +116,13 @@ - + 0.0 0.0 - + 0.0 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v2_0/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v2_0/roundtrip/road_empty.gml index b6ce8255..f9e6a67e 100644 --- a/source/imaer-gml/src/test/resources/gml/v2_0/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v2_0/roundtrip/road_empty.gml @@ -133,13 +133,13 @@ - + 0.0 0.0 - + 0.0 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v2_1/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v2_1/roundtrip/road_empty.gml index 054bb206..7f5aeb86 100644 --- a/source/imaer-gml/src/test/resources/gml/v2_1/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v2_1/roundtrip/road_empty.gml @@ -135,14 +135,14 @@ - + 0.0 DAY 0.0 - + 0.0 DAY 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v2_2/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v2_2/roundtrip/road_empty.gml index e28c2159..50d17581 100644 --- a/source/imaer-gml/src/test/resources/gml/v2_2/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v2_2/roundtrip/road_empty.gml @@ -143,14 +143,14 @@ - + 0.0 DAY 0.0 - + 0.0 DAY 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v3_0/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v3_0/roundtrip/road_empty.gml index c00452ca..528b0130 100644 --- a/source/imaer-gml/src/test/resources/gml/v3_0/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v3_0/roundtrip/road_empty.gml @@ -143,14 +143,14 @@ - + 0.0 DAY 0.0 - + 0.0 DAY 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v3_1/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v3_1/roundtrip/road_empty.gml index f4ec1af9..a275dbb7 100644 --- a/source/imaer-gml/src/test/resources/gml/v3_1/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v3_1/roundtrip/road_empty.gml @@ -143,14 +143,14 @@ - + 0.0 DAY 0.0 - + 0.0 DAY 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v4_0/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v4_0/roundtrip/road_empty.gml index d0d688f0..c0335a27 100644 --- a/source/imaer-gml/src/test/resources/gml/v4_0/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v4_0/roundtrip/road_empty.gml @@ -144,14 +144,14 @@ - + 0.0 DAY 0.0 - + 0.0 DAY 0.0 diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml index 2428bd76..e849f53b 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml @@ -94,7 +94,7 @@ - + NL.IMAER @@ -147,6 +147,7 @@ 0.0 DAY 0.0 + 80 @@ -154,6 +155,7 @@ 0.0 DAY 0.0 + 80 NORMAL diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml index 3c3e7616..83d0aa94 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml @@ -24,7 +24,7 @@ - + NL.IMAER @@ -77,6 +77,7 @@ 15000.0 DAY 0.1 + 80 NORMAL diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml new file mode 100644 index 00000000..3c3e7616 --- /dev/null +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml @@ -0,0 +1,85 @@ + + + + + + + 2030 + Situatie 1 + + + + + Situatie 1 + RzjbVuSNcncK + PROPOSED + + + + + DEV + 1.0-SNAPSHOT_20141002_990e21dea1 + + + + + + + + + NL.IMAER + ES.1 + + + Bron 1 + + + + + 0.0 + + + 2.5 + 0.0 + + + + + + + 128114.62 442318.8 128033.98 442170.96 + + + + + + + 24.525329736565443 + + + + + 95.61190577751265 + + + + + 13.553471696523006 + + + + + 19.73090437453009 + + + + + 15000.0 + DAY + 0.1 + + + NORMAL + + + diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml index d108732b..ae2140e0 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml @@ -383,7 +383,7 @@ - + NL.IMAER @@ -436,6 +436,7 @@ 422.0 DAY 0.0 + 80 BOTH @@ -443,7 +444,7 @@ - + NL.IMAER @@ -496,6 +497,7 @@ 818.0 DAY 0.0 + 80 BOTH @@ -503,7 +505,7 @@ - + NL.IMAER @@ -556,6 +558,7 @@ 236.0 DAY 0.0 + 80 BOTH @@ -563,7 +566,7 @@ - + NL.IMAER @@ -616,6 +619,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -623,7 +627,7 @@ - + NL.IMAER @@ -676,6 +680,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -683,7 +688,7 @@ - + NL.IMAER @@ -736,6 +741,7 @@ 490.0 DAY 0.0 + 80 BOTH @@ -743,7 +749,7 @@ - + NL.IMAER @@ -796,6 +802,7 @@ 328.0 DAY 0.0 + 80 BOTH @@ -803,7 +810,7 @@ - + NL.IMAER @@ -856,6 +863,7 @@ 162.0 DAY 0.0 + 80 BOTH @@ -863,7 +871,7 @@ - + NL.IMAER @@ -916,6 +924,7 @@ 46.0 DAY 0.0 + 80 BOTH @@ -923,7 +932,7 @@ - + NL.IMAER @@ -976,6 +985,7 @@ 376.0 DAY 0.0 + 80 BOTH @@ -983,7 +993,7 @@ - + NL.IMAER @@ -1036,6 +1046,7 @@ 140.0 DAY 0.0 + 80 BOTH @@ -1043,7 +1054,7 @@ - + NL.IMAER @@ -1096,6 +1107,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1103,7 +1115,7 @@ - + NL.IMAER @@ -1156,6 +1168,7 @@ 56.0 DAY 0.0 + 80 BOTH @@ -1163,7 +1176,7 @@ - + NL.IMAER @@ -1216,6 +1229,7 @@ 23.0 DAY 0.0 + 80 BOTH @@ -1223,7 +1237,7 @@ - + NL.IMAER @@ -1276,6 +1290,7 @@ 310.0 DAY 0.0 + 80 @@ -1283,6 +1298,7 @@ 6.0 DAY 0.0 + 80 BOTH @@ -1290,7 +1306,7 @@ - + NL.IMAER @@ -1343,6 +1359,7 @@ 929.0 DAY 0.0 + 80 @@ -1350,6 +1367,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1357,7 +1375,7 @@ - + NL.IMAER @@ -1410,6 +1428,7 @@ 66.0 DAY 0.0 + 80 BOTH @@ -1417,7 +1436,7 @@ - + NL.IMAER @@ -1470,6 +1489,7 @@ 2.0 DAY 0.0 + 80 BOTH @@ -1477,7 +1497,7 @@ - + NL.IMAER @@ -1530,6 +1550,7 @@ 16.0 DAY 0.0 + 80 BOTH diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml index 7476aaf7..0e1beeb9 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml @@ -383,7 +383,7 @@ - + NL.IMAER @@ -436,6 +436,7 @@ 422.0 DAY 0.0 + 80 BOTH @@ -443,7 +444,7 @@ - + NL.IMAER @@ -496,6 +497,7 @@ 818.0 DAY 0.0 + 80 BOTH @@ -503,7 +505,7 @@ - + NL.IMAER @@ -556,6 +558,7 @@ 236.0 DAY 0.0 + 80 BOTH @@ -563,7 +566,7 @@ - + NL.IMAER @@ -616,6 +619,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -623,7 +627,7 @@ - + NL.IMAER @@ -676,6 +680,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -683,7 +688,7 @@ - + NL.IMAER @@ -736,6 +741,7 @@ 490.0 DAY 0.0 + 80 BOTH @@ -743,7 +749,7 @@ - + NL.IMAER @@ -796,6 +802,7 @@ 328.0 DAY 0.0 + 80 BOTH @@ -803,7 +810,7 @@ - + NL.IMAER @@ -856,6 +863,7 @@ 162.0 DAY 0.0 + 80 BOTH @@ -863,7 +871,7 @@ - + NL.IMAER @@ -916,6 +924,7 @@ 46.0 DAY 0.0 + 80 BOTH @@ -923,7 +932,7 @@ - + NL.IMAER @@ -976,6 +985,7 @@ 376.0 DAY 0.0 + 80 BOTH @@ -983,7 +993,7 @@ - + NL.IMAER @@ -1036,6 +1046,7 @@ 140.0 DAY 0.0 + 80 BOTH @@ -1043,7 +1054,7 @@ - + NL.IMAER @@ -1096,6 +1107,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1103,7 +1115,7 @@ - + NL.IMAER @@ -1156,6 +1168,7 @@ 56.0 DAY 0.0 + 80 BOTH @@ -1163,7 +1176,7 @@ - + NL.IMAER @@ -1216,6 +1229,7 @@ 23.0 DAY 0.0 + 80 BOTH @@ -1223,7 +1237,7 @@ - + NL.IMAER @@ -1276,6 +1290,7 @@ 310.0 DAY 0.0 + 80 @@ -1283,6 +1298,7 @@ 6.0 DAY 0.0 + 80 BOTH @@ -1290,7 +1306,7 @@ - + NL.IMAER @@ -1343,6 +1359,7 @@ 929.0 DAY 0.0 + 80 @@ -1350,6 +1367,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1357,7 +1375,7 @@ - + NL.IMAER @@ -1410,6 +1428,7 @@ 66.0 DAY 0.0 + 80 BOTH @@ -1417,7 +1436,7 @@ - + NL.IMAER @@ -1470,6 +1489,7 @@ 2.0 DAY 0.0 + 80 BOTH @@ -1477,7 +1497,7 @@ - + NL.IMAER @@ -1530,6 +1550,7 @@ 16.0 DAY 0.0 + 80 BOTH diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml index 921ccb70..5473882c 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml @@ -471,7 +471,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml index 0e4c7c83..4152e2f0 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml @@ -139,7 +139,7 @@ - + NL.IMAER @@ -336,7 +336,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml index 3b689f0a..393b6a36 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml @@ -261,7 +261,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml index 72e057c6..7155bc18 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml @@ -201,7 +201,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml index 83fd8294..28aca46a 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml @@ -200,7 +200,7 @@ - + NL.IMAER @@ -340,7 +340,7 @@ - + NL.IMAER @@ -420,7 +420,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml index 26eb64a1..d6895f8e 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml @@ -23,7 +23,7 @@ - + NL.IMAER @@ -108,7 +108,7 @@ - + NL.IMAER @@ -193,7 +193,7 @@ - + NL.IMAER @@ -278,7 +278,7 @@ - + NL.IMAER @@ -1539,7 +1539,7 @@ - + NL.IMAER @@ -2464,7 +2464,7 @@ - + NL.IMAER @@ -2549,7 +2549,7 @@ - + NL.IMAER @@ -2634,7 +2634,7 @@ - + NL.IMAER @@ -3055,7 +3055,7 @@ - + NL.IMAER @@ -3140,7 +3140,7 @@ - + NL.IMAER @@ -3225,7 +3225,7 @@ - + NL.IMAER @@ -3310,7 +3310,7 @@ - + NL.IMAER @@ -3395,7 +3395,7 @@ - + NL.IMAER @@ -3480,7 +3480,7 @@ - + NL.IMAER @@ -4573,7 +4573,7 @@ - + NL.IMAER @@ -5093,7 +5093,7 @@ - + NL.IMAER @@ -5178,7 +5178,7 @@ - + NL.IMAER @@ -5851,7 +5851,7 @@ - + NL.IMAER @@ -5936,7 +5936,7 @@ - + NL.IMAER @@ -6881,7 +6881,7 @@ - + NL.IMAER @@ -6966,7 +6966,7 @@ - + NL.IMAER @@ -7471,7 +7471,7 @@ - + NL.IMAER @@ -7556,7 +7556,7 @@ - + NL.IMAER @@ -7641,7 +7641,7 @@ - + NL.IMAER @@ -7726,7 +7726,7 @@ - + NL.IMAER @@ -8063,7 +8063,7 @@ - + NL.IMAER @@ -8736,7 +8736,7 @@ - + NL.IMAER @@ -8821,7 +8821,7 @@ - + NL.IMAER @@ -8906,7 +8906,7 @@ - + NL.IMAER @@ -8991,7 +8991,7 @@ - + NL.IMAER @@ -9076,7 +9076,7 @@ - + NL.IMAER @@ -9161,7 +9161,7 @@ - + NL.IMAER @@ -9246,7 +9246,7 @@ - + NL.IMAER @@ -9331,7 +9331,7 @@ - + NL.IMAER @@ -10088,7 +10088,7 @@ - + NL.IMAER @@ -10173,7 +10173,7 @@ - + NL.IMAER @@ -10258,7 +10258,7 @@ - + NL.IMAER @@ -10511,7 +10511,7 @@ - + NL.IMAER @@ -10596,7 +10596,7 @@ - + NL.IMAER @@ -10681,7 +10681,7 @@ - + NL.IMAER @@ -10766,7 +10766,7 @@ - + NL.IMAER @@ -10851,7 +10851,7 @@ - + NL.IMAER @@ -12033,7 +12033,7 @@ - + NL.IMAER @@ -12118,7 +12118,7 @@ - + NL.IMAER @@ -12539,7 +12539,7 @@ - + NL.IMAER @@ -12792,7 +12792,7 @@ - + NL.IMAER @@ -12877,7 +12877,7 @@ - + NL.IMAER @@ -15240,7 +15240,7 @@ - + NL.IMAER @@ -15324,7 +15324,7 @@ - + NL.IMAER @@ -15408,7 +15408,7 @@ - + NL.IMAER @@ -15492,7 +15492,7 @@ - + NL.IMAER @@ -15576,7 +15576,7 @@ - + NL.IMAER @@ -15660,7 +15660,7 @@ - + NL.IMAER @@ -17459,7 +17459,7 @@ - + NL.IMAER @@ -17544,7 +17544,7 @@ - + NL.IMAER @@ -17629,7 +17629,7 @@ - + NL.IMAER @@ -17714,7 +17714,7 @@ - + NL.IMAER @@ -17799,7 +17799,7 @@ - + NL.IMAER @@ -17884,7 +17884,7 @@ - + NL.IMAER @@ -17969,7 +17969,7 @@ - + NL.IMAER @@ -18642,7 +18642,7 @@ - + NL.IMAER @@ -22745,7 +22745,7 @@ - + NL.IMAER @@ -22830,7 +22830,7 @@ - + NL.IMAER @@ -24348,7 +24348,7 @@ - + NL.IMAER @@ -24433,7 +24433,7 @@ - + NL.IMAER @@ -24518,7 +24518,7 @@ - + NL.IMAER @@ -24603,7 +24603,7 @@ - + NL.IMAER @@ -24688,7 +24688,7 @@ - + NL.IMAER @@ -26117,7 +26117,7 @@ - + NL.IMAER @@ -26202,7 +26202,7 @@ - + NL.IMAER @@ -26287,7 +26287,7 @@ - + NL.IMAER @@ -26876,7 +26876,7 @@ - + NL.IMAER @@ -27213,7 +27213,7 @@ - + NL.IMAER @@ -27298,7 +27298,7 @@ - + NL.IMAER @@ -27645,7 +27645,7 @@ - + NL.IMAER @@ -27898,7 +27898,7 @@ - + NL.IMAER @@ -28580,7 +28580,7 @@ - + NL.IMAER @@ -28665,7 +28665,7 @@ - + NL.IMAER @@ -29442,7 +29442,7 @@ - + NL.IMAER @@ -29527,7 +29527,7 @@ - + NL.IMAER @@ -29612,7 +29612,7 @@ - + NL.IMAER @@ -29781,7 +29781,7 @@ - + NL.IMAER @@ -29866,7 +29866,7 @@ - + NL.IMAER @@ -29951,7 +29951,7 @@ - + NL.IMAER @@ -31588,7 +31588,7 @@ - + NL.IMAER @@ -31673,7 +31673,7 @@ - + NL.IMAER @@ -31758,7 +31758,7 @@ - + NL.IMAER @@ -31843,7 +31843,7 @@ - + NL.IMAER @@ -31928,7 +31928,7 @@ - + NL.IMAER @@ -32013,7 +32013,7 @@ - + NL.IMAER @@ -32098,7 +32098,7 @@ - + NL.IMAER @@ -34071,7 +34071,7 @@ - + NL.IMAER @@ -34156,7 +34156,7 @@ - + NL.IMAER @@ -34997,7 +34997,7 @@ - + NL.IMAER @@ -35873,7 +35873,7 @@ - + NL.IMAER @@ -35958,7 +35958,7 @@ - + NL.IMAER @@ -36043,7 +36043,7 @@ - + NL.IMAER @@ -36128,7 +36128,7 @@ - + NL.IMAER @@ -36465,7 +36465,7 @@ - + NL.IMAER @@ -37069,7 +37069,7 @@ - + NL.IMAER @@ -37154,7 +37154,7 @@ - + NL.IMAER @@ -37911,7 +37911,7 @@ - + NL.IMAER @@ -37996,7 +37996,7 @@ - + NL.IMAER @@ -38081,7 +38081,7 @@ - + NL.IMAER @@ -38784,7 +38784,7 @@ - + NL.IMAER @@ -40184,7 +40184,7 @@ - + NL.IMAER @@ -40353,7 +40353,7 @@ - + NL.IMAER @@ -40438,7 +40438,7 @@ - + NL.IMAER @@ -40523,7 +40523,7 @@ - + NL.IMAER @@ -40786,7 +40786,7 @@ - + NL.IMAER @@ -41222,7 +41222,7 @@ - + NL.IMAER @@ -41307,7 +41307,7 @@ - + NL.IMAER @@ -41392,7 +41392,7 @@ - + NL.IMAER @@ -41477,7 +41477,7 @@ - + NL.IMAER @@ -41562,7 +41562,7 @@ - + NL.IMAER @@ -41647,7 +41647,7 @@ - + NL.IMAER @@ -42088,7 +42088,7 @@ - + NL.IMAER @@ -42173,7 +42173,7 @@ - + NL.IMAER @@ -42258,7 +42258,7 @@ - + NL.IMAER @@ -42343,7 +42343,7 @@ - + NL.IMAER @@ -42428,7 +42428,7 @@ - + NL.IMAER @@ -42513,7 +42513,7 @@ - + NL.IMAER @@ -42598,7 +42598,7 @@ - + NL.IMAER @@ -43662,7 +43662,7 @@ - + NL.IMAER @@ -43747,7 +43747,7 @@ - + NL.IMAER @@ -43832,7 +43832,7 @@ - + NL.IMAER @@ -43917,7 +43917,7 @@ - + NL.IMAER @@ -52101,7 +52101,7 @@ - + NL.IMAER @@ -52186,7 +52186,7 @@ - + NL.IMAER @@ -52271,7 +52271,7 @@ - + NL.IMAER @@ -52356,7 +52356,7 @@ - + NL.IMAER @@ -53153,7 +53153,7 @@ - + NL.IMAER @@ -53238,7 +53238,7 @@ - + NL.IMAER @@ -53323,7 +53323,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml index 250f9b55..4113e196 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml @@ -4927,7 +4927,7 @@ - + NL.IMAER @@ -5852,7 +5852,7 @@ - + NL.IMAER @@ -5937,7 +5937,7 @@ - + NL.IMAER @@ -6022,7 +6022,7 @@ - + NL.IMAER @@ -6359,7 +6359,7 @@ - + NL.IMAER @@ -6444,7 +6444,7 @@ - + NL.IMAER @@ -6529,7 +6529,7 @@ - + NL.IMAER @@ -6782,7 +6782,7 @@ - + NL.IMAER @@ -6867,7 +6867,7 @@ - + NL.IMAER @@ -7288,7 +7288,7 @@ - + NL.IMAER @@ -7726,7 +7726,7 @@ - + NL.IMAER @@ -7811,7 +7811,7 @@ - + NL.IMAER @@ -7896,7 +7896,7 @@ - + NL.IMAER @@ -7981,7 +7981,7 @@ - + NL.IMAER @@ -8318,7 +8318,7 @@ - + NL.IMAER @@ -9471,7 +9471,7 @@ - + NL.IMAER @@ -9556,7 +9556,7 @@ - + NL.IMAER @@ -9641,7 +9641,7 @@ - + NL.IMAER @@ -9726,7 +9726,7 @@ - + NL.IMAER @@ -10801,7 +10801,7 @@ - + NL.IMAER @@ -10886,7 +10886,7 @@ - + NL.IMAER @@ -10971,7 +10971,7 @@ - + NL.IMAER @@ -11056,7 +11056,7 @@ - + NL.IMAER @@ -11141,7 +11141,7 @@ - + NL.IMAER @@ -11226,7 +11226,7 @@ - + NL.IMAER @@ -11311,7 +11311,7 @@ - + NL.IMAER @@ -11396,7 +11396,7 @@ - + NL.IMAER @@ -11481,7 +11481,7 @@ - + NL.IMAER @@ -11566,7 +11566,7 @@ - + NL.IMAER @@ -11651,7 +11651,7 @@ - + NL.IMAER @@ -12576,7 +12576,7 @@ - + NL.IMAER @@ -12661,7 +12661,7 @@ - + NL.IMAER @@ -13628,7 +13628,7 @@ - + NL.IMAER @@ -13713,7 +13713,7 @@ - + NL.IMAER @@ -13798,7 +13798,7 @@ - + NL.IMAER @@ -13883,7 +13883,7 @@ - + NL.IMAER @@ -13968,7 +13968,7 @@ - + NL.IMAER @@ -14053,7 +14053,7 @@ - + NL.IMAER @@ -14894,7 +14894,7 @@ - + NL.IMAER @@ -14979,7 +14979,7 @@ - + NL.IMAER @@ -15064,7 +15064,7 @@ - + NL.IMAER @@ -15149,7 +15149,7 @@ - + NL.IMAER @@ -15234,7 +15234,7 @@ - + NL.IMAER @@ -15403,7 +15403,7 @@ - + NL.IMAER @@ -15488,7 +15488,7 @@ - + NL.IMAER @@ -15573,7 +15573,7 @@ - + NL.IMAER @@ -15658,7 +15658,7 @@ - + NL.IMAER @@ -15743,7 +15743,7 @@ - + NL.IMAER @@ -16248,7 +16248,7 @@ - + NL.IMAER @@ -16333,7 +16333,7 @@ - + NL.IMAER @@ -16502,7 +16502,7 @@ - + NL.IMAER @@ -16587,7 +16587,7 @@ - + NL.IMAER @@ -16672,7 +16672,7 @@ - + NL.IMAER @@ -16757,7 +16757,7 @@ - + NL.IMAER @@ -16842,7 +16842,7 @@ - + NL.IMAER @@ -17263,7 +17263,7 @@ - + NL.IMAER @@ -17348,7 +17348,7 @@ - + NL.IMAER @@ -17517,7 +17517,7 @@ - + NL.IMAER @@ -17602,7 +17602,7 @@ - + NL.IMAER @@ -18275,7 +18275,7 @@ - + NL.IMAER @@ -18360,7 +18360,7 @@ - + NL.IMAER @@ -18445,7 +18445,7 @@ - + NL.IMAER @@ -18530,7 +18530,7 @@ - + NL.IMAER @@ -18615,7 +18615,7 @@ - + NL.IMAER @@ -20542,7 +20542,7 @@ - + NL.IMAER @@ -20627,7 +20627,7 @@ - + NL.IMAER @@ -20713,7 +20713,7 @@ - + NL.IMAER @@ -21399,7 +21399,7 @@ - + NL.IMAER @@ -21484,7 +21484,7 @@ - + NL.IMAER @@ -21569,7 +21569,7 @@ - + NL.IMAER @@ -22578,7 +22578,7 @@ - + NL.IMAER @@ -22663,7 +22663,7 @@ - + NL.IMAER @@ -23672,7 +23672,7 @@ - + NL.IMAER @@ -25101,7 +25101,7 @@ - + NL.IMAER @@ -25186,7 +25186,7 @@ - + NL.IMAER @@ -25271,7 +25271,7 @@ - + NL.IMAER @@ -26280,7 +26280,7 @@ - + NL.IMAER @@ -26365,7 +26365,7 @@ - + NL.IMAER @@ -26450,7 +26450,7 @@ - + NL.IMAER @@ -26535,7 +26535,7 @@ - + NL.IMAER @@ -29937,7 +29937,7 @@ - + NL.IMAER @@ -30022,7 +30022,7 @@ - + NL.IMAER @@ -30107,7 +30107,7 @@ - + NL.IMAER @@ -31200,7 +31200,7 @@ - + NL.IMAER @@ -31369,7 +31369,7 @@ - + NL.IMAER @@ -32803,7 +32803,7 @@ - + NL.IMAER @@ -32888,7 +32888,7 @@ - + NL.IMAER @@ -32973,7 +32973,7 @@ - + NL.IMAER @@ -34624,7 +34624,7 @@ - + NL.IMAER @@ -34709,7 +34709,7 @@ - + NL.IMAER @@ -38362,7 +38362,7 @@ - + NL.IMAER @@ -39455,7 +39455,7 @@ - + NL.IMAER @@ -39540,7 +39540,7 @@ - + NL.IMAER @@ -42237,7 +42237,7 @@ - + NL.IMAER @@ -43282,7 +43282,7 @@ - + NL.IMAER @@ -43367,7 +43367,7 @@ - + NL.IMAER @@ -43452,7 +43452,7 @@ - + NL.IMAER @@ -46899,7 +46899,7 @@ - + NL.IMAER @@ -46984,7 +46984,7 @@ - + NL.IMAER @@ -47069,7 +47069,7 @@ - + NL.IMAER @@ -50086,7 +50086,7 @@ - + NL.IMAER @@ -50423,7 +50423,7 @@ - + NL.IMAER @@ -52556,7 +52556,7 @@ - + NL.IMAER @@ -52641,7 +52641,7 @@ - + NL.IMAER @@ -52726,7 +52726,7 @@ - + NL.IMAER @@ -52811,7 +52811,7 @@ - + NL.IMAER @@ -52896,7 +52896,7 @@ - + NL.IMAER @@ -52981,7 +52981,7 @@ - + NL.IMAER @@ -53246,7 +53246,7 @@ - + NL.IMAER @@ -53331,7 +53331,7 @@ - + NL.IMAER @@ -53416,7 +53416,7 @@ - + NL.IMAER @@ -53501,7 +53501,7 @@ - + NL.IMAER @@ -53586,7 +53586,7 @@ - + NL.IMAER @@ -54116,7 +54116,7 @@ - + NL.IMAER @@ -54201,7 +54201,7 @@ - + NL.IMAER @@ -54286,7 +54286,7 @@ - + NL.IMAER @@ -54371,7 +54371,7 @@ - + NL.IMAER @@ -62199,7 +62199,7 @@ - + NL.IMAER @@ -62284,7 +62284,7 @@ - + NL.IMAER @@ -62369,7 +62369,7 @@ - + NL.IMAER @@ -62454,7 +62454,7 @@ - + NL.IMAER @@ -63518,7 +63518,7 @@ - + NL.IMAER @@ -63603,7 +63603,7 @@ - + NL.IMAER @@ -63688,7 +63688,7 @@ - + NL.IMAER diff --git a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/source/road/RoadSpeedType.java b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/source/road/RoadSpeedType.java index 780284e8..bd0fba4b 100644 --- a/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/source/road/RoadSpeedType.java +++ b/source/imaer-shared/src/main/java/nl/overheid/aerius/shared/domain/v2/source/road/RoadSpeedType.java @@ -51,7 +51,7 @@ public enum RoadSpeedType { * * Typisch buitenwegverkeer op een nationale weg. */ - NATIONAL_ROAD("NATIONAL_ROAD", "NON_URBAN_ROAD_NATIONAL"); + NATIONAL_ROAD("NATIONAL_ROAD", "NON_URBAN_ROAD_GENERAL"); private final String legacyValue; private final String roadTypeCode; From c0d32c0e87627652269cc9b21d3b1f201a8f01cb Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Fri, 3 Apr 2026 11:50:48 +0200 Subject: [PATCH 2/4] Review comments - Simplified GML2SRMRoad v4 implementation by merging specific variables with convertRoadType because specificVariables was only used for road type, and since both methods have a SRM specific implementation the SRM1 case can be moved to the convertRoadTypeCode. - In Road2GML non urban road type conversion inversed check on if 0 speed present from any to all such that no negative check has to be done --- .../aerius/gml/base/source/road/v40/GML2SRM1Road.java | 10 ++-------- .../aerius/gml/base/source/road/v40/GML2SRM2Road.java | 7 +------ .../aerius/gml/base/source/road/v40/GML2SRMRoad.java | 11 ++--------- .../nl/overheid/aerius/gml/v6_0/togml/Road2GML.java | 6 +++--- .../nl/overheid/aerius/importer/ImaerImporter.java | 2 +- 5 files changed, 9 insertions(+), 27 deletions(-) diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java index c15f4473..b767e054 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM1Road.java @@ -46,8 +46,8 @@ protected SRM1RoadEmissionSource construct() { } @Override - protected String convertRoadTypeCode(final RoadType roadType) { - return roadType == RoadType.NON_URBAN_ROAD ? "NON_URBAN_ROAD_GENERAL" : roadType.getRoadTypeCode(); + protected String convertRoadTypeCode(final IsGmlSRM1Road source, final RoadType roadType) { + return source.getSpeedProfile().getRoadTypeCode(); } @Override @@ -55,12 +55,6 @@ protected Integer getMaximumSpeed(final RoadType roadType, final Integer maximum return (maximumSpeed == null || maximumSpeed == 0) && roadType == RoadType.NON_URBAN_ROAD ? Integer.valueOf(60) : maximumSpeed; } - @Override - protected void setSpecificVariables(final IsGmlSRM1Road source, final SRM1RoadEmissionSource emissionSource) { - // Overwrite the road type based on sector with the one based on speed profile - emissionSource.setRoadTypeCode(source.getSpeedProfile().getRoadTypeCode()); - } - @Override protected void setOptionalVariables(final IsGmlSRM1Road source, final SRM1RoadEmissionSource emissionSource) throws AeriusException { if (source.getTunnelFactor() != null) { diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java index ed404ebe..e311b233 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRM2Road.java @@ -49,7 +49,7 @@ protected SRM2RoadEmissionSource construct() { } @Override - protected String convertRoadTypeCode(final RoadType roadType) { + protected String convertRoadTypeCode(final T source, final RoadType roadType) { return roadType == null ? null : roadType.getRoadTypeCode(); } @@ -58,11 +58,6 @@ protected Integer getMaximumSpeed(final RoadType roadType, final Integer maximum return (maximumSpeed == null || maximumSpeed == 0) && roadType == RoadType.NON_URBAN_ROAD ? Integer.valueOf(80) : maximumSpeed; } - @Override - protected void setSpecificVariables(final T source, final SRM2RoadEmissionSource emissionSource) { - // NO-OP - } - @Override protected void setOptionalVariables(final T source, final SRM2RoadEmissionSource emissionSource) throws AeriusException { if (source.getTunnelFactor() != null) { diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java index bdb2a5e7..29f750b0 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/v40/GML2SRMRoad.java @@ -59,16 +59,13 @@ public S convert(final T source) throws AeriusException { final List mergingStandardVehicles = new ArrayList<>(); final RoadType roadType = RoadType.valueFromSectorId(source.getSectorId()); - emissionSource.setRoadTypeCode(convertRoadTypeCode(roadType)); + emissionSource.setRoadTypeCode(convertRoadTypeCode(source, roadType)); for (final IsGmlProperty vp : source.getVehicles()) { addVehicleEmissions(roadType, emissionSource.getSubSources(), source, vp, mergingStandardVehicles); } emissionSource.setTrafficDirection(source.getTrafficDirection()); emissionSource.setRoadManager(source.getRoadManager()); emissionSource.setRoadAreaCode("NL"); - // Ensure road type get set before specific, as it's overwritten by SRM1 - - setSpecificVariables(source, emissionSource); setOptionalVariables(source, emissionSource); @@ -77,12 +74,10 @@ public S convert(final T source) throws AeriusException { protected abstract S construct(); - protected abstract String convertRoadTypeCode(RoadType roadType); + protected abstract String convertRoadTypeCode(T source, RoadType roadType); protected abstract Integer getMaximumSpeed(final RoadType roadType, final Integer maximumSpeed); - protected abstract void setSpecificVariables(T source, S emissionSource); - protected abstract void setOptionalVariables(T source, S emissionSource) throws AeriusException; protected void addVehicleEmissions(final RoadType roadType, final List addToVehicles, final T source, @@ -97,7 +92,6 @@ protected void addVehicleEmissions(final RoadType roadType, final List } else { throw new IllegalArgumentException("Instance not supported:" + av.getClass().getCanonicalName()); } - } protected void addEmissionValues(final RoadType roadType, final List addToVehicles, final T source, final IsGmlStandardVehicle sv, @@ -118,7 +112,6 @@ protected void addEmissionValues(final RoadType roadType, final List a standardVehicle.getValuesPerVehicleTypes().put(sv.getVehicleType().getStandardVehicleCode(), valuesPerVehicleType); } - protected Optional findExistingMatch(final IsGmlStandardVehicle sv, final List mergingStandardVehicles) { return mergingStandardVehicles.stream() .filter(x -> Objects.equals(x.getMaximumSpeed(), sv.getMaximumSpeed())) diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java index bfea6111..2f1a6cd4 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java @@ -157,10 +157,10 @@ private static String gmlRoadTypeCode(final String roadTypeCode, final List Optional.ofNullable(e.getMaximumSpeed()).orElse(0) == 0); + final boolean allHaveMaxSpeed = vehicles.stream().filter(StandardVehicles.class::isInstance).map(StandardVehicles.class::cast) + .allMatch(e -> Optional.ofNullable(e.getMaximumSpeed()).orElse(0) > 0); - return !maxSpeedNotSet && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) ? RoadType.NON_URBAN_ROAD.name() : roadTypeCode; + return allHaveMaxSpeed && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) ? RoadType.NON_URBAN_ROAD.name() : roadTypeCode; } private static void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final SRM2Road returnSource) { diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/importer/ImaerImporter.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/importer/ImaerImporter.java index 7c2e195e..4da74633 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/importer/ImaerImporter.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/importer/ImaerImporter.java @@ -31,12 +31,12 @@ import org.slf4j.LoggerFactory; import nl.overheid.aerius.gml.GMLMetaDataReader; -import nl.overheid.aerius.gml.filter.ReceptorFilteringReader; import nl.overheid.aerius.gml.GMLReader; import nl.overheid.aerius.gml.GMLReaderFactory; import nl.overheid.aerius.gml.GMLValidator; import nl.overheid.aerius.gml.base.AeriusGMLVersion; import nl.overheid.aerius.gml.base.GMLHelper; +import nl.overheid.aerius.gml.filter.ReceptorFilteringReader; import nl.overheid.aerius.shared.domain.Theme; import nl.overheid.aerius.shared.domain.scenario.SituationType; import nl.overheid.aerius.shared.domain.v2.building.BuildingFeature; From 12b95cb2b5901cd61226093aa1431c2bdf616c7f Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Fri, 3 Apr 2026 17:22:15 +0200 Subject: [PATCH 3/4] Removed using NON_URBAN_ROAD in GML. Just use existing naming (NATIONAL/GENERAL) only. When importing always set a road speed for NON_URBAN_ROAD when road is 0 (or not set) to representative speeds. --- .../gml/base/source/road/GML2ADMSRoad.java | 5 - .../aerius/gml/base/source/road/GML2Road.java | 14 +- .../gml/base/source/road/GML2SRM1Road.java | 12 - .../gml/base/source/road/GML2SRM2Road.java | 12 - .../aerius/gml/v6_0/togml/Road2GML.java | 15 +- .../road_non_urban_national_v6_0.gml | 85 ------ .../gml/v6_0/roundtrip/road_empty.gml | 2 +- .../gml/v6_0/roundtrip/road_non_urban.gml | 2 +- .../roundtrip/road_non_urban_national.gml | 85 ------ .../scenario_composting_proposed.gml | 38 +-- .../scenario_composting_reference.gml | 38 +-- .../scenario_greenhouse_proposed.gml | 2 +- .../scenario_greenhouse_reference.gml | 4 +- .../scenario_livestock_farming_proposed.gml | 2 +- .../scenario_livestock_farming_reference.gml | 2 +- .../v6_0/roundtrip/scenario_powerplant.gml | 6 +- .../scenario_traffic_network_proposed.gml | 268 +++++++++--------- .../scenario_traffic_network_reference.gml | 248 ++++++++-------- 18 files changed, 310 insertions(+), 530 deletions(-) delete mode 100644 source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml delete mode 100644 source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java index 3f3d0950..2903c4f9 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2ADMSRoad.java @@ -46,11 +46,6 @@ protected ADMSRoadEmissionSource construct() { return new ADMSRoadEmissionSource(); } - @Override - protected String convertRoadTypeCode(final String roadTypeCode) { - return roadTypeCode; - } - @Override protected void setSpecificVariables(final T source, final ADMSRoadEmissionSource emissionSource) { emissionSource.setWidth(source.getWidth()); diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java index a2b589a1..e712f3c8 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java @@ -48,7 +48,7 @@ protected GML2Road(final GMLConversionData conversionData) { public S convert(final T source) throws AeriusException { final S emissionSource = construct(); final List mergingStandardVehicles = new ArrayList<>(); - final String roadTypeCode = convertRoadTypeCode(source.getRoadTypeCode()); + final String roadTypeCode = source.getRoadTypeCode(); for (final IsGmlProperty vp : source.getVehicles()) { addVehicleEmissions(source.getRoadTypeCode(), emissionSource.getSubSources(), source, vp, mergingStandardVehicles); @@ -67,14 +67,6 @@ public S convert(final T source) throws AeriusException { protected abstract S construct(); - /** - * Returns the internal representative road type code given the road type in the GML. - * - * @param roadTypeCode road type in the GML - * @return internally to be used road type code - */ - protected abstract String convertRoadTypeCode(String roadTypeCode); - protected abstract void setSpecificVariables(T source, S emissionSource); protected abstract void setOptionalVariables(T source, S emissionSource) throws AeriusException; @@ -114,8 +106,8 @@ private void addEmissionValues(final String gmlRoadTypeCode, final List= 80 km/h. Therefore 80 is set. GENERAL represented roads with average speed of 60 km/h. Therefore 60 is set. + * NATIONAL is representative for roads with speed >= 80 km/h. Therefore 80 is set. GENERAL represented roads with average speed of 60 km/h. + * Therefore 60 is set. * * @param gmlRoadTypeCode the road type code as set in the GML * @param maximumSpeed optional max speed set in the GML diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java index 0bb42fbb..7259abbb 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM1Road.java @@ -22,7 +22,6 @@ import nl.overheid.aerius.gml.base.GMLConversionData; import nl.overheid.aerius.gml.base.IsGmlProperty; import nl.overheid.aerius.shared.domain.v2.source.SRM1RoadEmissionSource; -import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM1LinearReference; import nl.overheid.aerius.shared.exception.AeriusException; import nl.overheid.aerius.shared.exception.ImaerExceptionReason; @@ -45,17 +44,6 @@ protected SRM1RoadEmissionSource construct() { return new SRM1RoadEmissionSource(); } - /** - * Returns the converted road type code set in the GML to the internal road type to use. - * In case of SRM1 roads and NON_URBAN_ROADS. It should always use NON_URBAN_ROAD_GENERAL. - */ - @Override - protected String convertRoadTypeCode(final String roadTypeCode) { - return roadTypeCode != null && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) - ? "NON_URBAN_ROAD_GENERAL" - : roadTypeCode; - } - @Override protected void setSpecificVariables(final IsGmlSRM1Road source, final SRM1RoadEmissionSource emissionSource) { // NO-OP for SRM1 diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java index ead318f8..1cb37a65 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2SRM2Road.java @@ -22,7 +22,6 @@ import nl.overheid.aerius.gml.base.GMLConversionData; import nl.overheid.aerius.gml.base.IsGmlProperty; import nl.overheid.aerius.shared.domain.v2.source.SRM2RoadEmissionSource; -import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2RoadSideBarrier; import nl.overheid.aerius.shared.exception.AeriusException; @@ -46,17 +45,6 @@ protected SRM2RoadEmissionSource construct() { return new SRM2RoadEmissionSource(); } - /** - * Returns the converted road type code set in the GML to the internal road type to use. - * In case of SRM2 roads and NON_URBAN_ROADS. It should always use NON_URBAN_ROAD_NATIONAL. - */ - @Override - protected String convertRoadTypeCode(final String roadTypeCode) { - return roadTypeCode != null && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) - ? "NON_URBAN_ROAD_NATIONAL" - : roadTypeCode; - } - @Override protected void setSpecificVariables(final T source, final SRM2RoadEmissionSource emissionSource) { // NO-OP diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java index 2f1a6cd4..e88d94f6 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/v6_0/togml/Road2GML.java @@ -18,7 +18,6 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; import java.util.stream.Collectors; import nl.overheid.aerius.gml.v6_0.source.TimeUnit; @@ -46,7 +45,6 @@ import nl.overheid.aerius.shared.domain.v2.source.road.ADMSRoadSideBarrierType; import nl.overheid.aerius.shared.domain.v2.source.road.CustomVehicles; import nl.overheid.aerius.shared.domain.v2.source.road.RoadElevation; -import nl.overheid.aerius.shared.domain.v2.source.road.RoadType; import nl.overheid.aerius.shared.domain.v2.source.road.SRM1LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2LinearReference; import nl.overheid.aerius.shared.domain.v2.source.road.SRM2RoadSideBarrier; @@ -149,18 +147,7 @@ private static void handleGenericProperties(final nl.overheid.aerius.shared.doma private static void handleRoadCodes(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final RoadEmissionSource returnSource) { returnSource.setRoadAreaCode(emissionSource.getRoadAreaCode()); - returnSource.setRoadTypeCode(gmlRoadTypeCode(emissionSource.getRoadTypeCode(), emissionSource.getSubSources())); - } - - private static String gmlRoadTypeCode(final String roadTypeCode, final List vehicles) { - // If there are standard vehicles with no speed set keep the original road type code for non urban roads. - // This to be backward compatible for when the code is used in combination with data not yet supporting non urban roads with max speed. - // Because if NON_URBAN_ROAD would be used in combination with no speed, it would mean it would be interpreted as having 0 speed, - // and it could mean using an invalid speed category because it would have been expected the speed to be 80 km/h. - final boolean allHaveMaxSpeed = vehicles.stream().filter(StandardVehicles.class::isInstance).map(StandardVehicles.class::cast) - .allMatch(e -> Optional.ofNullable(e.getMaximumSpeed()).orElse(0) > 0); - - return allHaveMaxSpeed && roadTypeCode.startsWith(RoadType.NON_URBAN_ROAD.name()) ? RoadType.NON_URBAN_ROAD.name() : roadTypeCode; + returnSource.setRoadTypeCode(emissionSource.getRoadTypeCode()); } private static void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final SRM2Road returnSource) { diff --git a/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml b/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml deleted file mode 100644 index 24bafbe3..00000000 --- a/source/imaer-gml/src/test/resources/gml/latest/roundtrip/road_non_urban_national_v6_0.gml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - 2030 - Situatie 1 - - - - - Situatie 1 - RzjbVuSNcncK - PROPOSED - - - - - DEV - 1.0-SNAPSHOT_20141002_990e21dea1 - - - - - - - - - NL.IMAER - ES.1 - - - Bron 1 - - - - - 0.0 - - - 2.5 - 0.0 - - - - - - - 128114.62 442318.8 128033.98 442170.96 - - - - - - - 24.525329736565443 - - - - - 95.61190577751265 - - - - - 13.553471696523006 - - - - - 19.73090437453009 - - - - - 15000.0 - DAY - 0.1 - - - NORMAL - - - diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml index e849f53b..2b621148 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_empty.gml @@ -94,7 +94,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml index 83d0aa94..1a233bb9 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban.gml @@ -24,7 +24,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml deleted file mode 100644 index 3c3e7616..00000000 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/road_non_urban_national.gml +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - 2030 - Situatie 1 - - - - - Situatie 1 - RzjbVuSNcncK - PROPOSED - - - - - DEV - 1.0-SNAPSHOT_20141002_990e21dea1 - - - - - - - - - NL.IMAER - ES.1 - - - Bron 1 - - - - - 0.0 - - - 2.5 - 0.0 - - - - - - - 128114.62 442318.8 128033.98 442170.96 - - - - - - - 24.525329736565443 - - - - - 95.61190577751265 - - - - - 13.553471696523006 - - - - - 19.73090437453009 - - - - - 15000.0 - DAY - 0.1 - - - NORMAL - - - diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml index ae2140e0..e5ab1019 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_proposed.gml @@ -383,7 +383,7 @@ - + NL.IMAER @@ -444,7 +444,7 @@ - + NL.IMAER @@ -505,7 +505,7 @@ - + NL.IMAER @@ -566,7 +566,7 @@ - + NL.IMAER @@ -627,7 +627,7 @@ - + NL.IMAER @@ -688,7 +688,7 @@ - + NL.IMAER @@ -749,7 +749,7 @@ - + NL.IMAER @@ -810,7 +810,7 @@ - + NL.IMAER @@ -871,7 +871,7 @@ - + NL.IMAER @@ -932,7 +932,7 @@ - + NL.IMAER @@ -993,7 +993,7 @@ - + NL.IMAER @@ -1054,7 +1054,7 @@ - + NL.IMAER @@ -1115,7 +1115,7 @@ - + NL.IMAER @@ -1176,7 +1176,7 @@ - + NL.IMAER @@ -1237,7 +1237,7 @@ - + NL.IMAER @@ -1306,7 +1306,7 @@ - + NL.IMAER @@ -1375,7 +1375,7 @@ - + NL.IMAER @@ -1436,7 +1436,7 @@ - + NL.IMAER @@ -1497,7 +1497,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml index 0e1beeb9..2d8daa85 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_composting_reference.gml @@ -383,7 +383,7 @@ - + NL.IMAER @@ -444,7 +444,7 @@ - + NL.IMAER @@ -505,7 +505,7 @@ - + NL.IMAER @@ -566,7 +566,7 @@ - + NL.IMAER @@ -627,7 +627,7 @@ - + NL.IMAER @@ -688,7 +688,7 @@ - + NL.IMAER @@ -749,7 +749,7 @@ - + NL.IMAER @@ -810,7 +810,7 @@ - + NL.IMAER @@ -871,7 +871,7 @@ - + NL.IMAER @@ -932,7 +932,7 @@ - + NL.IMAER @@ -993,7 +993,7 @@ - + NL.IMAER @@ -1054,7 +1054,7 @@ - + NL.IMAER @@ -1115,7 +1115,7 @@ - + NL.IMAER @@ -1176,7 +1176,7 @@ - + NL.IMAER @@ -1237,7 +1237,7 @@ - + NL.IMAER @@ -1306,7 +1306,7 @@ - + NL.IMAER @@ -1375,7 +1375,7 @@ - + NL.IMAER @@ -1436,7 +1436,7 @@ - + NL.IMAER @@ -1497,7 +1497,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml index 5473882c..921ccb70 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_proposed.gml @@ -471,7 +471,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml index 4152e2f0..0e4c7c83 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_greenhouse_reference.gml @@ -139,7 +139,7 @@ - + NL.IMAER @@ -336,7 +336,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml index 393b6a36..3b689f0a 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_proposed.gml @@ -261,7 +261,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml index 7155bc18..72e057c6 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_livestock_farming_reference.gml @@ -201,7 +201,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml index 28aca46a..83fd8294 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_powerplant.gml @@ -200,7 +200,7 @@ - + NL.IMAER @@ -340,7 +340,7 @@ - + NL.IMAER @@ -420,7 +420,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml index d6895f8e..26eb64a1 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_proposed.gml @@ -23,7 +23,7 @@ - + NL.IMAER @@ -108,7 +108,7 @@ - + NL.IMAER @@ -193,7 +193,7 @@ - + NL.IMAER @@ -278,7 +278,7 @@ - + NL.IMAER @@ -1539,7 +1539,7 @@ - + NL.IMAER @@ -2464,7 +2464,7 @@ - + NL.IMAER @@ -2549,7 +2549,7 @@ - + NL.IMAER @@ -2634,7 +2634,7 @@ - + NL.IMAER @@ -3055,7 +3055,7 @@ - + NL.IMAER @@ -3140,7 +3140,7 @@ - + NL.IMAER @@ -3225,7 +3225,7 @@ - + NL.IMAER @@ -3310,7 +3310,7 @@ - + NL.IMAER @@ -3395,7 +3395,7 @@ - + NL.IMAER @@ -3480,7 +3480,7 @@ - + NL.IMAER @@ -4573,7 +4573,7 @@ - + NL.IMAER @@ -5093,7 +5093,7 @@ - + NL.IMAER @@ -5178,7 +5178,7 @@ - + NL.IMAER @@ -5851,7 +5851,7 @@ - + NL.IMAER @@ -5936,7 +5936,7 @@ - + NL.IMAER @@ -6881,7 +6881,7 @@ - + NL.IMAER @@ -6966,7 +6966,7 @@ - + NL.IMAER @@ -7471,7 +7471,7 @@ - + NL.IMAER @@ -7556,7 +7556,7 @@ - + NL.IMAER @@ -7641,7 +7641,7 @@ - + NL.IMAER @@ -7726,7 +7726,7 @@ - + NL.IMAER @@ -8063,7 +8063,7 @@ - + NL.IMAER @@ -8736,7 +8736,7 @@ - + NL.IMAER @@ -8821,7 +8821,7 @@ - + NL.IMAER @@ -8906,7 +8906,7 @@ - + NL.IMAER @@ -8991,7 +8991,7 @@ - + NL.IMAER @@ -9076,7 +9076,7 @@ - + NL.IMAER @@ -9161,7 +9161,7 @@ - + NL.IMAER @@ -9246,7 +9246,7 @@ - + NL.IMAER @@ -9331,7 +9331,7 @@ - + NL.IMAER @@ -10088,7 +10088,7 @@ - + NL.IMAER @@ -10173,7 +10173,7 @@ - + NL.IMAER @@ -10258,7 +10258,7 @@ - + NL.IMAER @@ -10511,7 +10511,7 @@ - + NL.IMAER @@ -10596,7 +10596,7 @@ - + NL.IMAER @@ -10681,7 +10681,7 @@ - + NL.IMAER @@ -10766,7 +10766,7 @@ - + NL.IMAER @@ -10851,7 +10851,7 @@ - + NL.IMAER @@ -12033,7 +12033,7 @@ - + NL.IMAER @@ -12118,7 +12118,7 @@ - + NL.IMAER @@ -12539,7 +12539,7 @@ - + NL.IMAER @@ -12792,7 +12792,7 @@ - + NL.IMAER @@ -12877,7 +12877,7 @@ - + NL.IMAER @@ -15240,7 +15240,7 @@ - + NL.IMAER @@ -15324,7 +15324,7 @@ - + NL.IMAER @@ -15408,7 +15408,7 @@ - + NL.IMAER @@ -15492,7 +15492,7 @@ - + NL.IMAER @@ -15576,7 +15576,7 @@ - + NL.IMAER @@ -15660,7 +15660,7 @@ - + NL.IMAER @@ -17459,7 +17459,7 @@ - + NL.IMAER @@ -17544,7 +17544,7 @@ - + NL.IMAER @@ -17629,7 +17629,7 @@ - + NL.IMAER @@ -17714,7 +17714,7 @@ - + NL.IMAER @@ -17799,7 +17799,7 @@ - + NL.IMAER @@ -17884,7 +17884,7 @@ - + NL.IMAER @@ -17969,7 +17969,7 @@ - + NL.IMAER @@ -18642,7 +18642,7 @@ - + NL.IMAER @@ -22745,7 +22745,7 @@ - + NL.IMAER @@ -22830,7 +22830,7 @@ - + NL.IMAER @@ -24348,7 +24348,7 @@ - + NL.IMAER @@ -24433,7 +24433,7 @@ - + NL.IMAER @@ -24518,7 +24518,7 @@ - + NL.IMAER @@ -24603,7 +24603,7 @@ - + NL.IMAER @@ -24688,7 +24688,7 @@ - + NL.IMAER @@ -26117,7 +26117,7 @@ - + NL.IMAER @@ -26202,7 +26202,7 @@ - + NL.IMAER @@ -26287,7 +26287,7 @@ - + NL.IMAER @@ -26876,7 +26876,7 @@ - + NL.IMAER @@ -27213,7 +27213,7 @@ - + NL.IMAER @@ -27298,7 +27298,7 @@ - + NL.IMAER @@ -27645,7 +27645,7 @@ - + NL.IMAER @@ -27898,7 +27898,7 @@ - + NL.IMAER @@ -28580,7 +28580,7 @@ - + NL.IMAER @@ -28665,7 +28665,7 @@ - + NL.IMAER @@ -29442,7 +29442,7 @@ - + NL.IMAER @@ -29527,7 +29527,7 @@ - + NL.IMAER @@ -29612,7 +29612,7 @@ - + NL.IMAER @@ -29781,7 +29781,7 @@ - + NL.IMAER @@ -29866,7 +29866,7 @@ - + NL.IMAER @@ -29951,7 +29951,7 @@ - + NL.IMAER @@ -31588,7 +31588,7 @@ - + NL.IMAER @@ -31673,7 +31673,7 @@ - + NL.IMAER @@ -31758,7 +31758,7 @@ - + NL.IMAER @@ -31843,7 +31843,7 @@ - + NL.IMAER @@ -31928,7 +31928,7 @@ - + NL.IMAER @@ -32013,7 +32013,7 @@ - + NL.IMAER @@ -32098,7 +32098,7 @@ - + NL.IMAER @@ -34071,7 +34071,7 @@ - + NL.IMAER @@ -34156,7 +34156,7 @@ - + NL.IMAER @@ -34997,7 +34997,7 @@ - + NL.IMAER @@ -35873,7 +35873,7 @@ - + NL.IMAER @@ -35958,7 +35958,7 @@ - + NL.IMAER @@ -36043,7 +36043,7 @@ - + NL.IMAER @@ -36128,7 +36128,7 @@ - + NL.IMAER @@ -36465,7 +36465,7 @@ - + NL.IMAER @@ -37069,7 +37069,7 @@ - + NL.IMAER @@ -37154,7 +37154,7 @@ - + NL.IMAER @@ -37911,7 +37911,7 @@ - + NL.IMAER @@ -37996,7 +37996,7 @@ - + NL.IMAER @@ -38081,7 +38081,7 @@ - + NL.IMAER @@ -38784,7 +38784,7 @@ - + NL.IMAER @@ -40184,7 +40184,7 @@ - + NL.IMAER @@ -40353,7 +40353,7 @@ - + NL.IMAER @@ -40438,7 +40438,7 @@ - + NL.IMAER @@ -40523,7 +40523,7 @@ - + NL.IMAER @@ -40786,7 +40786,7 @@ - + NL.IMAER @@ -41222,7 +41222,7 @@ - + NL.IMAER @@ -41307,7 +41307,7 @@ - + NL.IMAER @@ -41392,7 +41392,7 @@ - + NL.IMAER @@ -41477,7 +41477,7 @@ - + NL.IMAER @@ -41562,7 +41562,7 @@ - + NL.IMAER @@ -41647,7 +41647,7 @@ - + NL.IMAER @@ -42088,7 +42088,7 @@ - + NL.IMAER @@ -42173,7 +42173,7 @@ - + NL.IMAER @@ -42258,7 +42258,7 @@ - + NL.IMAER @@ -42343,7 +42343,7 @@ - + NL.IMAER @@ -42428,7 +42428,7 @@ - + NL.IMAER @@ -42513,7 +42513,7 @@ - + NL.IMAER @@ -42598,7 +42598,7 @@ - + NL.IMAER @@ -43662,7 +43662,7 @@ - + NL.IMAER @@ -43747,7 +43747,7 @@ - + NL.IMAER @@ -43832,7 +43832,7 @@ - + NL.IMAER @@ -43917,7 +43917,7 @@ - + NL.IMAER @@ -52101,7 +52101,7 @@ - + NL.IMAER @@ -52186,7 +52186,7 @@ - + NL.IMAER @@ -52271,7 +52271,7 @@ - + NL.IMAER @@ -52356,7 +52356,7 @@ - + NL.IMAER @@ -53153,7 +53153,7 @@ - + NL.IMAER @@ -53238,7 +53238,7 @@ - + NL.IMAER @@ -53323,7 +53323,7 @@ - + NL.IMAER diff --git a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml index 4113e196..250f9b55 100644 --- a/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml +++ b/source/imaer-gml/src/test/resources/gml/v6_0/roundtrip/scenario_traffic_network_reference.gml @@ -4927,7 +4927,7 @@ - + NL.IMAER @@ -5852,7 +5852,7 @@ - + NL.IMAER @@ -5937,7 +5937,7 @@ - + NL.IMAER @@ -6022,7 +6022,7 @@ - + NL.IMAER @@ -6359,7 +6359,7 @@ - + NL.IMAER @@ -6444,7 +6444,7 @@ - + NL.IMAER @@ -6529,7 +6529,7 @@ - + NL.IMAER @@ -6782,7 +6782,7 @@ - + NL.IMAER @@ -6867,7 +6867,7 @@ - + NL.IMAER @@ -7288,7 +7288,7 @@ - + NL.IMAER @@ -7726,7 +7726,7 @@ - + NL.IMAER @@ -7811,7 +7811,7 @@ - + NL.IMAER @@ -7896,7 +7896,7 @@ - + NL.IMAER @@ -7981,7 +7981,7 @@ - + NL.IMAER @@ -8318,7 +8318,7 @@ - + NL.IMAER @@ -9471,7 +9471,7 @@ - + NL.IMAER @@ -9556,7 +9556,7 @@ - + NL.IMAER @@ -9641,7 +9641,7 @@ - + NL.IMAER @@ -9726,7 +9726,7 @@ - + NL.IMAER @@ -10801,7 +10801,7 @@ - + NL.IMAER @@ -10886,7 +10886,7 @@ - + NL.IMAER @@ -10971,7 +10971,7 @@ - + NL.IMAER @@ -11056,7 +11056,7 @@ - + NL.IMAER @@ -11141,7 +11141,7 @@ - + NL.IMAER @@ -11226,7 +11226,7 @@ - + NL.IMAER @@ -11311,7 +11311,7 @@ - + NL.IMAER @@ -11396,7 +11396,7 @@ - + NL.IMAER @@ -11481,7 +11481,7 @@ - + NL.IMAER @@ -11566,7 +11566,7 @@ - + NL.IMAER @@ -11651,7 +11651,7 @@ - + NL.IMAER @@ -12576,7 +12576,7 @@ - + NL.IMAER @@ -12661,7 +12661,7 @@ - + NL.IMAER @@ -13628,7 +13628,7 @@ - + NL.IMAER @@ -13713,7 +13713,7 @@ - + NL.IMAER @@ -13798,7 +13798,7 @@ - + NL.IMAER @@ -13883,7 +13883,7 @@ - + NL.IMAER @@ -13968,7 +13968,7 @@ - + NL.IMAER @@ -14053,7 +14053,7 @@ - + NL.IMAER @@ -14894,7 +14894,7 @@ - + NL.IMAER @@ -14979,7 +14979,7 @@ - + NL.IMAER @@ -15064,7 +15064,7 @@ - + NL.IMAER @@ -15149,7 +15149,7 @@ - + NL.IMAER @@ -15234,7 +15234,7 @@ - + NL.IMAER @@ -15403,7 +15403,7 @@ - + NL.IMAER @@ -15488,7 +15488,7 @@ - + NL.IMAER @@ -15573,7 +15573,7 @@ - + NL.IMAER @@ -15658,7 +15658,7 @@ - + NL.IMAER @@ -15743,7 +15743,7 @@ - + NL.IMAER @@ -16248,7 +16248,7 @@ - + NL.IMAER @@ -16333,7 +16333,7 @@ - + NL.IMAER @@ -16502,7 +16502,7 @@ - + NL.IMAER @@ -16587,7 +16587,7 @@ - + NL.IMAER @@ -16672,7 +16672,7 @@ - + NL.IMAER @@ -16757,7 +16757,7 @@ - + NL.IMAER @@ -16842,7 +16842,7 @@ - + NL.IMAER @@ -17263,7 +17263,7 @@ - + NL.IMAER @@ -17348,7 +17348,7 @@ - + NL.IMAER @@ -17517,7 +17517,7 @@ - + NL.IMAER @@ -17602,7 +17602,7 @@ - + NL.IMAER @@ -18275,7 +18275,7 @@ - + NL.IMAER @@ -18360,7 +18360,7 @@ - + NL.IMAER @@ -18445,7 +18445,7 @@ - + NL.IMAER @@ -18530,7 +18530,7 @@ - + NL.IMAER @@ -18615,7 +18615,7 @@ - + NL.IMAER @@ -20542,7 +20542,7 @@ - + NL.IMAER @@ -20627,7 +20627,7 @@ - + NL.IMAER @@ -20713,7 +20713,7 @@ - + NL.IMAER @@ -21399,7 +21399,7 @@ - + NL.IMAER @@ -21484,7 +21484,7 @@ - + NL.IMAER @@ -21569,7 +21569,7 @@ - + NL.IMAER @@ -22578,7 +22578,7 @@ - + NL.IMAER @@ -22663,7 +22663,7 @@ - + NL.IMAER @@ -23672,7 +23672,7 @@ - + NL.IMAER @@ -25101,7 +25101,7 @@ - + NL.IMAER @@ -25186,7 +25186,7 @@ - + NL.IMAER @@ -25271,7 +25271,7 @@ - + NL.IMAER @@ -26280,7 +26280,7 @@ - + NL.IMAER @@ -26365,7 +26365,7 @@ - + NL.IMAER @@ -26450,7 +26450,7 @@ - + NL.IMAER @@ -26535,7 +26535,7 @@ - + NL.IMAER @@ -29937,7 +29937,7 @@ - + NL.IMAER @@ -30022,7 +30022,7 @@ - + NL.IMAER @@ -30107,7 +30107,7 @@ - + NL.IMAER @@ -31200,7 +31200,7 @@ - + NL.IMAER @@ -31369,7 +31369,7 @@ - + NL.IMAER @@ -32803,7 +32803,7 @@ - + NL.IMAER @@ -32888,7 +32888,7 @@ - + NL.IMAER @@ -32973,7 +32973,7 @@ - + NL.IMAER @@ -34624,7 +34624,7 @@ - + NL.IMAER @@ -34709,7 +34709,7 @@ - + NL.IMAER @@ -38362,7 +38362,7 @@ - + NL.IMAER @@ -39455,7 +39455,7 @@ - + NL.IMAER @@ -39540,7 +39540,7 @@ - + NL.IMAER @@ -42237,7 +42237,7 @@ - + NL.IMAER @@ -43282,7 +43282,7 @@ - + NL.IMAER @@ -43367,7 +43367,7 @@ - + NL.IMAER @@ -43452,7 +43452,7 @@ - + NL.IMAER @@ -46899,7 +46899,7 @@ - + NL.IMAER @@ -46984,7 +46984,7 @@ - + NL.IMAER @@ -47069,7 +47069,7 @@ - + NL.IMAER @@ -50086,7 +50086,7 @@ - + NL.IMAER @@ -50423,7 +50423,7 @@ - + NL.IMAER @@ -52556,7 +52556,7 @@ - + NL.IMAER @@ -52641,7 +52641,7 @@ - + NL.IMAER @@ -52726,7 +52726,7 @@ - + NL.IMAER @@ -52811,7 +52811,7 @@ - + NL.IMAER @@ -52896,7 +52896,7 @@ - + NL.IMAER @@ -52981,7 +52981,7 @@ - + NL.IMAER @@ -53246,7 +53246,7 @@ - + NL.IMAER @@ -53331,7 +53331,7 @@ - + NL.IMAER @@ -53416,7 +53416,7 @@ - + NL.IMAER @@ -53501,7 +53501,7 @@ - + NL.IMAER @@ -53586,7 +53586,7 @@ - + NL.IMAER @@ -54116,7 +54116,7 @@ - + NL.IMAER @@ -54201,7 +54201,7 @@ - + NL.IMAER @@ -54286,7 +54286,7 @@ - + NL.IMAER @@ -54371,7 +54371,7 @@ - + NL.IMAER @@ -62199,7 +62199,7 @@ - + NL.IMAER @@ -62284,7 +62284,7 @@ - + NL.IMAER @@ -62369,7 +62369,7 @@ - + NL.IMAER @@ -62454,7 +62454,7 @@ - + NL.IMAER @@ -63518,7 +63518,7 @@ - + NL.IMAER @@ -63603,7 +63603,7 @@ - + NL.IMAER @@ -63688,7 +63688,7 @@ - + NL.IMAER From f0cb3dc7b096de96e15a98c93f583b7bc2791b50 Mon Sep 17 00:00:00 2001 From: Hilbrand Bouwkamp Date: Thu, 9 Apr 2026 18:00:52 +0200 Subject: [PATCH 4/4] Review comment --- .../java/nl/overheid/aerius/gml/base/source/road/GML2Road.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java index e712f3c8..3395d073 100644 --- a/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java +++ b/source/imaer-gml/src/main/java/nl/overheid/aerius/gml/base/source/road/GML2Road.java @@ -51,7 +51,7 @@ public S convert(final T source) throws AeriusException { final String roadTypeCode = source.getRoadTypeCode(); for (final IsGmlProperty vp : source.getVehicles()) { - addVehicleEmissions(source.getRoadTypeCode(), emissionSource.getSubSources(), source, vp, mergingStandardVehicles); + addVehicleEmissions(roadTypeCode, emissionSource.getSubSources(), source, vp, mergingStandardVehicles); } emissionSource.setTrafficDirection(source.getTrafficDirection()); emissionSource.setRoadManager(source.getRoadManager());