diff options
author | Iván Ávalos <avalos@disroot.org> | 2024-04-10 15:29:47 -0600 |
---|---|---|
committer | Iván Ávalos <avalos@disroot.org> | 2024-04-10 15:29:47 -0600 |
commit | e8456ae8ec5960b2119b7cdbcffac6d9ff004c95 (patch) | |
tree | ed5dfe5ff3b9e3491adf15b2abe83e13e2ccb6c0 /src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java | |
parent | 4dec2ef603f078ff3bd18d63d1fbd992537cbb88 (diff) | |
parent | 9a285e59e580994dc9c3f80935f766f3dafdcd46 (diff) | |
download | trackermap-server-e8456ae8ec5960b2119b7cdbcffac6d9ff004c95.tar.gz trackermap-server-e8456ae8ec5960b2119b7cdbcffac6d9ff004c95.tar.bz2 trackermap-server-e8456ae8ec5960b2119b7cdbcffac6d9ff004c95.zip |
Merge tag 'v6.0'
Diffstat (limited to 'src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java')
-rw-r--r-- | src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java b/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java index 2fa2e8869..573ad4ad6 100644 --- a/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java +++ b/src/main/java/org/traccar/handler/events/MaintenanceEventHandler.java @@ -16,20 +16,12 @@ */ package org.traccar.handler.events; -import java.util.HashMap; -import java.util.Map; - -import io.netty.channel.ChannelHandler; +import jakarta.inject.Inject; import org.traccar.model.Event; import org.traccar.model.Maintenance; import org.traccar.model.Position; import org.traccar.session.cache.CacheManager; -import jakarta.inject.Inject; -import jakarta.inject.Singleton; - -@Singleton -@ChannelHandler.Sharable public class MaintenanceEventHandler extends BaseEventHandler { private final CacheManager cacheManager; @@ -40,13 +32,12 @@ public class MaintenanceEventHandler extends BaseEventHandler { } @Override - protected Map<Event, Position> analyzePosition(Position position) { + public void analyzePosition(Position position, Callback callback) { Position lastPosition = cacheManager.getPosition(position.getDeviceId()); if (lastPosition == null || position.getFixTime().compareTo(lastPosition.getFixTime()) < 0) { - return null; + return; } - Map<Event, Position> events = new HashMap<>(); for (Maintenance maintenance : cacheManager.getDeviceObjects(position.getDeviceId(), Maintenance.class)) { if (maintenance.getPeriod() != 0) { double oldValue = getValue(lastPosition, maintenance.getType()); @@ -58,13 +49,11 @@ public class MaintenanceEventHandler extends BaseEventHandler { Event event = new Event(Event.TYPE_MAINTENANCE, position); event.setMaintenanceId(maintenance.getId()); event.set(maintenance.getType(), newValue); - events.put(event, position); + callback.eventDetected(event); } } } } - - return events; } private double getValue(Position position, String type) { |