mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 14:20:55 +00:00
added handicap methods also on IsRegattaLike implementations (delegation pattern); added RegattaLogEvents placeholders to override handicaps per regatta
This commit is contained in:
1 parent
e5b8da8e4b
commit
ff4bb7e95e
11 files changed
+104
-1
No files matched your search
+9
-1
@@ -35,8 +35,8 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogRevokeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogStartProcedureChangedEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogStartTimeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogWindFixEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.scoring.RaceLogAdditionalScoringInformationEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.SuppressedMarkPassingsEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.scoring.RaceLogAdditionalScoringInformationEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogCloseOpenEndedDeviceMappingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDefineMarkEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
|
||||
@@ -50,6 +50,7 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
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.RegattaLogSetCompetitorHandicapInfoEvent;
|
||||
import com.sap.sailing.domain.abstractlog.shared.events.DeviceMappingEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.ControlPoint;
|
||||
@@ -1377,4 +1378,11 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
|
||||
storeTimePoint(event.getClosingTimePoint(), result, FieldNames.REGATTA_LOG_CLOSING_TIMEPOINT);
|
||||
storeRegattaLogEvent(regattaLikeId, result);
|
||||
}
|
||||
|
||||
public void storeRegattaLogEvent(RegattaLikeIdentifier regattaLikeId, RegattaLogSetCompetitorHandicapInfoEvent event) {
|
||||
DBObject result = createBasicRegattaLogEventDBObject(event);
|
||||
result.put(FieldNames.REGATTA_LOG_EVENT_CLASS.name(), RegattaLogCloseOpenEndedDeviceMappingEvent.class.getSimpleName());
|
||||
result.put(FieldNames.REGATTA_LOG_COMPETITOR_ID.name(), event.getCompetitor().getId());
|
||||
storeRegattaLogEvent(regattaLikeId, result);
|
||||
}
|
||||
}
|
||||
+12
@@ -8,6 +8,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
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.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnTimeFactor;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier;
|
||||
|
||||
@@ -48,4 +50,14 @@ public class MongoRegattaLogStoreVisitor implements RegattaLogEventVisitor {
|
||||
public void visit(RegattaLogRegisterCompetitorEvent event) {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactor event) {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile event) {
|
||||
mongoObjectFactory.storeRegattaLogEvent(regattaLikeIdentifier, event);
|
||||
}
|
||||
}
|
||||
+6
@@ -5,6 +5,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
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.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnTimeFactor;
|
||||
|
||||
public interface RegattaLogEventVisitor {
|
||||
void visit(RegattaLogRevokeEvent event);
|
||||
@@ -16,4 +18,8 @@ public interface RegattaLogEventVisitor {
|
||||
void visit(RegattaLogCloseOpenEndedDeviceMappingEvent event);
|
||||
|
||||
void visit(RegattaLogRegisterCompetitorEvent event);
|
||||
|
||||
void visit(RegattaLogSetCompetitorTimeOnTimeFactor event);
|
||||
|
||||
void visit(RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile event);
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
package com.sap.sailing.domain.abstractlog.regatta.events;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.Revokable;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
|
||||
public interface RegattaLogSetCompetitorHandicapInfoEvent extends RegattaLogEvent, Revokable {
|
||||
Competitor getCompetitor();
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package com.sap.sailing.domain.abstractlog.regatta.events;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
|
||||
public interface RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile extends Competitor,
|
||||
RegattaLogSetCompetitorHandicapInfoEvent {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
package com.sap.sailing.domain.abstractlog.regatta.events;
|
||||
|
||||
public interface RegattaLogSetCompetitorTimeOnTimeFactor extends RegattaLogSetCompetitorHandicapInfoEvent {
|
||||
|
||||
}
|
||||
+10
@@ -6,6 +6,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
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.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnTimeFactor;
|
||||
|
||||
public class BaseRegattaLogEventVisitor implements RegattaLogEventVisitor {
|
||||
|
||||
@@ -29,4 +31,12 @@ public class BaseRegattaLogEventVisitor implements RegattaLogEventVisitor {
|
||||
public void visit(RegattaLogRegisterCompetitorEvent event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactor event) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile event) {
|
||||
}
|
||||
|
||||
}
|
||||
+12
@@ -7,6 +7,8 @@ import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompeti
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMarkMappingEvent;
|
||||
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.RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogSetCompetitorTimeOnTimeFactor;
|
||||
|
||||
public abstract class RegattaLogEventListener implements RegattaLogEventVisitor {
|
||||
protected abstract void eventAdded(RegattaLogEvent event);
|
||||
@@ -35,4 +37,14 @@ public abstract class RegattaLogEventListener implements RegattaLogEventVisitor
|
||||
public void visit(RegattaLogRegisterCompetitorEvent event) {
|
||||
eventAdded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnTimeFactor event) {
|
||||
eventAdded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RegattaLogSetCompetitorTimeOnDistanceAllowancePerNauticalMile event) {
|
||||
eventAdded(event);
|
||||
}
|
||||
}
|
||||
+11
@@ -69,6 +69,7 @@ import com.sap.sailing.domain.tracking.WindStore;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.domain.tracking.WindWithConfidence;
|
||||
import com.sap.sailing.domain.tracking.impl.WindTrackImpl;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
|
||||
@@ -443,6 +444,16 @@ public class MockedTrackedRace implements DynamicTrackedRace {
|
||||
public RankingMetricConstructor getRankingMetricConstructor() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getTimeOnTimeFactor(Competitor competitor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getTimeOnDistanceAllowancePerNauticalMile(Competitor competitor) {
|
||||
return null;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegatta;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
import com.sap.sailing.util.impl.RaceColumnListeners;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.impl.NamedImpl;
|
||||
@@ -577,6 +578,16 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
regattaLikeHelper.removeListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getTimeOnTimeFactor(Competitor competitor) {
|
||||
return regattaLikeHelper.getTimeOnTimeFactor(competitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getTimeOnDistanceAllowancePerNauticalMile(Competitor competitor) {
|
||||
return regattaLikeHelper.getTimeOnDistanceAllowancePerNauticalMile(competitor);
|
||||
}
|
||||
|
||||
public void adjustEventToRegattaAssociation(EventFetcher eventFetcher) {
|
||||
CourseArea defaultCourseArea = getDefaultCourseArea();
|
||||
for (Event event : eventFetcher.getAllEvents()) {
|
||||
|
||||
+11
@@ -32,6 +32,7 @@ import com.sap.sailing.domain.regattalike.RegattaLikeListener;
|
||||
import com.sap.sailing.domain.regattalog.RegattaLogStore;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sse.common.Duration;
|
||||
|
||||
/**
|
||||
* A leaderboard implementation that allows users to flexibly configure which columns exist. No constraints need to be observed regarding
|
||||
@@ -280,6 +281,16 @@ public class FlexibleLeaderboardImpl extends AbstractLeaderboardImpl implements
|
||||
regattaLikeHelper.removeListener(listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getTimeOnTimeFactor(Competitor competitor) {
|
||||
return regattaLikeHelper.getTimeOnTimeFactor(competitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getTimeOnDistanceAllowancePerNauticalMile(Competitor competitor) {
|
||||
return regattaLikeHelper.getTimeOnDistanceAllowancePerNauticalMile(competitor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<Competitor> getAllCompetitors() {
|
||||
Set<Competitor> result = new HashSet<>();
|
||||
|
||||
Reference in new issue
Block a user