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..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,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 = 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); @@ -69,25 +71,27 @@ public S convert(final T source) throws AeriusException { 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 +104,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. + * 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/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..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 @@ -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; @@ -45,9 +46,13 @@ protected SRM1RoadEmissionSource construct() { } @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()); + protected String convertRoadTypeCode(final IsGmlSRM1Road source, final RoadType roadType) { + return source.getSpeedProfile().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 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..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 @@ -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; @@ -48,8 +49,13 @@ protected SRM2RoadEmissionSource construct() { } @Override - protected void setSpecificVariables(final T source, final SRM2RoadEmissionSource emissionSource) { - // NO-OP + protected String convertRoadTypeCode(final T source, 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 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..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 @@ -57,17 +57,15 @@ 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(source, 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); setOptionalVariables(source, emissionSource); @@ -76,15 +74,17 @@ public S convert(final T source) throws AeriusException { protected abstract S construct(); - protected abstract void setSpecificVariables(T source, S emissionSource); + protected abstract String convertRoadTypeCode(T source, RoadType roadType); + + protected abstract Integer getMaximumSpeed(final RoadType roadType, final Integer maximumSpeed); 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) { @@ -92,14 +92,14 @@ protected void addVehicleEmissions(final List addToVehicles, final T s } else { throw new IllegalArgumentException("Instance not supported:" + av.getClass().getCanonicalName()); } - } - 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); 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..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 @@ -76,7 +76,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 +92,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 +107,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 +120,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 +137,35 @@ 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()); } - private void handleTunnel(final nl.overheid.aerius.shared.domain.v2.source.RoadEmissionSource emissionSource, final SRM2Road returnSource) { + 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 +173,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 +182,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 +190,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 +199,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 +213,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 +224,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 +252,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 +261,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 +270,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 +281,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 +302,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 +314,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/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; 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..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 @@ -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..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 @@ -77,6 +77,7 @@ 15000.0 DAY 0.1 + 80 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..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 @@ -436,6 +436,7 @@ 422.0 DAY 0.0 + 80 BOTH @@ -496,6 +497,7 @@ 818.0 DAY 0.0 + 80 BOTH @@ -556,6 +558,7 @@ 236.0 DAY 0.0 + 80 BOTH @@ -616,6 +619,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -676,6 +680,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -736,6 +741,7 @@ 490.0 DAY 0.0 + 80 BOTH @@ -796,6 +802,7 @@ 328.0 DAY 0.0 + 80 BOTH @@ -856,6 +863,7 @@ 162.0 DAY 0.0 + 80 BOTH @@ -916,6 +924,7 @@ 46.0 DAY 0.0 + 80 BOTH @@ -976,6 +985,7 @@ 376.0 DAY 0.0 + 80 BOTH @@ -1036,6 +1046,7 @@ 140.0 DAY 0.0 + 80 BOTH @@ -1096,6 +1107,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1156,6 +1168,7 @@ 56.0 DAY 0.0 + 80 BOTH @@ -1216,6 +1229,7 @@ 23.0 DAY 0.0 + 80 BOTH @@ -1276,6 +1290,7 @@ 310.0 DAY 0.0 + 80 @@ -1283,6 +1298,7 @@ 6.0 DAY 0.0 + 80 BOTH @@ -1343,6 +1359,7 @@ 929.0 DAY 0.0 + 80 @@ -1350,6 +1367,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1410,6 +1428,7 @@ 66.0 DAY 0.0 + 80 BOTH @@ -1470,6 +1489,7 @@ 2.0 DAY 0.0 + 80 BOTH @@ -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..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 @@ -436,6 +436,7 @@ 422.0 DAY 0.0 + 80 BOTH @@ -496,6 +497,7 @@ 818.0 DAY 0.0 + 80 BOTH @@ -556,6 +558,7 @@ 236.0 DAY 0.0 + 80 BOTH @@ -616,6 +619,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -676,6 +680,7 @@ 9.0 DAY 0.0 + 80 BOTH @@ -736,6 +741,7 @@ 490.0 DAY 0.0 + 80 BOTH @@ -796,6 +802,7 @@ 328.0 DAY 0.0 + 80 BOTH @@ -856,6 +863,7 @@ 162.0 DAY 0.0 + 80 BOTH @@ -916,6 +924,7 @@ 46.0 DAY 0.0 + 80 BOTH @@ -976,6 +985,7 @@ 376.0 DAY 0.0 + 80 BOTH @@ -1036,6 +1046,7 @@ 140.0 DAY 0.0 + 80 BOTH @@ -1096,6 +1107,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1156,6 +1168,7 @@ 56.0 DAY 0.0 + 80 BOTH @@ -1216,6 +1229,7 @@ 23.0 DAY 0.0 + 80 BOTH @@ -1276,6 +1290,7 @@ 310.0 DAY 0.0 + 80 @@ -1283,6 +1298,7 @@ 6.0 DAY 0.0 + 80 BOTH @@ -1343,6 +1359,7 @@ 929.0 DAY 0.0 + 80 @@ -1350,6 +1367,7 @@ 18.0 DAY 0.0 + 80 BOTH @@ -1410,6 +1428,7 @@ 66.0 DAY 0.0 + 80 BOTH @@ -1470,6 +1489,7 @@ 2.0 DAY 0.0 + 80 BOTH @@ -1530,6 +1550,7 @@ 16.0 DAY 0.0 + 80 BOTH 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;