Remove RaceLogCloseOpenEndedDeviceMappingEvent

This commit is contained in:
Jan Broß committed 2015-12-10 15:23:38 +01:00
1 parent b8dcab588b
commit d456eecfb2
23 files changed
+71 -340

No files matched your search

@@ -1,11 +0,0 @@
package com.sap.sailing.domain.common;
public class RaceLogEventNotFoundException extends Exception {
private static final long serialVersionUID = 4595827888350748956L;
public RaceLogEventNotFoundException() {}
public RaceLogEventNotFoundException(String message) {
super(message);
}
}
@@ -0,0 +1,13 @@
package com.sap.sailing.domain.common;
import java.io.Serializable;
public class UnableToCloseDeviceMappingException extends Exception implements Serializable{
private static final long serialVersionUID = 4595827888350748956L;
public UnableToCloseDeviceMappingException() {}
public UnableToCloseDeviceMappingException(String message) {
super(message);
}
}
@@ -1374,8 +1374,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
return loadRaceLogRevokeEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject);
} else if (eventClass.equals(RaceLogRegisterCompetitorEvent.class.getSimpleName())) {
return loadRaceLogRegisterCompetitorEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject);
} else if (eventClass.equals(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName())) {
return loadRaceLogCloseOpenEndedDeviceMappingEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject);
} else if (eventClass.equals(RaceLogAdditionalScoringInformationEvent.class.getSimpleName())) {
return loadRaceLogAdditionalScoringInformationEvent(createdAt, author, logicalTimePoint, id, passId, competitors, dbObject);
} else if (eventClass.equals(RaceLogFixedMarkPassingEvent.class.getSimpleName())){
@@ -1467,15 +1465,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
return new RaceLogRegisterCompetitorEventImpl(createdAt, logicalTimePoint, author, id, passId, comp);
}
@SuppressWarnings("deprecation")
private RaceLogEvent loadRaceLogCloseOpenEndedDeviceMappingEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable id, Integer passId, List<Competitor> competitors, DBObject dbObject) {
Serializable deviceMappingEventId = Helpers.tryUuidConversion((Serializable) dbObject.get(FieldNames.RACE_LOG_DEVICE_MAPPING_EVENT_ID.name()));
TimePoint closingTimePoint = loadTimePoint(dbObject, FieldNames.RACE_LOG_CLOSING_TIMEPOINT);
return new com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl(createdAt, logicalTimePoint, author, id, passId,
deviceMappingEventId, closingTimePoint);
}
private RaceLogEvent loadRaceLogAdditionalScoringInformationEvent(TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint,
Serializable id, Integer passId, List<Competitor> competitors, DBObject dbObject) {
Object additionalScoringInformationTypeInfo = dbObject.get(FieldNames.RACE_LOG_ADDITIONAL_SCORING_INFORMATION_TYPE.name());
@@ -886,15 +886,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogRegisterCompetitorEvent(event));
return result;
}
@SuppressWarnings("deprecation")
public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
BasicDBObject result = new BasicDBObject();
storeRaceLogIdentifier(raceLogIdentifier, result);
result.put(FieldNames.RACE_LOG_EVENT.name(), storeRaceLogCloseOpenEndedDeviceMappingEvent(event));
return result;
}
public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogEndOfTrackingEvent event) {
BasicDBObject result = new BasicDBObject();
storeRaceLogIdentifier(raceLogIdentifier, result);
@@ -1054,16 +1046,6 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
return result;
}
@SuppressWarnings("deprecation")
private Object storeRaceLogCloseOpenEndedDeviceMappingEvent(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
DBObject result = new BasicDBObject();
storeRaceLogEventProperties(event, result);
result.put(FieldNames.RACE_LOG_EVENT_CLASS.name(), com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName());
result.put(FieldNames.RACE_LOG_DEVICE_MAPPING_EVENT_ID.name(), event.getDeviceMappingEventId());
storeTimePoint(event.getClosingTimePoint(), result, FieldNames.RACE_LOG_CLOSING_TIMEPOINT);
return result;
}
public DBObject storeRaceLogEntry(RaceLogIdentifier raceLogIdentifier, RaceLogUseCompetitorsFromRaceLogEvent event) {
DBObject result = new BasicDBObject();
storeRaceLogEventProperties(event, result);
@@ -159,13 +159,6 @@ public class MongoRaceLogStoreVisitor implements RaceLogEventVisitor {
DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event);
mongoObjectFactory.storeRaceLogEventEvent(object);
}
@SuppressWarnings("deprecation")
@Override
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
DBObject object = mongoObjectFactory.storeRaceLogEntry(raceLogIdentifier, event);
mongoObjectFactory.storeRaceLogEventEvent(object);
}
@Override
public void visit(RaceLogAdditionalScoringInformationEvent event) {
@@ -0,0 +1,29 @@
package com.sap.sailing.domain.regattalog.tracking.analyzing.test;
import org.junit.Before;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogImpl;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public abstract class AbstractRegattaLogTrackingTest {
protected RegattaLog log;
protected final AbstractLogEventAuthor author = new LogEventAuthorImpl("author0", 0);
protected final AbstractLogEventAuthor author1 = new LogEventAuthorImpl("author1", 1);
protected final TimePoint now = MillisecondsTimePoint.now();
public AbstractRegattaLogTrackingTest() {
super();
}
@Before
public void setup() {
log = new RegattaLogImpl("log");
}
}
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.racelog.tracking.analyzing.test;
package com.sap.sailing.domain.regattalog.tracking.analyzing.test;
import static org.junit.Assert.assertEquals;
@@ -11,9 +11,9 @@ import junit.framework.Assert;
import org.junit.Test;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDeviceCompetitorMappingEventImpl;
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
import com.sap.sailing.domain.abstractlog.shared.analyzing.DeviceCompetitorMappingFinder;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.impl.CompetitorImpl;
@@ -23,8 +23,7 @@ import com.sap.sailing.domain.racelogtracking.DeviceMapping;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
@SuppressWarnings("deprecation")
public class DeviceMappingFinderTest extends AbstractRaceLogTrackingTest {
public class DeviceMappingFinderTest extends AbstractRegattaLogTrackingTest {
private final Competitor competitor = new CompetitorImpl("comp", "Comp", null, null, null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null);
private final Competitor competitor2 = new CompetitorImpl("comp2", "Comp2", null, null, null, null, null, /* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null);
private final DeviceIdentifier device = new SmartphoneImeiIdentifier("imei");
@@ -44,14 +43,14 @@ public class DeviceMappingFinderTest extends AbstractRaceLogTrackingTest {
}
private Serializable addMapping(AbstractLogEventAuthor author, DeviceIdentifier device, Long from, Long to, Competitor item) {
RaceLogEvent mapping = new RaceLogDeviceCompetitorMappingEventImpl(t(), t(), author, UUID.randomUUID(), 0, item, device,
RegattaLogEvent mapping = new RegattaLogDeviceCompetitorMappingEventImpl(t(), t(), author, UUID.randomUUID(), item, device,
t(from), t(to));
log.add(mapping);
return mapping.getId();
}
private void closeMapping(AbstractLogEventAuthor author, DeviceIdentifier device, Serializable mappingId, long millis) {
RaceLogEvent mapping = new RaceLogCloseOpenEndedDeviceMappingEventImpl(t(), t(), author, UUID.randomUUID(), 0, mappingId,
RegattaLogEvent mapping = new RegattaLogCloseOpenEndedDeviceMappingEventImpl(t(), author, t(), UUID.randomUUID(), mappingId,
new MillisecondsTimePoint(millis));
log.add(mapping);
}
@@ -47,9 +47,6 @@ public interface RaceLogEventVisitor {
public void visit(RaceLogStartTrackingEvent event);
public void visit(RaceLogRegisterCompetitorEvent event);
@SuppressWarnings("deprecation")
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event);
public void visit(RaceLogAdditionalScoringInformationEvent additionalScoringInformation);
@@ -121,12 +121,6 @@ public abstract class AbstractRaceLogChangedVisitor implements RaceLogEventVisit
notifyListenerAboutEventAdded(event);
}
@SuppressWarnings("deprecation")
@Override
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
notifyListenerAboutEventAdded(event);
}
@Override
public void visit(RaceLogAdditionalScoringInformationEvent additionalScoringInformation) {
notifyListenerAboutEventAdded(additionalScoringInformation);
@@ -126,12 +126,6 @@ public abstract class BaseRaceLogEventVisitor implements RaceLogEventVisitor {
@Override
public void visit(RaceLogRegisterCompetitorEvent event) {
}
@SuppressWarnings("deprecation")
@Override
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
}
@Override
@@ -1,11 +0,0 @@
package com.sap.sailing.domain.abstractlog.race.tracking;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.shared.events.CloseOpenEndedDeviceMappingEvent;
@Deprecated //bug2851
public interface RaceLogCloseOpenEndedDeviceMappingEvent extends RaceLogEvent,
CloseOpenEndedDeviceMappingEvent<RaceLogEventVisitor> {
}
@@ -1,31 +0,0 @@
package com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl;
import java.io.Serializable;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLog;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.abstractlog.shared.analyzing.OpenEndedDeviceMappingCloser;
import com.sap.sailing.domain.racelogtracking.DeviceMapping;
import com.sap.sse.common.TimePoint;
@Deprecated //bug2851
public class RaceLogOpenEndedDeviceMappingCloser extends
OpenEndedDeviceMappingCloser<RaceLog, RaceLogEvent, RaceLogEventVisitor, RaceLogCloseOpenEndedDeviceMappingEvent> {
public RaceLogOpenEndedDeviceMappingCloser(RaceLog log, DeviceMapping<?> mapping, AbstractLogEventAuthor author,
TimePoint closingTimePoint) {
super(log, mapping, author, closingTimePoint);
}
@Override
protected RaceLogCloseOpenEndedDeviceMappingEvent createCloseEvent(TimePoint logicalTimePoint,
Serializable eventToCloseId) {
return new RaceLogCloseOpenEndedDeviceMappingEventImpl(
logicalTimePoint, author, getLog().getCurrentPassId(), eventToCloseId, closingTimePoint);
}
}
@@ -1,53 +0,0 @@
package com.sap.sailing.domain.abstractlog.race.tracking.impl;
import java.io.Serializable;
import java.util.List;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventData;
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogEventDataImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.abstractlog.shared.events.impl.BaseCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sse.common.TimePoint;
@Deprecated //bug2851
public class RaceLogCloseOpenEndedDeviceMappingEventImpl extends
BaseCloseOpenEndedDeviceMappingEventImpl<RaceLogEventVisitor> implements
RaceLogCloseOpenEndedDeviceMappingEvent {
private static final long serialVersionUID = -5114645637316367845L;
private final RaceLogEventData raceLogEventData;
public RaceLogCloseOpenEndedDeviceMappingEventImpl(TimePoint createdAt, TimePoint logicalTimePoint,
AbstractLogEventAuthor author, Serializable id, int passId, Serializable deviceMappingEventId,
TimePoint closingTimePoint) {
super(createdAt, logicalTimePoint, author, id, deviceMappingEventId, closingTimePoint);
this.raceLogEventData = new RaceLogEventDataImpl(null, passId);
}
public RaceLogCloseOpenEndedDeviceMappingEventImpl(TimePoint logicalTimePoint, AbstractLogEventAuthor author,
int passId, Serializable deviceMappingEventId, TimePoint closingTimePoint) {
this(now(), logicalTimePoint, author, randId(), passId, deviceMappingEventId, closingTimePoint);
}
@Override
public int getPassId() {
return raceLogEventData.getPassId();
}
@Override
public List<Competitor> getInvolvedBoats() {
return raceLogEventData.getInvolvedBoats();
}
@Override
public String toString() {
return raceLogEventData.toString();
}
@Override
public void accept(RaceLogEventVisitor visitor) {
visitor.visit(this);
}
}
@@ -145,12 +145,6 @@ public class RaceColumnRaceLogReplicator implements RaceLogEventVisitor, Seriali
public void visit(RaceLogRegisterCompetitorEvent event) {
notifyOnAdd(event);
}
@SuppressWarnings("deprecation")
@Override
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
notifyOnAdd(event);
}
@Override
public void visit(RaceLogFixedMarkPassingEvent event) {
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.common.RankingMetrics;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.UnableToCloseDeviceMappingException;
import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
import com.sap.sailing.domain.common.configuration.DeviceConfigurationMatcherType;
@@ -563,7 +564,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
void revokeRaceAndRegattaLogEvents(String leaderboardName, List<UUID> eventIds) throws NotRevokableException, DoesNotHaveRegattaLogException;
void closeOpenEndedDeviceMapping(String leaderboardName, DeviceMappingDTO mappingDto, Date closingTimePoint) throws TransformationException, DoesNotHaveRegattaLogException;
void closeOpenEndedDeviceMapping(String leaderboardName, DeviceMappingDTO mappingDto, Date closingTimePoint) throws TransformationException, DoesNotHaveRegattaLogException, UnableToCloseDeviceMappingException;
void addDeviceMappingToRegattaLog(String leaderboardName, DeviceMappingDTO dto)
throws NoCorrespondingServiceRegisteredException, TransformationException, DoesNotHaveRegattaLogException;
@@ -3,7 +3,6 @@ package com.sap.sailing.gwt.ui.client;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.LocalizableResource.DefaultLocale;
import com.google.gwt.json.client.JSONValue;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.sap.sse.gwt.client.DefaultRule_0_1_2_n;
import com.sap.sse.gwt.client.DefaultRule_0_1_n;
import com.sap.sse.gwt.client.DefaultRule_1_0n;
@@ -159,7 +159,7 @@ import com.sap.sailing.domain.common.PolarSheetsXYDiagramData;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RaceFetcher;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RaceLogEventNotFoundException;
import com.sap.sailing.domain.common.UnableToCloseDeviceMappingException;
import com.sap.sailing.domain.common.RankingMetrics;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaFetcher;
@@ -5434,43 +5434,28 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
}
private void closeOpenEndedDeviceMapping(List<AbstractLog<?, ?>> logHierarchy, DeviceMappingDTO mappingDTO, Date closingTimePoint) throws TransformationException, RaceLogEventNotFoundException {
private void closeOpenEndedDeviceMapping(RegattaLog regattaLog, DeviceMappingDTO mappingDTO, Date closingTimePoint) throws TransformationException, UnableToCloseDeviceMappingException {
boolean successfullyClosed = false;
for (AbstractLog<?, ?> abstractLog : logHierarchy) {
//check if abstractLog is the correct log for the closingEvent
final AbstractLogEvent<?> event;
abstractLog.lockForRead();
try {
event = abstractLog.getEventById(mappingDTO.originalRaceLogEventIds.get(0));
} finally {
abstractLog.unlockAfterRead();
}
regattaLog.lockForRead();
try {
RegattaLogEvent event = regattaLog.getEventById(mappingDTO.originalRaceLogEventIds.get(0));
if (event != null) {
successfullyClosed = true;
DeviceMapping<?> mapping = convertToDeviceMapping(mappingDTO);
if (abstractLog instanceof RegattaLog) {
RegattaLog regattaLog = (RegattaLog) abstractLog;
List<RegattaLogCloseOpenEndedDeviceMappingEvent> closingEvents =
new RegattaLogOpenEndedDeviceMappingCloser(regattaLog, mapping, getService().getServerAuthor(),
new MillisecondsTimePoint(closingTimePoint)).analyze();
for (RegattaLogEvent closingEvent : closingEvents) {
regattaLog.add(closingEvent);
}
} else if (abstractLog instanceof RaceLog) {
RaceLog raceLog = (RaceLog) abstractLog;
@SuppressWarnings("deprecation")
List<com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent> closingEvents =
new com.sap.sailing.domain.abstractlog.race.tracking.analyzing.impl.RaceLogOpenEndedDeviceMappingCloser(raceLog, mapping, getService().getServerAuthor(),
new MillisecondsTimePoint(closingTimePoint)).analyze();
for (RaceLogEvent closingEvent : closingEvents) {
raceLog.add(closingEvent);
}
List<RegattaLogCloseOpenEndedDeviceMappingEvent> closingEvents =
new RegattaLogOpenEndedDeviceMappingCloser(regattaLog, mapping, getService().getServerAuthor(),
new MillisecondsTimePoint(closingTimePoint)).analyze();
for (RegattaLogEvent closingEvent : closingEvents) {
regattaLog.add(closingEvent);
}
}
} finally {
regattaLog.unlockAfterRead();
}
if (!successfullyClosed){
throw new RaceLogEventNotFoundException();
throw new UnableToCloseDeviceMappingException();
}
}
@@ -5871,24 +5856,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
}
@Override
public void closeOpenEndedDeviceMapping(String leaderboardName, DeviceMappingDTO mappingDTO, Date closingTimePoint) throws TransformationException, DoesNotHaveRegattaLogException {
public void closeOpenEndedDeviceMapping(String leaderboardName, DeviceMappingDTO mappingDTO, Date closingTimePoint) throws TransformationException, DoesNotHaveRegattaLogException, UnableToCloseDeviceMappingException {
RegattaLog regattaLog = getRegattaLogInternal(leaderboardName);
List<AbstractLog<?, ?>> logList = new ArrayList<>();
logList.add(regattaLog);
try {
closeOpenEndedDeviceMapping(logList, mappingDTO, closingTimePoint);
} catch (RaceLogEventNotFoundException e) {
logger.warning("Device Mapping Event couldn't be found on RegattaLog, checking in RaceLog (deprecated)");
List<AbstractLog<?, ?>> logs = getLogHierarchy(leaderboardName);
try {
closeOpenEndedDeviceMapping(logs, mappingDTO, closingTimePoint);
} catch (RaceLogEventNotFoundException e1) {
logger.warning("Device Mapping Event could also not be found in RaceLogs");
}
}
closeOpenEndedDeviceMapping(regattaLog, mappingDTO, closingTimePoint);
}
/**
@@ -33,12 +33,10 @@ import com.sap.sailing.domain.abstractlog.race.impl.RaceLogPassChangeEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogRaceStatusEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogRevokeEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogStartTimeEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceCompetitorMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDeviceMarkMappingEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogRegisterCompetitorEvent;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDenoteForTrackingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDeviceCompetitorMappingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDeviceMarkMappingEventImpl;
@@ -273,20 +271,6 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest {
assertEquals(expectedEvent.getCompetitor(), actualEvent.getCompetitor());
}
@Test
public void testStoreAndLoadCloseOpenDeviceMappingEvent() {
RaceLogCloseOpenEndedDeviceMappingEvent expectedEvent = new RaceLogCloseOpenEndedDeviceMappingEventImpl(
expectedEventTime, expectedEventTime, author, expectedId, expectedPassId, UUID.randomUUID(),
new MillisecondsTimePoint(49));
DBObject dbObject = mongoFactory.storeRaceLogEntry(logIdentifier, expectedEvent);
RaceLogCloseOpenEndedDeviceMappingEvent actualEvent = loadEvent(dbObject);
assertBaseFields(expectedEvent, actualEvent);
assertEquals(expectedEvent.getDeviceMappingEventId(), actualEvent.getDeviceMappingEventId());
assertEquals(expectedEvent.getClosingTimePoint(), actualEvent.getClosingTimePoint());
}
/**
* Will always wait a couple of milliseconds to ensure that {@link RaceLogEvent#getCreatedAt()} has passed.
*/
@@ -1,35 +0,0 @@
package com.sap.sailing.server.gateway.deserialization.racelog.impl;
import java.io.Serializable;
import java.util.List;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.impl.MillisecondsTimePoint;
public class RaceLogCloseOpenEndedDeviceMappingEventDeserializer extends BaseRaceLogEventDeserializer {
public static final String FIELD_DEVICE_MAPPING_EVENT_ID = "deviceMappingEventId";
public static final String FIELD_CLOSING_TIMEPOINT_MILLIS = "closingTimePointMillis";
public RaceLogCloseOpenEndedDeviceMappingEventDeserializer(JsonDeserializer<Competitor> competitorDeserializer) {
super(competitorDeserializer);
}
@SuppressWarnings("deprecation")
@Override
protected RaceLogEvent deserialize(JSONObject object, Serializable id, TimePoint createdAt, AbstractLogEventAuthor author, TimePoint timePoint, int passId, List<Competitor> competitors)
throws JsonDeserializationException {
Serializable deviceMappingEventId = Helpers.tryUuidConversion((Serializable) object.get(FIELD_DEVICE_MAPPING_EVENT_ID));
TimePoint closingTimePoint = new MillisecondsTimePoint((Long) object.get(FIELD_CLOSING_TIMEPOINT_MILLIS));
return new com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl(createdAt, timePoint, author, id, passId,
deviceMappingEventId, closingTimePoint);
}
}
@@ -20,7 +20,6 @@ import com.sap.sailing.server.gateway.deserialization.impl.PositionJsonDeseriali
import com.sap.sailing.server.gateway.deserialization.impl.WindJsonDeserializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.BaseRaceLogEventSerializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogAdditionalScoringInformationSerializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogCloseOpenEndedDeviceMappingEventSerializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogCourseAreaChangedEventSerializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogCourseDesignChangedEventSerializer;
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogDenoteForTrackingEventSerializer;
@@ -86,7 +85,6 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
new RaceLogStartTrackingEventDeserializer(competitorDeserializer),
new RaceLogRevokeEventDeserializer(competitorDeserializer),
new RaceLogRegisterCompetitorEventDeserializer(competitorDeserializer),
new RaceLogCloseOpenEndedDeviceMappingEventDeserializer(competitorDeserializer),
new RaceLogAdditionalScoringInformationEventDeserializer(competitorDeserializer),
new RaceLogFixedMarkPassingEventDeserializer(competitorDeserializer),
new RaceLogSuppressedMarkPassingsEventDeserializer(competitorDeserializer),
@@ -115,7 +113,6 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
protected final JsonDeserializer<RaceLogEvent> startTrackingEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> revokeEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> registerCompetitorEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> closeOpenEndedDeviceMappingEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> additionalScoringInformationEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> fixedMarkPassingEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> suppressedMarkPassingsDeserializer;
@@ -143,7 +140,6 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
JsonDeserializer<RaceLogEvent> startTrackingEventDeserializer,
JsonDeserializer<RaceLogEvent> revokeEventDeserializer,
JsonDeserializer<RaceLogEvent> registerCompetitorEventDeserializer,
JsonDeserializer<RaceLogEvent> closeOpenEndedDeviceMappingEventDeserializer,
JsonDeserializer<RaceLogEvent> additionalScoringInformationEventDeserializer,
JsonDeserializer<RaceLogEvent> fixedMarkPassingEventDeserializer,
JsonDeserializer<RaceLogEvent> suppressedMarkPassingsEventDeserializer,
@@ -170,7 +166,6 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
this.startTrackingEventDeserializer = startTrackingEventDeserializer;
this.revokeEventDeserializer = revokeEventDeserializer;
this.registerCompetitorEventDeserializer = registerCompetitorEventDeserializer;
this.closeOpenEndedDeviceMappingEventDeserializer = closeOpenEndedDeviceMappingEventDeserializer;
this.additionalScoringInformationEventDeserializer = additionalScoringInformationEventDeserializer;
this.fixedMarkPassingEventDeserializer = fixedMarkPassingEventDeserializer;
this.suppressedMarkPassingsDeserializer = suppressedMarkPassingsEventDeserializer;
@@ -222,8 +217,6 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
return revokeEventDeserializer;
} else if (type.equals(RaceLogRegisterCompetitorEventSerializer.VALUE_CLASS)) {
return registerCompetitorEventDeserializer;
} else if (type.equals(RaceLogCloseOpenEndedDeviceMappingEventSerializer.VALUE_CLASS)) {
return closeOpenEndedDeviceMappingEventDeserializer;
} else if (type.equals(RaceLogAdditionalScoringInformationSerializer.VALUE_CLASS)) {
return additionalScoringInformationEventDeserializer;
} else if (type.equals(RaceLogFixedMarkPassingEventSerializer.VALUE_CLASS)) {
@@ -1,35 +0,0 @@
package com.sap.sailing.server.gateway.serialization.racelog.impl;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.shared.events.CloseOpenEndedDeviceMappingEvent;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogCloseOpenEndedDeviceMappingEventDeserializer;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RaceLogCloseOpenEndedDeviceMappingEventSerializer extends BaseRaceLogEventSerializer {
public static final String VALUE_CLASS = CloseOpenEndedDeviceMappingEvent.class.getSimpleName();
public RaceLogCloseOpenEndedDeviceMappingEventSerializer(JsonSerializer<Competitor> competitorSerializer) {
super(competitorSerializer);
}
@Override
protected String getClassFieldValue() {
return VALUE_CLASS;
}
@SuppressWarnings("deprecation")
@Override
public JSONObject serialize(RaceLogEvent object) {
com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event = (com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent) object;
JSONObject result = super.serialize(event);
result.put(RaceLogCloseOpenEndedDeviceMappingEventDeserializer.FIELD_DEVICE_MAPPING_EVENT_ID, event.getDeviceMappingEventId());
result.put(RaceLogCloseOpenEndedDeviceMappingEventDeserializer.FIELD_CLOSING_TIMEPOINT_MILLIS, event.getClosingTimePoint().asMillis());
return result;
}
}
@@ -78,7 +78,6 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
new RaceLogStartTrackingEventSerializer(competitorSerializer),
new RaceLogRevokeEventSerializer(competitorSerializer),
new RaceLogRegisterCompetitorEventSerializer(competitorSerializer),
new RaceLogCloseOpenEndedDeviceMappingEventSerializer(competitorSerializer),
new RaceLogAdditionalScoringInformationSerializer(competitorSerializer),
new RaceLogFixedMarkPassingEventSerializer(competitorSerializer),
new RaceLogSuppressedMarkPassingsEventSerializer(competitorSerializer),
@@ -107,7 +106,6 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
private final JsonSerializer<RaceLogEvent> startTrackingSerializer;
private final JsonSerializer<RaceLogEvent> revokeSerializer;
private final JsonSerializer<RaceLogEvent> registerCompetitorSerializer;
private final JsonSerializer<RaceLogEvent> closeOpenEndedDeviceMappingEventSerializer;
private final JsonSerializer<RaceLogEvent> additionalScoringInformationSerializer;
private final JsonSerializer<RaceLogEvent> fixedMarkPassingEventSerializer;
private final JsonSerializer<RaceLogEvent> suppressedMarkPassingsEventSerializer;
@@ -139,7 +137,6 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
JsonSerializer<RaceLogEvent> createRaceSerializer,
JsonSerializer<RaceLogEvent> revokeSerializer,
JsonSerializer<RaceLogEvent> registerCompetitorSerializer,
JsonSerializer<RaceLogEvent> closeOpenEndedDeviceMappingEventSerializer,
JsonSerializer<RaceLogEvent> additionalScoringInformationSerializer,
JsonSerializer<RaceLogEvent> fixedMarkPassingEventSerializer,
JsonSerializer<RaceLogEvent> suppressedMarkPassingsSerializer,
@@ -166,7 +163,6 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
this.startTrackingSerializer = createRaceSerializer;
this.revokeSerializer = revokeSerializer;
this.registerCompetitorSerializer = registerCompetitorSerializer;
this.closeOpenEndedDeviceMappingEventSerializer = closeOpenEndedDeviceMappingEventSerializer;
this.additionalScoringInformationSerializer = additionalScoringInformationSerializer;
this.fixedMarkPassingEventSerializer = fixedMarkPassingEventSerializer;
this.suppressedMarkPassingsEventSerializer = suppressedMarkPassingsSerializer;
@@ -287,22 +283,14 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
chosenSerializer = registerCompetitorSerializer;
}
@SuppressWarnings("deprecation")
@Override
public void visit(com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent event) {
chosenSerializer = closeOpenEndedDeviceMappingEventSerializer;
}
@Override
public void visit(RaceLogAdditionalScoringInformationEvent additionalScoringInformation) {
chosenSerializer = additionalScoringInformationSerializer;
}
@Override
@Override
public void visit(RaceLogFixedMarkPassingEvent event) {
chosenSerializer = fixedMarkPassingEventSerializer;
}
@Override
@@ -25,7 +25,6 @@ import com.sap.sailing.domain.abstractlog.race.impl.RaceLogRevokeEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogStartProcedureChangedEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogStartTimeEventImpl;
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogWindFixEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogCloseOpenEndedDeviceMappingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDenoteForTrackingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDeviceCompetitorMappingEventImpl;
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogDeviceMarkMappingEventImpl;
@@ -62,7 +61,6 @@ public class RaceLogEventSerializerTest {
private JsonSerializer<RaceLogEvent> startTrackingEventSerializer;
private JsonSerializer<RaceLogEvent> revokeEventSerializer;
private JsonSerializer<RaceLogEvent> registerCompetitorEventSerializer;
private JsonSerializer<RaceLogEvent> closeOpenEndedDeviceMappingEventSerializer;
private JsonSerializer<RaceLogEvent> additionalScoringInformationSerializer;
private JsonSerializer<RaceLogEvent> fixedMarkPassingEventSerializer;
private JsonSerializer<RaceLogEvent> suppressedMarkPassingsSerializer;
@@ -95,7 +93,6 @@ public class RaceLogEventSerializerTest {
startTrackingEventSerializer = mock(JsonSerializer.class);
revokeEventSerializer = mock(JsonSerializer.class);
registerCompetitorEventSerializer = mock(JsonSerializer.class);
closeOpenEndedDeviceMappingEventSerializer = mock(JsonSerializer.class);
additionalScoringInformationSerializer = mock(JsonSerializer.class);
fixedMarkPassingEventSerializer = mock(JsonSerializer.class);
suppressedMarkPassingsSerializer = mock(JsonSerializer.class);
@@ -111,8 +108,7 @@ public class RaceLogEventSerializerTest {
startProcedureTypeChangedEventSerializer, protestStartTimeEventSerializer, windFixEventSerializer,
deviceCompetitorMappingEventSerializer, deviceMarkMappingEventSerializer,
denoteForTrackingEventSerializer, startTrackingEventSerializer, revokeEventSerializer,
registerCompetitorEventSerializer, closeOpenEndedDeviceMappingEventSerializer,
fixedMarkPassingEventSerializer, suppressedMarkPassingsSerializer,
registerCompetitorEventSerializer, fixedMarkPassingEventSerializer, suppressedMarkPassingsSerializer,
additionalScoringInformationSerializer, dependentStartTimeEventSerializer,
startOfTrackingEventSerializer, useCompetitorsFromRaceLogEventSerializer,
endOfTrackingEventSerializer);
@@ -273,12 +269,4 @@ public class RaceLogEventSerializerTest {
serializer.serialize(event);
verify(registerCompetitorEventSerializer).serialize(event);
}
@Test
public void testCloseOpenEndedDeviceMappingEventSerializer() {
// we use the real event type here because we do not want to re-implement the dispatching.
RaceLogEvent event = new RaceLogCloseOpenEndedDeviceMappingEventImpl(null, author, 0, null, null);
serializer.serialize(event);
verify(closeOpenEndedDeviceMappingEventSerializer).serialize(event);
}
}