mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-25 06:58:39 +00:00
Removed not needed RegattaLogRegisterAndBoatEvent after discussion with Axel.
All registration on regatta level will be of type RegattaLogRegisterCompetitorEvent where the passed competitor is either of type Competitor or CompetitorWithBoat depending on the regatta type
This commit is contained in:
+6
-1
@@ -132,7 +132,12 @@ public interface DomainObjectFactory {
|
||||
|
||||
RegattaLog loadRegattaLog(RegattaLikeIdentifier identifier);
|
||||
|
||||
Collection<CompetitorWithBoat> renameCompetitorsCollectionAndloadAllLegacyCompetitors();
|
||||
/**
|
||||
* Migrates the old COMPETITORS collection and the new BOATS collection.
|
||||
* The old COLLECTION is will be renamed to COMPETITORS_BAK for deveopment and test purposes
|
||||
* @return a collection of the old type where all competitors contain their boats or null if migration was not required.
|
||||
*/
|
||||
Collection<CompetitorWithBoat> migrateLegacyCompetitorsIfRequired();
|
||||
|
||||
/**
|
||||
* Loads all competitors (with and without embedded boats) and resolves them via the domain factory.
|
||||
|
||||
+33
-43
@@ -109,7 +109,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -123,7 +122,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCo
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceMarkMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRevokeEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEventImpl;
|
||||
@@ -1951,8 +1949,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
return loadRegattaLogRegisterBoatEvent(createdAt, author, logicalTimePoint, id, dbObject);
|
||||
} else if (eventClass.equals(RegattaLogRegisterCompetitorEvent.class.getSimpleName())) {
|
||||
return loadRegattaLogRegisterCompetitorEvent(createdAt, author, logicalTimePoint, id, dbObject);
|
||||
} else if (eventClass.equals(RegattaLogRegisterCompetitorAndBoatEvent.class.getSimpleName())) {
|
||||
return loadRegattaLogRegisterCompetitorAndBoatEvent(createdAt, author, logicalTimePoint, id, dbObject);
|
||||
} else if (eventClass.equals(RegattaLogSetCompetitorTimeOnTimeFactorEvent.class.getSimpleName())) {
|
||||
return loadRegattaLogSetCompetitorTimeOnTimeFactorEvent(createdAt, author, logicalTimePoint, id, dbObject);
|
||||
} else if (eventClass
|
||||
@@ -2051,31 +2047,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
return result;
|
||||
}
|
||||
|
||||
private RegattaLogRegisterCompetitorAndBoatEvent loadRegattaLogRegisterCompetitorAndBoatEvent(TimePoint createdAt,
|
||||
AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id, DBObject dbObject) {
|
||||
Competitor comp = getCompetitorByID(dbObject);
|
||||
Boat boat = getBoatByID(dbObject);
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent result;
|
||||
if (comp == null || boat == null) {
|
||||
result = null;
|
||||
if (comp == null) {
|
||||
logger.log(Level.SEVERE, "Couldn't resolve competitor with ID "
|
||||
+ dbObject.get(FieldNames.REGATTA_LOG_COMPETITOR_ID.name())
|
||||
+ " from registration event with ID " + id + ". Skipping this competitor registration.");
|
||||
}
|
||||
if (boat == null) {
|
||||
logger.log(Level.SEVERE,
|
||||
"Couldn't resolve boat with ID " + dbObject.get(FieldNames.REGATTA_LOG_BOAT_ID.name())
|
||||
+ " from registration event with ID " + id
|
||||
+ ". Skipping this competitor registration.");
|
||||
}
|
||||
} else {
|
||||
result = new RegattaLogRegisterCompetitorAndBoatEventImpl(createdAt, logicalTimePoint, author, id, comp,
|
||||
boat);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private RegattaLogCloseOpenEndedDeviceMappingEvent loadRegattaLogCloseOpenEndedDeviceMappingEvent(
|
||||
TimePoint createdAt, AbstractLogEventAuthor author, TimePoint logicalTimePoint, Serializable id,
|
||||
DBObject dbObject) {
|
||||
@@ -2400,21 +2371,40 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<CompetitorWithBoat> renameCompetitorsCollectionAndloadAllLegacyCompetitors() {
|
||||
public Collection<CompetitorWithBoat> migrateLegacyCompetitorsIfRequired() {
|
||||
ArrayList<CompetitorWithBoat> result = null;
|
||||
|
||||
boolean competitorsCollectionExist = database.collectionExists(CollectionNames.COMPETITORS.name());
|
||||
boolean boatsCollectionCollectionExist = database.collectionExists(CollectionNames.BOATS.name());
|
||||
DBCollection orginalCompetitorCollection = database.getCollection(CollectionNames.COMPETITORS.name());
|
||||
orginalCompetitorCollection.rename(CollectionNames.COMPETITORS_BAK.name(), /* dropTarget */ true);
|
||||
DBCollection collection = database.getCollection(CollectionNames.COMPETITORS_BAK.name());
|
||||
ArrayList<CompetitorWithBoat> result = new ArrayList<>();
|
||||
try {
|
||||
for (DBObject o : collection.find()) {
|
||||
JSONObject json = Helpers.toJSONObjectSafe(new JSONParser().parse(JSON.serialize(o)));
|
||||
CompetitorWithBoat c = legacyCompetitorWithBoatDeserializer.deserialize(json);
|
||||
result.add(c);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load competitors.");
|
||||
logger.log(Level.SEVERE, "renameCompetitorsCollectionAndloadAllLegacyCompetitors", e);
|
||||
}
|
||||
|
||||
// there is a corner case where tests can create just one competitor without boat
|
||||
// before we migrate we need to check if this case
|
||||
if (competitorsCollectionExist && !boatsCollectionCollectionExist) {
|
||||
long competitorCount = orginalCompetitorCollection.count();
|
||||
if (competitorCount > 0) {
|
||||
DBObject oneCompetitorDbObject = orginalCompetitorCollection.findOne();
|
||||
Object boatObject = oneCompetitorDbObject.get("boat");
|
||||
// only in case such a boat object exist we need a migration, because the new type stores only a boatID or no boat at all
|
||||
if (boatObject != null) {
|
||||
result = new ArrayList<>();
|
||||
|
||||
orginalCompetitorCollection.rename(CollectionNames.COMPETITORS_BAK.name(), /* dropTarget */ true);
|
||||
DBCollection collection = database.getCollection(CollectionNames.COMPETITORS_BAK.name());
|
||||
try {
|
||||
for (DBObject o : collection.find()) {
|
||||
JSONObject json = Helpers.toJSONObjectSafe(new JSONParser().parse(JSON.serialize(o)));
|
||||
CompetitorWithBoat c = legacyCompetitorWithBoatDeserializer.deserialize(json);
|
||||
result.add(c);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load competitors.");
|
||||
logger.log(Level.SEVERE, "renameCompetitorsCollectionAndloadAllLegacyCompetitors", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+1
-10
@@ -62,7 +62,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -1345,7 +1344,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
|
||||
@Override
|
||||
public void storeCompetitor(Competitor competitor) {
|
||||
if (competitor instanceof CompetitorWithBoat) {
|
||||
storeCompetitorWithBoat((CompetitorWithBoat) competitor);
|
||||
storeCompetitorWithBoat((CompetitorWithBoat) competitor);
|
||||
} else {
|
||||
storeCompetitorWithoutBoat(competitor);
|
||||
}
|
||||
@@ -1640,14 +1639,6 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
|
||||
storeRegattaLogEvent(regattaLikeId, result);
|
||||
}
|
||||
|
||||
public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
DBObject result = createBasicRegattaLogEventDBObject(event);
|
||||
result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogRegisterCompetitorAndBoatEvent.class.getSimpleName());
|
||||
result.put(FieldNames.REGATTA_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId());
|
||||
result.put(FieldNames.REGATTA_LOG_BOAT_ID.name(), event.getBoat().getId());
|
||||
storeRegattaLogEvent(regattaLikeId, result);
|
||||
}
|
||||
|
||||
public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogCloseOpenEndedDeviceMappingEvent event) {
|
||||
DBObject result = createBasicRegattaLogEventDBObject(event);
|
||||
result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName());
|
||||
|
||||
-6
@@ -9,7 +9,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -64,11 +63,6 @@ public class MongoRegattaLogStoreVisitor implements RegattaLogEventVisitor {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactorEvent event) {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
|
||||
+6
-4
@@ -26,10 +26,11 @@ import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogRegisterComp
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogUseCompetitorsAndBoatsFromRaceLogEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
@@ -37,6 +38,7 @@ import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
@@ -267,13 +269,13 @@ public class CreateAndTrackWithRaceLogTest extends RaceLogTrackingTestHelper {
|
||||
|
||||
// add a mapping and one fix in, one out of mapping
|
||||
Boat boat1 = new BoatImpl("id12345", "boat1", boatClass, /* sailID */ null);
|
||||
Competitor comp1 = DomainFactory.INSTANCE.getOrCreateCompetitor("comp1", "comp1", "c1", null, null, null, null,
|
||||
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null);
|
||||
CompetitorWithBoat comp1 = DomainFactory.INSTANCE.getOrCreateCompetitorWithBoat("comp1", "comp1", "c1", null, null, null, null,
|
||||
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null, (DynamicBoat) boat1);
|
||||
DeviceIdentifier dev1 = new SmartphoneImeiIdentifier("dev1");
|
||||
regattaLog.add(new RegattaLogDeviceCompetitorMappingEventImpl(t(), t(), author, UUID.randomUUID(), comp1, dev1,
|
||||
t(0), t(10)));
|
||||
addFixes0(dev1);
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(t(), t(), author, UUID.randomUUID(), comp1, boat1));
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(t(), t(), author, UUID.randomUUID(), comp1));
|
||||
raceLog.add(new RaceLogStartOfTrackingEventImpl(t(0), author, /* passId */ 0));
|
||||
|
||||
// start tracking
|
||||
|
||||
+6
@@ -4,6 +4,12 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.RegisterCompetitorAndBoatEvent;
|
||||
|
||||
/**
|
||||
* The event registers a {@link Competitor} or {@link CompetitorWithBoat} on a race.
|
||||
* The competitor type is determined by the {@link Regatta} attribute 'canBoatsOfCompetitorsChangePerRace'
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is true the type must be {@link Competitor}
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is false the type must be {@link CompetitorWithBoat}
|
||||
*/
|
||||
public interface RaceLogRegisterCompetitorAndBoatEvent
|
||||
extends RaceLogEvent, RegisterCompetitorAndBoatEvent<RaceLogEventVisitor> {
|
||||
|
||||
|
||||
+4
-2
@@ -5,8 +5,10 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.RegisterCompetitorEvent;
|
||||
|
||||
/**
|
||||
* ATTENTION: This is the old legacy race log event for a competitor registration from the time before bug2822
|
||||
* DON'T delete or rename for backward compatibility
|
||||
* The event registers a {@link Competitor} or {@link CompetitorWithBoat} on a race.
|
||||
* The competitor type is determined by the {@link Regatta} attribute 'canBoatsOfCompetitorsChangePerRace'
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is true the type must be {@link Competitor}
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is false the type must be {@link CompetitorWithBoat}
|
||||
*/
|
||||
public interface RaceLogRegisterCompetitorEvent extends RaceLogEvent, RegisterCompetitorEvent<RaceLogEventVisitor> {
|
||||
|
||||
|
||||
-3
@@ -6,7 +6,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -27,8 +26,6 @@ public interface RegattaLogEventVisitor {
|
||||
|
||||
void visit(RegattaLogRegisterCompetitorEvent event);
|
||||
|
||||
void visit(RegattaLogRegisterCompetitorAndBoatEvent event);
|
||||
|
||||
void visit(RegattaLogSetCompetitorTimeOnTimeFactorEvent event);
|
||||
|
||||
void visit(RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent event);
|
||||
|
||||
+3
@@ -4,6 +4,9 @@ import com.sap.sailing.domain.abstractlog.Revokable;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
|
||||
/**
|
||||
* The event registers a standalone {@link Boat} on a regatta.
|
||||
*/
|
||||
public interface RegattaLogRegisterBoatEvent extends RegattaLogEvent, Revokable {
|
||||
Boat getBoat();
|
||||
}
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
package com.sap.sailing.domain.abstractlog.regatta.events;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.RegisterCompetitorAndBoatEvent;
|
||||
|
||||
/**
|
||||
* Registers a competitor together with a boat for {@link RegattaLog} tracked regattas.
|
||||
* @author Frank Mittag
|
||||
*
|
||||
*/
|
||||
public interface RegattaLogRegisterCompetitorAndBoatEvent
|
||||
extends RegattaLogEvent, RegisterCompetitorAndBoatEvent<RegattaLogEventVisitor> {
|
||||
|
||||
}
|
||||
+7
-3
@@ -3,11 +3,15 @@ package com.sap.sailing.domain.abstractlog.regatta.events;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.RegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
|
||||
/**
|
||||
* ATTENTION: This is the old legacy regatta log event for a competitor registration from the time before bug2822
|
||||
* DON'T delete or rename for backward compatibility
|
||||
*/
|
||||
* The event registers a {@link Competitor} or {@link CompetitorWithBoat} on a regatta.
|
||||
* The competitor type is determined by the {@link Regatta} attribute 'canBoatsOfCompetitorsChangePerRace'
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is true the type must be {@link Competitor}
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is false the type must be {@link CompetitorWithBoat}
|
||||
*/
|
||||
public interface RegattaLogRegisterCompetitorEvent
|
||||
extends RegattaLogEvent, RegisterCompetitorEvent<RegattaLogEventVisitor> {
|
||||
|
||||
|
||||
-39
@@ -1,39 +0,0 @@
|
||||
package com.sap.sailing.domain.abstractlog.regatta.events.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.impl.BaseRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public class RegattaLogRegisterCompetitorAndBoatEventImpl extends BaseRegisterCompetitorAndBoatEventImpl<RegattaLogEventVisitor>
|
||||
implements RegattaLogRegisterCompetitorAndBoatEvent {
|
||||
private static final long serialVersionUID = 3577775910921730978L;
|
||||
|
||||
/**
|
||||
* @throws IllegalArgumentException
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public RegattaLogRegisterCompetitorAndBoatEventImpl(TimePoint createdAt, TimePoint logicalTimePoint,
|
||||
AbstractLogEventAuthor author, Serializable id, Competitor competitor, Boat boat) throws IllegalArgumentException {
|
||||
super(createdAt, logicalTimePoint, author, id, competitor, boat);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws IllegalArgumentException
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public RegattaLogRegisterCompetitorAndBoatEventImpl(TimePoint logicalTimePoint,
|
||||
AbstractLogEventAuthor author, Competitor competitor, Boat boat) throws IllegalArgumentException {
|
||||
super(logicalTimePoint, author, competitor, boat);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(RegattaLogEventVisitor visitor) {
|
||||
visitor.visit(this);
|
||||
}
|
||||
}
|
||||
+10
-2
@@ -6,9 +6,17 @@ import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.impl.BaseRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
/**
|
||||
* This event can be used for 2 kinds of competitor registrations.
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is true for a regatta the event registers a standalone {@link Competitor} without a boat.
|
||||
* If 'canBoatsOfCompetitorsChangePerRace' is false the event registers a {@link CompetitorWithBoat}.
|
||||
* @author Frank Mittag
|
||||
*
|
||||
*/
|
||||
public class RegattaLogRegisterCompetitorEventImpl extends BaseRegisterCompetitorEventImpl<RegattaLogEventVisitor>
|
||||
implements RegattaLogRegisterCompetitorEvent {
|
||||
private static final long serialVersionUID = -5114645637316367845L;
|
||||
@@ -18,7 +26,7 @@ public class RegattaLogRegisterCompetitorEventImpl extends BaseRegisterCompetito
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public RegattaLogRegisterCompetitorEventImpl(TimePoint createdAt, TimePoint logicalTimePoint,
|
||||
AbstractLogEventAuthor author, Serializable id, CompetitorWithBoat competitor) throws IllegalArgumentException {
|
||||
AbstractLogEventAuthor author, Serializable id, Competitor competitor) throws IllegalArgumentException {
|
||||
super(createdAt, logicalTimePoint, author, id, competitor);
|
||||
}
|
||||
|
||||
@@ -27,7 +35,7 @@ public class RegattaLogRegisterCompetitorEventImpl extends BaseRegisterCompetito
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public RegattaLogRegisterCompetitorEventImpl(TimePoint logicalTimePoint,
|
||||
AbstractLogEventAuthor author, CompetitorWithBoat competitor) throws IllegalArgumentException {
|
||||
AbstractLogEventAuthor author, Competitor competitor) throws IllegalArgumentException {
|
||||
super(logicalTimePoint, author, competitor);
|
||||
}
|
||||
|
||||
|
||||
-5
@@ -7,7 +7,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -43,10 +42,6 @@ public class BaseRegattaLogEventVisitor implements RegattaLogEventVisitor {
|
||||
public void visit(RegattaLogRegisterCompetitorEvent event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactorEvent event) {
|
||||
}
|
||||
|
||||
-6
@@ -8,7 +8,6 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorSensorDataMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMileEvent;
|
||||
@@ -47,11 +46,6 @@ public abstract class RegattaLogEventListener implements RegattaLogEventVisitor
|
||||
eventAdded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
eventAdded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactorEvent event) {
|
||||
eventAdded(event);
|
||||
|
||||
+1
-5
@@ -5,13 +5,9 @@ import com.sap.sailing.domain.abstractlog.Revokable;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sse.common.IsManagedByCache;
|
||||
|
||||
/**
|
||||
* ATTENTION: This is the old legacy log event for a competitor registration from the time before bug2822
|
||||
* DON'T delete or rename for backward compatibility
|
||||
*
|
||||
* Register a competitor for {@link RaceLog} and {@link RegattaLog} tracked races and regattas.
|
||||
*
|
||||
* A dummy {@link Competitor} implementation with only an {@link Competitor#getId() id} may be used,
|
||||
@@ -22,5 +18,5 @@ import com.sap.sse.common.IsManagedByCache;
|
||||
*
|
||||
*/
|
||||
public interface RegisterCompetitorEvent<VisitorT> extends AbstractLogEvent<VisitorT>, Revokable {
|
||||
CompetitorWithBoat getCompetitor();
|
||||
Competitor getCompetitor();
|
||||
}
|
||||
|
||||
+6
-9
@@ -5,20 +5,20 @@ import java.io.Serializable;
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.impl.AbstractLogEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.RegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public abstract class BaseRegisterCompetitorEventImpl<VisitorT> extends AbstractLogEventImpl<VisitorT> implements
|
||||
RegisterCompetitorEvent<VisitorT> {
|
||||
private static final long serialVersionUID = -30864810737555657L;
|
||||
private final CompetitorWithBoat competitor;
|
||||
private final Competitor competitor;
|
||||
|
||||
/**
|
||||
* @throws IllegalArgumentException
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public BaseRegisterCompetitorEventImpl(TimePoint createdAt, TimePoint logicalTimePoint,
|
||||
AbstractLogEventAuthor author, Serializable pId, CompetitorWithBoat competitor) throws IllegalArgumentException {
|
||||
AbstractLogEventAuthor author, Serializable pId, Competitor competitor) throws IllegalArgumentException {
|
||||
super(createdAt, logicalTimePoint, author, pId);
|
||||
checkCompetitor(competitor);
|
||||
this.competitor = competitor;
|
||||
@@ -29,21 +29,18 @@ public abstract class BaseRegisterCompetitorEventImpl<VisitorT> extends Abstract
|
||||
* if {@code competitor} is null
|
||||
*/
|
||||
public BaseRegisterCompetitorEventImpl(TimePoint logicalTimePoint, AbstractLogEventAuthor author,
|
||||
CompetitorWithBoat competitor) throws IllegalArgumentException {
|
||||
Competitor competitor) throws IllegalArgumentException {
|
||||
this(now(), logicalTimePoint, author, randId(), competitor);
|
||||
}
|
||||
|
||||
private static void checkCompetitor(CompetitorWithBoat competitor) throws IllegalArgumentException {
|
||||
private static void checkCompetitor(Competitor competitor) throws IllegalArgumentException {
|
||||
if (competitor == null) {
|
||||
throw new IllegalArgumentException("Competitor may not be null");
|
||||
}
|
||||
if (competitor.getBoat() == null) {
|
||||
throw new IllegalArgumentException("BoaCompetitor may not be null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public CompetitorWithBoat getCompetitor() {
|
||||
public Competitor getCompetitor() {
|
||||
return competitor;
|
||||
}
|
||||
|
||||
|
||||
+9
-9
@@ -24,8 +24,8 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsAnd
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogUseCompetitorsAndBoatsFromRaceLogEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
@@ -105,10 +105,10 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
regatta.removeSeries(seriesToRemove);
|
||||
}
|
||||
RegattaLog regattaLog = regattaLeaderboard.getRegatta().getRegattaLog();
|
||||
final Map<Competitor, RegattaLogRegisterCompetitorAndBoatEvent> competitorOnRegattaLogRegistrationEvents = new HashMap<>();
|
||||
final Map<Competitor, RegattaLogRegisterCompetitorEvent> competitorOnRegattaLogRegistrationEvents = new HashMap<>();
|
||||
final LogEventAuthorImpl author = new LogEventAuthorImpl("Me", 0);
|
||||
for (Competitor c : compLists[0]) {
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent registerCompetitorEvent = new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c, boats.get(c));
|
||||
final RegattaLogRegisterCompetitorEvent registerCompetitorEvent = new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c);
|
||||
regattaLog.add(registerCompetitorEvent);
|
||||
competitorOnRegattaLogRegistrationEvents.put(c, registerCompetitorEvent);
|
||||
}
|
||||
@@ -185,7 +185,7 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
flexibleLeaderboard.addRaceColumn("R1", /* medalRace */ false);
|
||||
RegattaLog regattaLog = flexibleLeaderboard.getRegattaLog();
|
||||
for (Competitor c : compLists[0]) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), new LogEventAuthorImpl("Me", 0), UUID.randomUUID(), c, boats.get(c)));
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), new LogEventAuthorImpl("Me", 0), UUID.randomUUID(), c));
|
||||
}
|
||||
Set<Competitor> expected = new HashSet<>(compLists[0]);
|
||||
Set<Competitor> actual = new HashSet<>();
|
||||
@@ -203,7 +203,7 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
flexibleLeaderboard.addRaceColumn("R1", /* medalRace */ false);
|
||||
RegattaLog regattaLog = flexibleLeaderboard.getRegattaLog();
|
||||
for (Competitor c : compLists[0]) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), new LogEventAuthorImpl("Me", 0), UUID.randomUUID(), c, boats.get(c)));
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), new LogEventAuthorImpl("Me", 0), UUID.randomUUID(), c));
|
||||
}
|
||||
RaceLog raceLog = flexibleLeaderboard.getRacelog("R1", LeaderboardNameConstants.DEFAULT_FLEET_NAME);
|
||||
final LogEventAuthorImpl author = new LogEventAuthorImpl("Me", 0);
|
||||
@@ -326,10 +326,10 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
@Test
|
||||
public void testSimpleCompetitorListOnRegattaLogInRegattaLeaderboard() throws NotRevokableException {
|
||||
RegattaLog regattaLog = regattaLeaderboard.getRegatta().getRegattaLog();
|
||||
final Map<Competitor, RegattaLogRegisterCompetitorAndBoatEvent> competitorOnRegattaLogRegistrationEvents = new HashMap<>();
|
||||
final Map<Competitor, RegattaLogRegisterCompetitorEvent> competitorOnRegattaLogRegistrationEvents = new HashMap<>();
|
||||
final LogEventAuthorImpl author = new LogEventAuthorImpl("Me", 0);
|
||||
for (Competitor c : compLists[0]) {
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent registerCompetitorEvent = new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c, boats.get(c));
|
||||
final RegattaLogRegisterCompetitorEvent registerCompetitorEvent = new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c);
|
||||
regattaLog.add(registerCompetitorEvent);
|
||||
competitorOnRegattaLogRegistrationEvents.put(c, registerCompetitorEvent);
|
||||
}
|
||||
@@ -362,7 +362,7 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
final RegattaLog regattaLog = regattaLeaderboard.getRegatta().getRegattaLog();
|
||||
final LogEventAuthorImpl author = new LogEventAuthorImpl("Me", 0);
|
||||
for (Competitor c : compLists[0]) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c, boats.get(c)));
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), author, UUID.randomUUID(), c));
|
||||
}
|
||||
final RaceLog raceLog = regattaLeaderboard.getRacelog("R1", "Yellow");
|
||||
final int passId = 1;
|
||||
|
||||
+11
-11
@@ -15,8 +15,8 @@ import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.RaceColumnListener;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
@@ -74,7 +74,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
receivedRegattaLogEvent[0] = event;
|
||||
}
|
||||
});
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
leaderboard.getRegattaLog().add(event);
|
||||
assertSame(event, receivedRegattaLogEvent[0]);
|
||||
}
|
||||
@@ -96,14 +96,14 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
receivedRegattaLogEvent[0] = event;
|
||||
}
|
||||
});
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
deserializedLeaderboard.getRegattaLog().add(event);
|
||||
assertSame(event, receivedRegattaLogEvent[0]);
|
||||
}
|
||||
|
||||
private RegattaLogRegisterCompetitorAndBoatEvent createRegattaLogEvent() {
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), /* author */ null,
|
||||
AbstractLeaderboardTest.createCompetitor("Someone"), AbstractLeaderboardTest.createBoat("Some boat"));
|
||||
private RegattaLogRegisterCompetitorEvent createRegattaLogEvent() {
|
||||
final RegattaLogRegisterCompetitorEvent event = new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), /* author */ null,
|
||||
AbstractLeaderboardTest.createCompetitor("Someone"));
|
||||
return event;
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
receivedRegattaLogEvent[0] = event;
|
||||
}
|
||||
});
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
regatta.getRegattaLog().add(event);
|
||||
assertSame(event, receivedRegattaLogEvent[0]);
|
||||
}
|
||||
@@ -151,7 +151,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
receivedRegattaLogEvent[0] = event;
|
||||
}
|
||||
});
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
deserializedRegatta.getRegattaLog().add(event);
|
||||
assertSame(event, receivedRegattaLogEvent[0]);
|
||||
}
|
||||
@@ -165,7 +165,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
LeaderboardDTO dto = leaderboard.getLeaderboardDTO(now.plus(10), Collections.emptySet(), /* addOverallDetails */ false,
|
||||
/* trackedRegattaRegistry */ null, DomainFactory.INSTANCE, /* fillTotalPointsUncorrected */ false);
|
||||
assertTrue(dto.competitors.isEmpty());
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
regatta.getRegattaLog().add(event);
|
||||
LeaderboardDTO dto2 = leaderboard.computeDTO(now.plus(20), Collections.emptySet(), /* addOverallDetails */ false,
|
||||
/* waitForLatestAnalyses */ false, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE, /* fillTotalPointsUncorrected */ false);
|
||||
@@ -197,7 +197,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
LeaderboardDTO dto = deserializedLeaderboard.getLeaderboardDTO(now.plus(10), Collections.emptySet(), /* addOverallDetails */ false,
|
||||
/* trackedRegattaRegistry */ null, DomainFactory.INSTANCE, /* fillTotalPointsUncorrected */ false);
|
||||
assertTrue(dto.competitors.isEmpty());
|
||||
final RegattaLogRegisterCompetitorAndBoatEvent event = createRegattaLogEvent();
|
||||
final RegattaLogRegisterCompetitorEvent event = createRegattaLogEvent();
|
||||
deserializedLeaderboard.getRegatta().getRegattaLog().add(event);
|
||||
LeaderboardDTO dto2 = deserializedLeaderboard.computeDTO(now.plus(20), Collections.emptySet(), /* addOverallDetails */ false,
|
||||
/* waitForLatestAnalyses */ false, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE, /* fillTotalPointsUncorrected */ false);
|
||||
|
||||
+3
-3
@@ -528,16 +528,16 @@ public class MockedTrackedRace implements DynamicTrackedRace {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog() {
|
||||
public Iterable<Competitor> getCompetitorsRegisteredInRegattaLog() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCompetitorAndBoat(Competitor competitor, Boat boat) {
|
||||
public void registerCompetitor(Competitor competitor) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCompetitorsAndBoats(Map<Competitor, Boat> competitorsAndBoats) {
|
||||
public void registerCompetitors(Iterable<Competitor> competitors) {
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,11 +26,12 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogBoatDeregistrator;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogBoatsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorDeregistrator;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsAndBoatsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -865,26 +866,26 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog() {
|
||||
public Iterable<Competitor> getCompetitorsRegisteredInRegattaLog() {
|
||||
RegattaLog regattaLog = getRegattaLog();
|
||||
CompetitorsAndBoatsInLogAnalyzer<RegattaLog, RegattaLogEvent, RegattaLogEventVisitor> analyzer = new CompetitorsAndBoatsInLogAnalyzer<>(
|
||||
CompetitorsInLogAnalyzer<RegattaLog, RegattaLogEvent, RegattaLogEventVisitor> analyzer = new CompetitorsInLogAnalyzer<>(
|
||||
regattaLog);
|
||||
return analyzer.analyze();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCompetitorAndBoat(Competitor competitor, Boat boat) {
|
||||
registerCompetitorsAndBoats(Collections.singletonMap(competitor, boat));
|
||||
public void registerCompetitor(Competitor competitor) {
|
||||
registerCompetitors(Collections.singletonList(competitor));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCompetitorsAndBoats(Map<Competitor, Boat> competitorsAndBoats) {
|
||||
public void registerCompetitors(Iterable<Competitor> competitors) {
|
||||
RegattaLog regattaLog = getRegattaLike().getRegattaLog();
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
|
||||
for (Map.Entry<Competitor, Boat> competitorAndBoatEntry : competitorsAndBoats.entrySet()) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(now, now, regattaLogEventAuthorForRegatta,
|
||||
UUID.randomUUID(), competitorAndBoatEntry.getKey(), competitorAndBoatEntry.getValue()));
|
||||
for (Competitor competitor: competitors) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(now, now, regattaLogEventAuthorForRegatta,
|
||||
UUID.randomUUID(), competitor));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-13
@@ -4,7 +4,6 @@ import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -15,11 +14,11 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogBoatDeregistrator;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.tracking.analyzing.impl.RegattaLogBoatsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorDeregistrator;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsAndBoatsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsInLogAnalyzer;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
@@ -207,29 +206,29 @@ public abstract class AbstractLeaderboardImpl extends AbstractSimpleLeaderboardI
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog() {
|
||||
public Iterable<Competitor> getCompetitorsRegisteredInRegattaLog() {
|
||||
RegattaLog regattaLog = getRegattaLike().getRegattaLog();
|
||||
CompetitorsAndBoatsInLogAnalyzer<RegattaLog, RegattaLogEvent, RegattaLogEventVisitor> analyzer = new CompetitorsAndBoatsInLogAnalyzer<>(
|
||||
CompetitorsInLogAnalyzer<RegattaLog, RegattaLogEvent, RegattaLogEventVisitor> analyzer = new CompetitorsInLogAnalyzer<>(
|
||||
regattaLog);
|
||||
return analyzer.analyze();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void registerCompetitorAndBoat(Competitor competitor, Boat boat) {
|
||||
registerCompetitorsAndBoats(Collections.singletonMap(competitor, boat));
|
||||
public void registerCompetitor(Competitor competitor) {
|
||||
registerCompetitors(Collections.singletonList(competitor));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCompetitorsAndBoats(Map<Competitor, Boat> competitorsAndBoats) {
|
||||
public void registerCompetitors(Iterable<Competitor> competitors) {
|
||||
RegattaLog regattaLog = getRegattaLike().getRegattaLog();
|
||||
TimePoint now = MillisecondsTimePoint.now();
|
||||
|
||||
for (Map.Entry<Competitor, Boat> competitorAndBoatEntry : competitorsAndBoats.entrySet()) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorAndBoatEventImpl(now, now, regattaLogEventAuthorForAbstractLeaderboard,
|
||||
UUID.randomUUID(), competitorAndBoatEntry.getKey(), competitorAndBoatEntry.getValue()));
|
||||
for (Competitor competitor: competitors) {
|
||||
regattaLog.add(new RegattaLogRegisterCompetitorEventImpl(now, now, regattaLogEventAuthorForAbstractLeaderboard,
|
||||
UUID.randomUUID(), competitor));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void deregisterCompetitor(Competitor competitor) {
|
||||
deregisterCompetitors(Collections.singleton(competitor));
|
||||
|
||||
+3
-3
@@ -17,7 +17,7 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsAnd
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsFromRaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.BaseRegattaLogEventVisitor;
|
||||
@@ -83,7 +83,7 @@ public class CompetitorAndBoatProviderFromRaceColumnsAndRegattaLike {
|
||||
invalidateAllCompetitorsAndBoatsCaches();
|
||||
}
|
||||
|
||||
public void visit(RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
public void visit(RegattaLogRegisterBoatEvent event) {
|
||||
invalidateAllCompetitorsAndBoatsCaches();
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ public class CompetitorAndBoatProviderFromRaceColumnsAndRegattaLike {
|
||||
public void visit(RegattaLogRevokeEvent event) {
|
||||
try {
|
||||
if (RegattaLogRegisterCompetitorEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType())) ||
|
||||
RegattaLogRegisterCompetitorAndBoatEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType()))) {
|
||||
RegattaLogRegisterBoatEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType()))) {
|
||||
invalidateAllCompetitorsAndBoatsCaches();
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
|
||||
+3
-3
@@ -19,7 +19,7 @@ import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsAnd
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogUseCompetitorsFromRaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.BaseRegattaLogEventVisitor;
|
||||
@@ -90,7 +90,7 @@ public class CompetitorProviderFromRaceColumnsAndRegattaLike {
|
||||
invalidateAllCompetitorsCaches();
|
||||
}
|
||||
|
||||
public void visit(RegattaLogRegisterCompetitorAndBoatEvent event) {
|
||||
public void visit(RegattaLogRegisterBoatEvent event) {
|
||||
invalidateAllCompetitorsCaches();
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class CompetitorProviderFromRaceColumnsAndRegattaLike {
|
||||
public void visit(RegattaLogRevokeEvent event) {
|
||||
try {
|
||||
if (RegattaLogRegisterCompetitorEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType())) ||
|
||||
RegattaLogRegisterCompetitorAndBoatEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType()))) {
|
||||
RegattaLogRegisterBoatEvent.class.isAssignableFrom(Class.forName(event.getRevokedEventType()))) {
|
||||
invalidateAllCompetitorsCaches();
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
|
||||
+6
-6
@@ -190,8 +190,8 @@ public class DelegatingRegattaLeaderboardWithCompetitorElimination extends Abstr
|
||||
return getFullLeaderboard().getRegatta();
|
||||
}
|
||||
|
||||
public Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog() {
|
||||
return getFullLeaderboard().getCompetitorsAndBoatsRegisteredInRegattaLog();
|
||||
public Iterable<Competitor> getCompetitorsRegisteredInRegattaLog() {
|
||||
return getFullLeaderboard().getCompetitorsRegisteredInRegattaLog();
|
||||
}
|
||||
|
||||
public IsRegattaLike getRegattaLike() {
|
||||
@@ -202,12 +202,12 @@ public class DelegatingRegattaLeaderboardWithCompetitorElimination extends Abstr
|
||||
return getFullLeaderboard().getRacelog(raceColumnName, fleetName);
|
||||
}
|
||||
|
||||
public void registerCompetitorAndBoat(Competitor competitor, Boat boat) {
|
||||
getFullLeaderboard().registerCompetitorAndBoat(competitor, boat);
|
||||
public void registerCompetitor(Competitor competitor) {
|
||||
getFullLeaderboard().registerCompetitor(competitor);
|
||||
}
|
||||
|
||||
public void registerCompetitorsAndBoats(Map<Competitor, Boat> competitorsAndBoats) {
|
||||
getFullLeaderboard().registerCompetitorsAndBoats(competitorsAndBoats);
|
||||
public void registerCompetitors(Iterable<Competitor> competitors) {
|
||||
getFullLeaderboard().registerCompetitors(competitors);
|
||||
}
|
||||
|
||||
public void deregisterCompetitor(Competitor competitor) {
|
||||
|
||||
+5
-5
@@ -56,13 +56,13 @@ public interface HasRegattaLike {
|
||||
Iterable<Competitor> getAllCompetitors();
|
||||
|
||||
/**
|
||||
* Determines the competitors and boats registered in the regatta log. Note that this is not necessarily the complete set of
|
||||
* competitors and boats participating in this "regatta." For that, use {@link #getAllCompetitorsAndBoats()}.
|
||||
* Determines the competitors registered in the regatta log. Note that this is not necessarily the complete set of
|
||||
* competitors participating in this "regatta." For that, use {@link #getAllCompetitors()}.
|
||||
*/
|
||||
Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog();
|
||||
Iterable<Competitor> getCompetitorsRegisteredInRegattaLog();
|
||||
|
||||
void registerCompetitorAndBoat(Competitor competitor, Boat boat);
|
||||
void registerCompetitorsAndBoats(Map<Competitor, Boat> competitorsAndBoats);
|
||||
void registerCompetitor(Competitor competitor);
|
||||
void registerCompetitors(Iterable<Competitor> competitors);
|
||||
|
||||
void deregisterCompetitor(Competitor competitor);
|
||||
void deregisterCompetitors(Iterable<Competitor> competitors);
|
||||
|
||||
+1
-4
@@ -1,12 +1,9 @@
|
||||
package com.sap.sailing.domain.regattalike;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.leaderboard.HasRaceColumnsAndRegattaLike;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
|
||||
public interface LeaderboardThatHasRegattaLike extends Leaderboard, HasRaceColumnsAndRegattaLike {
|
||||
Map<Competitor, Boat> getCompetitorsAndBoatsRegisteredInRegattaLog();
|
||||
Iterable<Competitor> getCompetitorsRegisteredInRegattaLog();
|
||||
}
|
||||
|
||||
+1
-1
@@ -6545,7 +6545,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
throw new DoesNotHaveRegattaLogException();
|
||||
}
|
||||
HasRegattaLike regattaLikeLeaderboard = ((HasRegattaLike) leaderboard);
|
||||
return convertToCompetitorDTOs(regattaLikeLeaderboard.getCompetitorsAndBoatsRegisteredInRegattaLog().keySet());
|
||||
return convertToCompetitorDTOs(regattaLikeLeaderboard.getCompetitorsRegisteredInRegattaLog());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+3
-3
@@ -28,7 +28,7 @@ import org.junit.Test;
|
||||
|
||||
import com.mongodb.MongoException;
|
||||
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -429,8 +429,8 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
Boat boat2 = AbstractLeaderboardTest.createBoat("Humba2 Boot");
|
||||
res.getCompetitorStore().addNewCompetitors(Arrays.asList(competitor1, competitor2));
|
||||
res.getCompetitorStore().addNewBoats(Arrays.asList(boat1, boat2));
|
||||
regatta.getRegattaLog().add(new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), new LogEventAuthorImpl("Axel", 0), competitor1, boat1));
|
||||
regatta.getRegattaLog().add(new RegattaLogRegisterCompetitorAndBoatEventImpl(MillisecondsTimePoint.now(), new LogEventAuthorImpl("Axel", 0), competitor2, boat2));
|
||||
regatta.getRegattaLog().add(new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), new LogEventAuthorImpl("Axel", 0), competitor1));
|
||||
regatta.getRegattaLog().add(new RegattaLogRegisterCompetitorEventImpl(MillisecondsTimePoint.now(), new LogEventAuthorImpl("Axel", 0), competitor2));
|
||||
assertTrue(Util.contains(regatta.getAllCompetitors(), competitor1));
|
||||
assertTrue(Util.contains(regatta.getAllCompetitors(), competitor2));
|
||||
assertTrue(Util.contains(regatta.getAllBoats(), boat1));
|
||||
|
||||
+6
-4
@@ -23,8 +23,10 @@ import com.sap.sailing.domain.abstractlog.shared.analyzing.CompetitorsAndBoatsIn
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CompetitorWithBoat;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
@@ -40,7 +42,7 @@ import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest {
|
||||
private Competitor competitor;
|
||||
private CompetitorWithBoat competitor;
|
||||
private RegattaLog log;
|
||||
private RegattaLeaderboard leaderboard;
|
||||
private BoatClass boatClass = new BoatClassImpl("49er", false);
|
||||
@@ -50,16 +52,16 @@ public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest
|
||||
super.setUp();
|
||||
Competitor c = createCompetitors(1).get(0);
|
||||
Boat boat = racingEventService.getBaseDomainFactory().getOrCreateBoat("boat", "boat", boatClass, "GER1", null);
|
||||
competitor = racingEventService.getBaseDomainFactory().getOrCreateCompetitor(c.getId(), c.getName(), c.getShortName(),
|
||||
competitor = racingEventService.getBaseDomainFactory().getOrCreateCompetitorWithBoat(c.getId(), c.getName(), c.getShortName(),
|
||||
c.getColor(), c.getEmail(), c.getFlagImage(), (DynamicTeam) c.getTeam(),
|
||||
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null);
|
||||
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null, (DynamicBoat) boat);
|
||||
Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, MillisecondsTimePoint.now(),
|
||||
MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections
|
||||
.singleton(new FleetImpl("fleet")), Arrays.asList("column"), racingEventService)), false,
|
||||
new HighPoint(), 0, null, OneDesignRankingMetric::new);
|
||||
racingEventService.addRegattaWithoutReplication(regatta);
|
||||
leaderboard = racingEventService.addRegattaLeaderboard(regatta.getRegattaIdentifier(), "regatta", new int[] {});
|
||||
regatta.registerCompetitorAndBoat(competitor, boat);
|
||||
regatta.registerCompetitor(competitor);
|
||||
log = leaderboard.getRegattaLike().getRegattaLog();
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -296,11 +296,11 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
competitorId = competitorIdAsString;
|
||||
}
|
||||
|
||||
final CompetitorWithBoat competitor = getService().getCompetitorStore().getExistingCompetitorWithBoatById(competitorId);
|
||||
final Competitor competitor = getService().getCompetitorStore().getExistingCompetitorById(competitorId);
|
||||
if (competitor == null) {
|
||||
response = getBadCompetitorIdResponse(competitorId);
|
||||
} else {
|
||||
regatta.registerCompetitorAndBoat(competitor, competitor.getBoat());
|
||||
regatta.registerCompetitor(competitor);
|
||||
response = Response.ok().build();
|
||||
}
|
||||
}
|
||||
@@ -338,7 +338,7 @@ public class RegattasResource extends AbstractSailingServerResource {
|
||||
/* coach */ null), timeOnTimeFactor,
|
||||
timeOnDistanceAllowancePerNauticalMileAsMillis == null ? null : new MillisecondsDurationImpl(timeOnDistanceAllowancePerNauticalMileAsMillis),
|
||||
searchTag, (DynamicBoat) boat);
|
||||
regatta.registerCompetitorAndBoat(competitor, boat);
|
||||
regatta.registerCompetitor(competitor);
|
||||
response = Response.ok(CompetitorWithBoatJsonSerializer.create().serialize(competitor).toJSONString()).
|
||||
header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build();
|
||||
}
|
||||
|
||||
+2
-2
@@ -10,7 +10,7 @@ import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.CompetitorAndBoat;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
@@ -34,7 +34,7 @@ public class RegattaLogReplicationTest extends
|
||||
@Before
|
||||
public void createEvent() throws Exception {
|
||||
final CompetitorAndBoat competitorAndBoat = TrackBasedTest.createCompetitorAndBoat("Test Competitor");
|
||||
regattaLogEvent = new RegattaLogRegisterCompetitorAndBoatEventImpl(t(0), t(0), author, 0, competitorAndBoat.getCompetitor(), competitorAndBoat.getBoat());
|
||||
regattaLogEvent = new RegattaLogRegisterCompetitorEventImpl(t(0), t(0), author, 0, competitorAndBoat.getCompetitor());
|
||||
// anotherRegattaLogEvent = new RegattaLogRegisterCompetitorEventImpl(t(1), author, t(1), 1, null);
|
||||
}
|
||||
|
||||
|
||||
+6
-7
@@ -52,10 +52,10 @@ import com.sap.sailing.domain.abstractlog.race.impl.RaceLogStartTimeEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogWindFixEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorAndBoatEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogRegisterCompetitorEvent;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorBravoMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorAndBoatEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogRegisterCompetitorEventImpl;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -261,7 +261,6 @@ public class MasterDataImportTest {
|
||||
BoatClass boatClass = new BoatClassImpl("H16", true);
|
||||
CompetitorImpl competitor = new CompetitorImpl(competitorUUID, "Froderik", "KYC", Color.RED, null, null, team, /* timeOnTimeFactor */
|
||||
null, /* timeOnDistanceAllowancePerNauticalMile */null, null);
|
||||
Boat boat = new BoatImpl(competitorUUID, "Boat", boatClass, "GER1");
|
||||
competitors.add(competitor);
|
||||
UUID competitorToSuppressUUID = UUID.randomUUID();
|
||||
Set<DynamicPerson> sailors2 = new HashSet<DynamicPerson>();
|
||||
@@ -294,8 +293,8 @@ public class MasterDataImportTest {
|
||||
|
||||
// Set RegattaLog event
|
||||
TimePoint regattaLogTimepoint = new MillisecondsTimePoint(84392048L);
|
||||
RegattaLogRegisterCompetitorAndBoatEvent registerEvent = new RegattaLogRegisterCompetitorAndBoatEventImpl(
|
||||
regattaLogTimepoint, regattaLogTimepoint, author, UUID.randomUUID(), competitor, boat);
|
||||
RegattaLogRegisterCompetitorEvent registerEvent = new RegattaLogRegisterCompetitorEventImpl(
|
||||
regattaLogTimepoint, regattaLogTimepoint, author, UUID.randomUUID(), competitor);
|
||||
regatta.getRegattaLog().add(registerEvent);
|
||||
|
||||
// Add some racelogtracking stuff
|
||||
@@ -458,7 +457,7 @@ public class MasterDataImportTest {
|
||||
raceColumnOnTarget.getRaceLog(fleet1OnTarget).add(postImportLogEvent);
|
||||
|
||||
// Check for regatta log event
|
||||
RegattaLogRegisterCompetitorAndBoatEvent registerEventOnTarget = (RegattaLogRegisterCompetitorAndBoatEvent) regattaOnTarget
|
||||
RegattaLogRegisterCompetitorEvent registerEventOnTarget = (RegattaLogRegisterCompetitorEvent) regattaOnTarget
|
||||
.getRegattaLog().getFirstFixAtOrAfter(regattaLogTimepoint);
|
||||
Assert.assertNotNull(registerEventOnTarget);
|
||||
Assert.assertEquals(registerEvent.getId(), registerEventOnTarget.getId());
|
||||
@@ -490,7 +489,7 @@ public class MasterDataImportTest {
|
||||
|
||||
// Check for persisting of regatta log events
|
||||
Regatta regattaOnTarget2 = dest2.getRegattaByName(TEST_LEADERBOARD_NAME);
|
||||
RegattaLogRegisterCompetitorAndBoatEvent registerEventOnTarget2 = (RegattaLogRegisterCompetitorAndBoatEvent) regattaOnTarget2
|
||||
RegattaLogRegisterCompetitorEvent registerEventOnTarget2 = (RegattaLogRegisterCompetitorEvent) regattaOnTarget2
|
||||
.getRegattaLog().getFirstFixAtOrAfter(regattaLogTimepoint);
|
||||
Assert.assertNotNull(registerEventOnTarget2);
|
||||
Assert.assertEquals(registerEvent.getId(), registerEventOnTarget2.getId());
|
||||
|
||||
+2
-7
@@ -23,7 +23,6 @@ import com.sap.sailing.domain.base.impl.TransientCompetitorStoreImpl;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.PersistenceFactory;
|
||||
import com.sap.sailing.domain.persistence.impl.CollectionNames;
|
||||
import com.sap.sse.common.Color;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TypeBasedServiceFinderFactory;
|
||||
@@ -76,11 +75,8 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
||||
* Migrate competitors with contained boats (before bug2822) to competitors with separate boats if required
|
||||
*/
|
||||
private void migrateCompetitorsIfRequired() {
|
||||
boolean competitorsCollectionExist = storeTo.getDatabase().collectionExists(CollectionNames.COMPETITORS.name());
|
||||
boolean boatsCollectionCollectionExist = storeTo.getDatabase().collectionExists(CollectionNames.BOATS.name());
|
||||
boolean migrationRequired = competitorsCollectionExist && !boatsCollectionCollectionExist;
|
||||
if (migrationRequired) {
|
||||
Collection<CompetitorWithBoat> allLegacyCompetitorsWithBoat = loadFrom.renameCompetitorsCollectionAndloadAllLegacyCompetitors();
|
||||
Collection<CompetitorWithBoat> allLegacyCompetitorsWithBoat = loadFrom.migrateLegacyCompetitorsIfRequired();
|
||||
if (allLegacyCompetitorsWithBoat != null) {
|
||||
List<Competitor> newCompetitors = new ArrayList<>();
|
||||
List<Boat> newBoats = new ArrayList<>();
|
||||
|
||||
@@ -99,7 +95,6 @@ public class PersistentCompetitorStore extends TransientCompetitorStoreImpl impl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
DomainObjectFactory getDomainObjectFactory() {
|
||||
return loadFrom;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user