diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java index 71e3d15de05..ef99799abfa 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/regatta/tracking/analyzing/impl/RegattaLogDeviceMappingFinder.java @@ -48,9 +48,9 @@ public abstract class RegattaLogDeviceMappingFinder extend } protected DeviceMapping createMapping(DeviceIdentifier device, ItemT item, - TimePoint from, TimePoint to, Serializable originalEventId) { + TimePoint from, TimePoint to, Serializable originalEventId, Class type) { return new DeviceMappingImpl(item, device, new TimeRangeImpl(from, to), - Collections.singletonList(originalEventId)); + Collections.singletonList(originalEventId), type); } private List> getMappingEventsForItem(Map>> map, ItemT item) { @@ -103,7 +103,7 @@ public abstract class RegattaLogDeviceMappingFinder extend if (to == null) { to = closingTimePoint; } - result.add(createMapping(event.getDevice(), item, from, to, event.getId())); + result.add(createMapping(event.getDevice(), item, from, to, event.getId(), event.getClass())); } return result; } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java index 6a2fd5f831d..f32a7eb04ed 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/DeviceMapping.java @@ -25,4 +25,7 @@ public interface DeviceMapping extends Timed { DeviceIdentifier getDevice(); TimeRange getTimeRange(); + + Class getEventType(); + } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java index c97d346d67b..8034c1e4e8f 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelogtracking/impl/DeviceMappingImpl.java @@ -19,20 +19,24 @@ public class DeviceMappingImpl implements DeviceMapping private final DeviceIdentifier device; private final TimeRange timeRange; private final List originalRaceLogEventIds = new ArrayList(); - - public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange) { + private final Class eventType; + + public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange, Class eventType) { this.mappedTo = mappedTo; this.device = device; this.timeRange = timeRange; + this.eventType = eventType; } - public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange, Serializable originalRaceLogEventId) { - this(mappedTo, device, timeRange); + public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange, + Serializable originalRaceLogEventId, Class eventType) { + this(mappedTo, device, timeRange, eventType); if (originalRaceLogEventId != null) originalRaceLogEventIds.add(originalRaceLogEventId); } - public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange, List originalRaceLogEventIds) { - this(mappedTo, device, timeRange); + public DeviceMappingImpl(ItemType mappedTo, DeviceIdentifier device, TimeRange timeRange, + List originalRaceLogEventIds, Class eventType) { + this(mappedTo, device, timeRange, eventType); if (originalRaceLogEventIds != null) this.originalRaceLogEventIds.addAll(originalRaceLogEventIds); } @@ -56,9 +60,14 @@ public class DeviceMappingImpl implements DeviceMapping return timeRange.from(); } + @Override + public Class getEventType() { + return eventType; + } + public static DeviceMapping convertToDeviceMapping(RegattaLogDeviceMappingEvent event) { return new DeviceMappingImpl(event.getMappedTo(), event.getDevice(), new TimeRangeImpl(event.getFrom(), event.getTo()), - event.getId()); + event.getId(), event.getClass()); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java index 4a75185a9ef..7adaf903731 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/masterdataimport/TopLevelMasterData.java @@ -141,7 +141,7 @@ public class TopLevelMasterData implements Serializable { } DeviceIdentifier device = mappingEvent.getDevice(); gpsFixStore.loadTrack(track, new DeviceMappingImpl(mappingEvent.getMappedTo(), device, - new TimeRangeImpl(mappingEvent.getFrom(), mappingEvent.getTo()))); + new TimeRangeImpl(mappingEvent.getFrom(), mappingEvent.getTo()), mappingEvent.getClass())); if (!relevantFixes.containsKey(device)) { relevantFixes.put(device, new HashSet<>()); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index f7553bbd6d0..ab1495829ea 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -5460,11 +5460,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S if (dto.mappedTo instanceof MarkDTO) { Mark mark = convertToMark(((MarkDTO) dto.mappedTo), true); //expect UUIDs - return new DeviceMappingImpl(mark, device, timeRange, dto.originalRaceLogEventIds); + return new DeviceMappingImpl(mark, device, timeRange, dto.originalRaceLogEventIds, RegattaLogDeviceMarkMappingEventImpl.class); } else if (dto.mappedTo instanceof CompetitorDTO) { Competitor competitor = getService().getCompetitorStore().getExistingCompetitorByIdAsString( ((CompetitorDTO) dto.mappedTo).getIdAsString()); - return new DeviceMappingImpl(competitor, device, timeRange, dto.originalRaceLogEventIds); + return new DeviceMappingImpl(competitor, device, timeRange, dto.originalRaceLogEventIds, RegattaLogDeviceCompetitorMappingEventImpl.class); } else { throw new RuntimeException("Can only map devices to competitors or marks"); }