diff --git a/src/main/java/at/procon/eventhub/processing/dto/UnifiedRuntimeProcessingApiRequest.java b/src/main/java/at/procon/eventhub/processing/dto/UnifiedRuntimeProcessingApiRequest.java index 460f80c..6d4a725 100644 --- a/src/main/java/at/procon/eventhub/processing/dto/UnifiedRuntimeProcessingApiRequest.java +++ b/src/main/java/at/procon/eventhub/processing/dto/UnifiedRuntimeProcessingApiRequest.java @@ -3,7 +3,6 @@ package at.procon.eventhub.processing.dto; import at.procon.eventhub.processing.model.UnifiedEventSourceFamily; import at.procon.eventhub.processing.model.UnifiedRuntimeEventBackend; import at.procon.eventhub.processing.model.UnifiedRuntimeProcessingRequest; -import at.procon.eventhub.processing.model.UnifiedTachographSourceKind; import java.time.OffsetDateTime; import java.util.List; import java.util.Set; @@ -16,7 +15,7 @@ public record UnifiedRuntimeProcessingApiRequest( String tenantKey, Set sourceFamilies, UnifiedRuntimeEventBackend eventBackend, - Set tachographSourceKinds, + Set sourceKinds, String driverKey, Set driverKeys, Boolean includeAllDrivers, @@ -43,7 +42,7 @@ public record UnifiedRuntimeProcessingApiRequest( String tenantKey, Set sourceFamilies, UnifiedRuntimeEventBackend eventBackend, - Set tachographSourceKinds, + Set sourceKinds, String driverKey, Set driverKeys, Boolean includeAllDrivers, @@ -69,7 +68,7 @@ public record UnifiedRuntimeProcessingApiRequest( tenantKey, sourceFamilies, eventBackend, - tachographSourceKinds, + sourceKinds, driverKey, driverKeys, includeAllDrivers, @@ -99,7 +98,7 @@ public record UnifiedRuntimeProcessingApiRequest( tenantKey, sourceFamilies, eventBackend, - tachographSourceKinds, + sourceKinds, driverKey, driverKeys, includeAllDrivers != null && includeAllDrivers, diff --git a/src/main/java/at/procon/eventhub/processing/eventprocessing/plan/DriverWorkingTimeRuntimeProcessingPlan.java b/src/main/java/at/procon/eventhub/processing/eventprocessing/plan/DriverWorkingTimeRuntimeProcessingPlan.java index 333a506..c6bf811 100644 --- a/src/main/java/at/procon/eventhub/processing/eventprocessing/plan/DriverWorkingTimeRuntimeProcessingPlan.java +++ b/src/main/java/at/procon/eventhub/processing/eventprocessing/plan/DriverWorkingTimeRuntimeProcessingPlan.java @@ -388,7 +388,7 @@ public class DriverWorkingTimeRuntimeProcessingPlan implements RuntimeProcessing sourceSelection.tenantKey(), sourceSelection.sourceFamilies(), sourceSelection.eventBackend(), - sourceSelection.tachographSourceKinds(), + sourceSelection.sourceKinds(), sourceSelection.driverKey(), driverKeys, includeAllDrivers, diff --git a/src/main/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequest.java b/src/main/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequest.java index 303f8d6..a63919f 100644 --- a/src/main/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequest.java +++ b/src/main/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequest.java @@ -3,7 +3,6 @@ package at.procon.eventhub.processing.model; import at.procon.eventhub.reference.DriverCardNumberNormalizer; import java.time.OffsetDateTime; import java.util.ArrayList; -import java.util.Arrays; import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; @@ -17,7 +16,7 @@ public record UnifiedRuntimeProcessingRequest( String tenantKey, Set sourceFamilies, UnifiedRuntimeEventBackend eventBackend, - Set tachographSourceKinds, + Set sourceKinds, String driverKey, Set driverKeys, boolean includeAllDrivers, @@ -40,7 +39,7 @@ public record UnifiedRuntimeProcessingRequest( String tenantKey, Set sourceFamilies, UnifiedRuntimeEventBackend eventBackend, - Set tachographSourceKinds, + Set sourceKinds, String driverKey, Set driverKeys, boolean includeAllDrivers, @@ -62,7 +61,7 @@ public record UnifiedRuntimeProcessingRequest( tenantKey, sourceFamilies, eventBackend, - tachographSourceKinds, + sourceKinds, driverKey, driverKeys, includeAllDrivers, @@ -87,7 +86,7 @@ public record UnifiedRuntimeProcessingRequest( throw new IllegalArgumentException("sourceFamilies must not be empty"); } eventBackend = eventBackend == null ? UnifiedRuntimeEventBackend.SOURCE_DB : eventBackend; - tachographSourceKinds = normalizeTachographSourceKinds(tachographSourceKinds); + sourceKinds = normalizeSourceKinds(sourceKinds); sessionIds = normalizeSessionIds(sessionId, sessionIds); if (sessionId == null && !sessionIds.isEmpty()) { sessionId = sessionIds.get(0); @@ -448,7 +447,7 @@ public record UnifiedRuntimeProcessingRequest( tenantKey, Set.of(sourceInput.sourceFamily()), sourceInput.eventBackend(), - tachographSourceKinds, + sourceKinds, driverKey, driverKeys, includeAllDrivers, @@ -485,7 +484,7 @@ public record UnifiedRuntimeProcessingRequest( tenantKey, sourceFamilies, eventBackend, - tachographSourceKinds, + sourceKinds, value, Set.of(), false, @@ -507,21 +506,15 @@ public record UnifiedRuntimeProcessingRequest( return includeAllDrivers || driverKeys.size() > 1 || (driverKey == null && !driverKeys.isEmpty()); } - public boolean includesTachographSourceKind(String sourceKind) { + public boolean includesSourceKind(String sourceKind) { if (sourceKind == null || sourceKind.isBlank()) { return true; } - try { - return tachographSourceKinds.contains(UnifiedTachographSourceKind.valueOf(sourceKind.trim().toUpperCase())); - } catch (IllegalArgumentException ex) { - return false; - } + return sourceKinds.contains(sourceKind.trim().toUpperCase()); } - public List tachographSourceKindNames() { - return tachographSourceKinds.stream() - .map(UnifiedTachographSourceKind::name) - .toList(); + public List sourceKindNames() { + return sourceKinds.stream().toList(); } private static Set normalizeSourceFamilies( @@ -600,13 +593,20 @@ public record UnifiedRuntimeProcessingRequest( return Set.copyOf(normalized); } - private static Set normalizeTachographSourceKinds( - Set values + private static Set normalizeSourceKinds( + Set values ) { if (values == null || values.isEmpty()) { - return Set.copyOf(Arrays.asList(UnifiedTachographSourceKind.values())); + return Set.of("DRIVER_CARD", "VEHICLE_UNIT"); } - return Set.copyOf(values); + LinkedHashSet normalized = new LinkedHashSet<>(); + for (String value : values) { + String normalizedValue = normalizeUpper(value); + if (normalizedValue != null) { + normalized.add(normalizedValue); + } + } + return normalized.isEmpty() ? Set.of("DRIVER_CARD", "VEHICLE_UNIT") : Set.copyOf(normalized); } private static boolean isExternalDbFamily(UnifiedEventSourceFamily family) { diff --git a/src/main/java/at/procon/eventhub/processing/model/UnifiedTachographSourceKind.java b/src/main/java/at/procon/eventhub/processing/model/UnifiedTachographSourceKind.java deleted file mode 100644 index b52225e..0000000 --- a/src/main/java/at/procon/eventhub/processing/model/UnifiedTachographSourceKind.java +++ /dev/null @@ -1,6 +0,0 @@ -package at.procon.eventhub.processing.model; - -public enum UnifiedTachographSourceKind { - DRIVER_CARD, - VEHICLE_UNIT -} diff --git a/src/main/java/at/procon/eventhub/processing/service/EventHubRuntimeEventLoader.java b/src/main/java/at/procon/eventhub/processing/service/EventHubRuntimeEventLoader.java index 57649b7..9536ac1 100644 --- a/src/main/java/at/procon/eventhub/processing/service/EventHubRuntimeEventLoader.java +++ b/src/main/java/at/procon/eventhub/processing/service/EventHubRuntimeEventLoader.java @@ -71,7 +71,7 @@ public class EventHubRuntimeEventLoader implements RuntimeDriverEventLoader, Run request.driverCardNumber(), request.occurredFrom(), request.occurredTo(), - request.tachographSourceKindNames(), + request.sourceKindNames(), request.includeIntersectingIntervals() ); case YELLOWFOX_DB -> UnifiedDriverEventsRequest.forYellowFoxDbDriver( @@ -100,7 +100,7 @@ public class EventHubRuntimeEventLoader implements RuntimeDriverEventLoader, Run vehicleRef.registrationNumber(), request.vehicleOccurredFrom(), request.vehicleOccurredTo(), - request.tachographSourceKindNames(), + request.sourceKindNames(), request.includeIntersectingIntervals() ); case YELLOWFOX_DB -> UnifiedVehicleEventsRequest.forYellowFoxDb( diff --git a/src/main/java/at/procon/eventhub/processing/service/TachographDbRuntimeEventLoader.java b/src/main/java/at/procon/eventhub/processing/service/TachographDbRuntimeEventLoader.java index 22bee72..a30c7af 100644 --- a/src/main/java/at/procon/eventhub/processing/service/TachographDbRuntimeEventLoader.java +++ b/src/main/java/at/procon/eventhub/processing/service/TachographDbRuntimeEventLoader.java @@ -121,7 +121,7 @@ public class TachographDbRuntimeEventLoader implements RuntimeDriverEventLoader, ) { return definitionRegistry.definitions().stream() .filter(definition -> !"VEHICLE".equals(definition.entityAxis())) - .filter(definition -> request.includesTachographSourceKind(definition.sourceKind())) + .filter(definition -> request.includesSourceKind(definition.sourceKind())) .toList(); } @@ -130,7 +130,7 @@ public class TachographDbRuntimeEventLoader implements RuntimeDriverEventLoader, ) { return definitionRegistry.definitions().stream() .filter(definition -> !"DRIVER".equals(definition.entityAxis())) - .filter(definition -> request.includesTachographSourceKind(definition.sourceKind())) + .filter(definition -> request.includesSourceKind(definition.sourceKind())) .toList(); } diff --git a/src/test/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequestTest.java b/src/test/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequestTest.java index 3d7dde8..eba013b 100644 --- a/src/test/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequestTest.java +++ b/src/test/java/at/procon/eventhub/processing/model/UnifiedRuntimeProcessingRequestTest.java @@ -67,12 +67,12 @@ class UnifiedRuntimeProcessingRequestTest { OffsetDateTime.parse("2026-05-02T00:00:00Z") ); - assertThat(defaultRequest.tachographSourceKinds()).containsExactlyInAnyOrder( - UnifiedTachographSourceKind.DRIVER_CARD, - UnifiedTachographSourceKind.VEHICLE_UNIT + assertThat(defaultRequest.sourceKinds()).containsExactlyInAnyOrder( + "DRIVER_CARD", + "VEHICLE_UNIT" ); - assertThat(defaultRequest.includesTachographSourceKind("DRIVER_CARD")).isTrue(); - assertThat(defaultRequest.includesTachographSourceKind("VEHICLE_UNIT")).isTrue(); + assertThat(defaultRequest.includesSourceKind("DRIVER_CARD")).isTrue(); + assertThat(defaultRequest.includesSourceKind("VEHICLE_UNIT")).isTrue(); UnifiedRuntimeProcessingRequest driverCardOnlyRequest = new UnifiedRuntimeProcessingRequest( null, @@ -81,7 +81,7 @@ class UnifiedRuntimeProcessingRequestTest { "default", Set.of(UnifiedEventSourceFamily.TACHOGRAPH_DB), UnifiedRuntimeEventBackend.SOURCE_DB, - Set.of(UnifiedTachographSourceKind.DRIVER_CARD), + Set.of("DRIVER_CARD"), null, Set.of(), false, @@ -97,9 +97,9 @@ class UnifiedRuntimeProcessingRequestTest { true ); - assertThat(driverCardOnlyRequest.tachographSourceKinds()).containsExactly(UnifiedTachographSourceKind.DRIVER_CARD); - assertThat(driverCardOnlyRequest.includesTachographSourceKind("DRIVER_CARD")).isTrue(); - assertThat(driverCardOnlyRequest.includesTachographSourceKind("VEHICLE_UNIT")).isFalse(); + assertThat(driverCardOnlyRequest.sourceKinds()).containsExactly("DRIVER_CARD"); + assertThat(driverCardOnlyRequest.includesSourceKind("DRIVER_CARD")).isTrue(); + assertThat(driverCardOnlyRequest.includesSourceKind("VEHICLE_UNIT")).isFalse(); } @Test