mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-22 12:03:58 +00:00
fix for bug 4186 (leaderboard cache not invalidated upon race column name change);
the fix introduces a new method on RaceColumnListener for column name changes; furthermore, synchronization was added to the leaderboard change listeners collection on AbstractLeaderboardWithCache.leaderboardChangeListeners. Change-Id: I06457dc256fc3611ed2189a6a7841017cac6b58e
This commit is contained in:
1 parent
c1ae14d786
commit
d77bf9827b
13 files changed
+95
-176
No files matched your search
-1
@@ -16,7 +16,6 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
|||||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||||
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
||||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
|
||||||
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
||||||
import com.sap.sailing.domain.leaderboard.impl.LeaderboardGroupImpl;
|
import com.sap.sailing.domain.leaderboard.impl.LeaderboardGroupImpl;
|
||||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||||
|
|||||||
@@ -33,6 +33,8 @@ public interface RaceColumnListener extends Serializable {
|
|||||||
|
|
||||||
void raceColumnMoved(RaceColumn raceColumn, int newIndex);
|
void raceColumnMoved(RaceColumn raceColumn, int newIndex);
|
||||||
|
|
||||||
|
void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName);
|
||||||
|
|
||||||
void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor);
|
void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor);
|
||||||
|
|
||||||
void competitorDisplayNameChanged(Competitor competitor, String oldDisplayName, String displayName);
|
void competitorDisplayNameChanged(Competitor competitor, String oldDisplayName, String displayName);
|
||||||
|
|||||||
+5
@@ -79,6 +79,11 @@ public interface RaceColumnListenerWithDefaultAction extends RaceColumnListener
|
|||||||
defaultAction();
|
defaultAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
defaultAction();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
default void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
default void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
||||||
defaultAction();
|
defaultAction();
|
||||||
|
|||||||
@@ -508,6 +508,11 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
|||||||
raceColumnListeners.notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
raceColumnListeners.notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
raceColumnListeners.notifyListenersAboutRaceColumnNameChanged(raceColumn, oldName, newName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
||||||
raceColumnListeners.notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
raceColumnListeners.notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
||||||
|
|||||||
@@ -361,6 +361,11 @@ public class SeriesImpl extends RenamableImpl implements Series, RaceColumnListe
|
|||||||
raceColumnListeners.notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
raceColumnListeners.notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
raceColumnListeners.notifyListenersAboutRaceColumnNameChanged(raceColumn, oldName, newName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
||||||
raceColumnListeners.notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
raceColumnListeners.notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
||||||
|
|||||||
+9
-1
@@ -246,7 +246,11 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void notifyLeaderboardChangeListeners(Consumer<LeaderboardChangeListener> notifier) {
|
protected void notifyLeaderboardChangeListeners(Consumer<LeaderboardChangeListener> notifier) {
|
||||||
for (final LeaderboardChangeListener listener : leaderboardChangeListeners) {
|
final Set<LeaderboardChangeListener> workingListeners;
|
||||||
|
synchronized (leaderboardChangeListeners) {
|
||||||
|
workingListeners = new HashSet<>(leaderboardChangeListeners);
|
||||||
|
}
|
||||||
|
for (final LeaderboardChangeListener listener : workingListeners) {
|
||||||
try {
|
try {
|
||||||
notifier.accept(listener);
|
notifier.accept(listener);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -258,13 +262,17 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addLeaderboardChangeListener(LeaderboardChangeListener listener) {
|
public void addLeaderboardChangeListener(LeaderboardChangeListener listener) {
|
||||||
|
synchronized (leaderboardChangeListeners) {
|
||||||
leaderboardChangeListeners.add(listener);
|
leaderboardChangeListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void removeLeaderboardChangeListener(LeaderboardChangeListener listener) {
|
public void removeLeaderboardChangeListener(LeaderboardChangeListener listener) {
|
||||||
|
synchronized (leaderboardChangeListeners) {
|
||||||
leaderboardChangeListeners.remove(listener);
|
leaderboardChangeListeners.remove(listener);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public LeaderboardDTO getLeaderboardDTO(TimePoint timePoint,
|
public LeaderboardDTO getLeaderboardDTO(TimePoint timePoint,
|
||||||
|
|||||||
+5
@@ -258,6 +258,11 @@ public abstract class AbstractSimpleLeaderboardImpl extends AbstractLeaderboardW
|
|||||||
getRaceColumnListeners().notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
getRaceColumnListeners().notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
getRaceColumnListeners().notifyListenersAboutRaceColumnNameChanged(raceColumn, oldName, newName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
||||||
getRaceColumnListeners().notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
getRaceColumnListeners().notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
||||||
|
|||||||
+9
-66
@@ -9,18 +9,16 @@ import java.util.Iterator;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.CompetitorFactory;
|
import com.sap.sailing.domain.base.CompetitorFactory;
|
||||||
import com.sap.sailing.domain.base.Fleet;
|
import com.sap.sailing.domain.base.Fleet;
|
||||||
import com.sap.sailing.domain.base.RaceColumn;
|
import com.sap.sailing.domain.base.RaceColumn;
|
||||||
import com.sap.sailing.domain.base.RaceColumnListener;
|
import com.sap.sailing.domain.base.RaceColumnListener;
|
||||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||||
|
import com.sap.sailing.domain.base.impl.RaceColumnListenerWithDefaultAction;
|
||||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||||
import com.sap.sailing.domain.leaderboard.DelayedLeaderboardCorrections;
|
import com.sap.sailing.domain.leaderboard.DelayedLeaderboardCorrections;
|
||||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||||
import com.sap.sailing.domain.leaderboard.ResultDiscardingRule;
|
|
||||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
|
||||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||||
import com.sap.sse.common.IsManagedByCache;
|
import com.sap.sse.common.IsManagedByCache;
|
||||||
|
|
||||||
@@ -41,7 +39,7 @@ import com.sap.sse.common.IsManagedByCache;
|
|||||||
* @author Axel Uhl (d043530)
|
* @author Axel Uhl (d043530)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class DelayedLeaderboardCorrectionsImpl implements DelayedLeaderboardCorrections, IsManagedByCache<SharedDomainFactory> {
|
public class DelayedLeaderboardCorrectionsImpl implements RaceColumnListenerWithDefaultAction, DelayedLeaderboardCorrections, IsManagedByCache<SharedDomainFactory> {
|
||||||
private static final long serialVersionUID = 8824782847677232275L;
|
private static final long serialVersionUID = 8824782847677232275L;
|
||||||
|
|
||||||
// structures that key corrections by competitor ID
|
// structures that key corrections by competitor ID
|
||||||
@@ -270,72 +268,17 @@ public class DelayedLeaderboardCorrectionsImpl implements DelayedLeaderboardCorr
|
|||||||
assignLeftOvers(trackedRace);
|
assignLeftOvers(trackedRace);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void trackedRaceUnlinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isMedalRaceChanged(RaceColumn raceColumn, boolean newIsMedalRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFleetsCanRunInParallelChanged(RaceColumn raceColumn, boolean newIsFleetsCanRunInParallel) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isStartsWithZeroScoreChanged(RaceColumn raceColumn, boolean newIsStartsWithZeroScore) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void hasSplitFleetContiguousScoringChanged(RaceColumn raceColumn, boolean hasSplitFleetContiguousScoring) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFirstColumnIsNonDiscardableCarryForwardChanged(RaceColumn raceColumn, boolean firstColumnIsNonDiscardableCarryForward) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean canAddRaceColumnToContainer(RaceColumn raceColumn) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnAddedToContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnRemovedFromContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnMoved(RaceColumn raceColumn, int newIndex) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void competitorDisplayNameChanged(Competitor competitor, String oldDisplayName, String displayName) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resultDiscardingRuleChanged(ResultDiscardingRule oldDiscardingRule, ResultDiscardingRule newDiscardingRule) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceLogEventAdded(RaceColumn raceColumn, RaceLogIdentifier raceLogIdentifier, RaceLogEvent event) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isTransient() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IsManagedByCache<SharedDomainFactory> resolve(SharedDomainFactory domainFactory) {
|
public IsManagedByCache<SharedDomainFactory> resolve(SharedDomainFactory domainFactory) {
|
||||||
this.competitorFactory = domainFactory;
|
this.competitorFactory = domainFactory;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default action for {@link RaceColumnListener} callbacks is to do nothing
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void defaultAction() {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
+5
@@ -8,6 +8,7 @@ import com.sap.sailing.domain.base.impl.AbstractRaceColumn;
|
|||||||
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
||||||
import com.sap.sailing.domain.regattalike.IsRegattaLike;
|
import com.sap.sailing.domain.regattalike.IsRegattaLike;
|
||||||
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
|
import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider;
|
||||||
|
import com.sap.sse.common.Util;
|
||||||
|
|
||||||
public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceColumn {
|
public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceColumn {
|
||||||
private static final long serialVersionUID = -7801617988982540470L;
|
private static final long serialVersionUID = -7801617988982540470L;
|
||||||
@@ -26,7 +27,11 @@ public class RaceColumnImpl extends AbstractRaceColumn implements FlexibleRaceCo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setName(String newName) {
|
public void setName(String newName) {
|
||||||
|
final String oldName = this.name;
|
||||||
this.name = newName;
|
this.name = newName;
|
||||||
|
if (!Util.equalsWithNull(oldName, newName)) {
|
||||||
|
getRaceColumnListeners().notifyListenersAboutRaceColumnNameChanged(this, oldName, newName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+29
-1
@@ -7,6 +7,7 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
|||||||
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
import com.sap.sailing.domain.base.Competitor;
|
||||||
import com.sap.sailing.domain.base.Fleet;
|
import com.sap.sailing.domain.base.Fleet;
|
||||||
|
import com.sap.sailing.domain.base.LeaderboardChangeListener;
|
||||||
import com.sap.sailing.domain.base.Mark;
|
import com.sap.sailing.domain.base.Mark;
|
||||||
import com.sap.sailing.domain.base.RaceColumn;
|
import com.sap.sailing.domain.base.RaceColumn;
|
||||||
import com.sap.sailing.domain.base.RaceColumnListener;
|
import com.sap.sailing.domain.base.RaceColumnListener;
|
||||||
@@ -28,7 +29,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
|
|||||||
* @author Axel Uhl
|
* @author Axel Uhl
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements RaceColumn, RaceColumnListener {
|
public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements RaceColumn, RaceColumnListener, LeaderboardChangeListener {
|
||||||
private static final long serialVersionUID = 3092096133388262955L;
|
private static final long serialVersionUID = 3092096133388262955L;
|
||||||
private final Leaderboard leaderboard;
|
private final Leaderboard leaderboard;
|
||||||
private final Fleet metaFleet;
|
private final Fleet metaFleet;
|
||||||
@@ -38,6 +39,7 @@ public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements R
|
|||||||
this.leaderboard = leaderboard;
|
this.leaderboard = leaderboard;
|
||||||
this.metaFleet = metaFleet;
|
this.metaFleet = metaFleet;
|
||||||
leaderboard.addRaceColumnListener(this);
|
leaderboard.addRaceColumnListener(this);
|
||||||
|
leaderboard.addLeaderboardChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -161,6 +163,11 @@ public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements R
|
|||||||
getRaceColumnListeners().notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
getRaceColumnListeners().notifyListenersAboutRaceColumnMoved(raceColumn, newIndex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void raceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
getRaceColumnListeners().notifyListenersAboutRaceColumnNameChanged(raceColumn, oldName, newName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
||||||
getRaceColumnListeners().notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
getRaceColumnListeners().notifyListenersAboutFactorChanged(raceColumn, oldFactor, newFactor);
|
||||||
@@ -284,4 +291,25 @@ public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements R
|
|||||||
@Override
|
@Override
|
||||||
public void disableCompetitorRegistrationOnRaceLog(Fleet fleetByName) {
|
public void disableCompetitorRegistrationOnRaceLog(Fleet fleetByName) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the leaderboard name changes, notify this to this object's {@link RaceColumnListener}s as a
|
||||||
|
* change of this race column's name, but only if no {@link Leaderboard#getDisplayName() display name}
|
||||||
|
* is set because that would take precedence over the regular name.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void nameChanged(String oldName, String newName) {
|
||||||
|
if (leaderboard.getDisplayName() == null) {
|
||||||
|
getRaceColumnListeners().notifyListenersAboutRaceColumnNameChanged(this, oldName, newName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the leaderboard display name changes, notify this to this object's {@link RaceColumnListener}s as a
|
||||||
|
* change of this race column's name
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void displayNameChanged(String oldDisplayName, String newDisplayName) {
|
||||||
|
getRaceColumnListeners().notifyListenersAboutRaceColumnNameChanged(this, oldDisplayName, newDisplayName);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -128,6 +128,12 @@ public class RaceColumnListeners implements Serializable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void notifyListenersAboutRaceColumnNameChanged(RaceColumn raceColumn, String oldName, String newName) {
|
||||||
|
for (RaceColumnListener listener : getRaceColumnListeners()) {
|
||||||
|
listener.raceColumnNameChanged(raceColumn, oldName, newName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private Set<RaceColumnListener> getRaceColumnListeners() {
|
private Set<RaceColumnListener> getRaceColumnListeners() {
|
||||||
synchronized (raceColumnListeners) {
|
synchronized (raceColumnListeners) {
|
||||||
return new HashSet<RaceColumnListener>(raceColumnListeners);
|
return new HashSet<RaceColumnListener>(raceColumnListeners);
|
||||||
|
|||||||
+6
-52
@@ -2,11 +2,10 @@ package com.sap.sailing.server.impl;
|
|||||||
|
|
||||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||||
import com.sap.sailing.domain.base.Competitor;
|
|
||||||
import com.sap.sailing.domain.base.Fleet;
|
import com.sap.sailing.domain.base.Fleet;
|
||||||
import com.sap.sailing.domain.base.RaceColumn;
|
import com.sap.sailing.domain.base.RaceColumn;
|
||||||
import com.sap.sailing.domain.base.RaceColumnListener;
|
import com.sap.sailing.domain.base.RaceColumnListener;
|
||||||
import com.sap.sailing.domain.leaderboard.ResultDiscardingRule;
|
import com.sap.sailing.domain.base.impl.RaceColumnListenerWithDefaultAction;
|
||||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
||||||
import com.sap.sailing.domain.regattalike.FlexibleLeaderboardAsRegattaLikeIdentifier;
|
import com.sap.sailing.domain.regattalike.FlexibleLeaderboardAsRegattaLikeIdentifier;
|
||||||
import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier;
|
import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier;
|
||||||
@@ -34,7 +33,7 @@ import com.sap.sailing.server.operationaltransformation.RecordRaceLogEventOnRega
|
|||||||
* @author Axel Uhl (d043530)
|
* @author Axel Uhl (d043530)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class RaceLogReplicatorAndNotifier implements RaceColumnListener {
|
public class RaceLogReplicatorAndNotifier implements RaceColumnListenerWithDefaultAction {
|
||||||
private static final long serialVersionUID = 7190510926643574068L;
|
private static final long serialVersionUID = 7190510926643574068L;
|
||||||
|
|
||||||
private final Replicator service;
|
private final Replicator service;
|
||||||
@@ -73,56 +72,11 @@ public class RaceLogReplicatorAndNotifier implements RaceColumnListener {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default action for this {@link RaceColumnListener} is to do nothing.
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void trackedRaceLinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
|
public void defaultAction() {
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void trackedRaceUnlinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isMedalRaceChanged(RaceColumn raceColumn, boolean newIsMedalRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFleetsCanRunInParallelChanged(RaceColumn raceColumn, boolean newIsFleetsCanRunInParallel) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isStartsWithZeroScoreChanged(RaceColumn raceColumn, boolean newIsStartsWithZeroScore) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFirstColumnIsNonDiscardableCarryForwardChanged(RaceColumn raceColumn, boolean firstColumnIsNonDiscardableCarryForward) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void hasSplitFleetContiguousScoringChanged(RaceColumn raceColumn, boolean hasSplitFleetContiguousScoring) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnAddedToContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnRemovedFromContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnMoved(RaceColumn raceColumn, int newIndex) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void competitorDisplayNameChanged(Competitor competitor, String oldDisplayName, String displayName) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resultDiscardingRuleChanged(ResultDiscardingRule oldDiscardingRule, ResultDiscardingRule newDiscardingRule) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+9
-55
@@ -17,13 +17,12 @@ import com.sap.sailing.domain.base.Competitor;
|
|||||||
import com.sap.sailing.domain.base.Fleet;
|
import com.sap.sailing.domain.base.Fleet;
|
||||||
import com.sap.sailing.domain.base.RaceColumn;
|
import com.sap.sailing.domain.base.RaceColumn;
|
||||||
import com.sap.sailing.domain.base.RaceColumnListener;
|
import com.sap.sailing.domain.base.RaceColumnListener;
|
||||||
|
import com.sap.sailing.domain.base.impl.RaceColumnListenerWithDefaultAction;
|
||||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||||
import com.sap.sailing.domain.leaderboard.ResultDiscardingRule;
|
|
||||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
||||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
|
||||||
import com.sap.sailing.server.RacingEventService;
|
import com.sap.sailing.server.RacingEventService;
|
||||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||||
import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPointsReason;
|
import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPointsReason;
|
||||||
@@ -32,7 +31,7 @@ import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardScoreCo
|
|||||||
import com.sap.sse.common.TimePoint;
|
import com.sap.sse.common.TimePoint;
|
||||||
import com.sap.sse.common.Util;
|
import com.sap.sse.common.Util;
|
||||||
|
|
||||||
public class RaceLogScoringReplicator implements RaceColumnListener {
|
public class RaceLogScoringReplicator implements RaceColumnListenerWithDefaultAction {
|
||||||
|
|
||||||
private static final long serialVersionUID = -5958519195756937338L;
|
private static final long serialVersionUID = -5958519195756937338L;
|
||||||
|
|
||||||
@@ -44,58 +43,6 @@ public class RaceLogScoringReplicator implements RaceColumnListener {
|
|||||||
this.service = service;
|
this.service = service;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void trackedRaceLinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void trackedRaceUnlinked(RaceColumn raceColumn, Fleet fleet, TrackedRace trackedRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isMedalRaceChanged(RaceColumn raceColumn, boolean newIsMedalRace) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFleetsCanRunInParallelChanged(RaceColumn raceColumn, boolean newIsFleetsCanRunInParallel) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isStartsWithZeroScoreChanged(RaceColumn raceColumn, boolean newIsStartsWithZeroScore) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void hasSplitFleetContiguousScoringChanged(RaceColumn raceColumn, boolean hasSplitFleetContiguousScoring) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void isFirstColumnIsNonDiscardableCarryForwardChanged(RaceColumn raceColumn, boolean firstColumnIsNonDiscardableCarryForward) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnAddedToContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnRemovedFromContainer(RaceColumn raceColumn) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void raceColumnMoved(RaceColumn raceColumn, int newIndex) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void factorChanged(RaceColumn raceColumn, Double oldFactor, Double newFactor) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void competitorDisplayNameChanged(Competitor competitor, String oldDisplayName, String displayName) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void resultDiscardingRuleChanged(ResultDiscardingRule oldDiscardingRule, ResultDiscardingRule newDiscardingRule) {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void raceLogEventAdded(RaceColumn raceColumn, RaceLogIdentifier raceLogIdentifier, RaceLogEvent event) {
|
public void raceLogEventAdded(RaceColumn raceColumn, RaceLogIdentifier raceLogIdentifier, RaceLogEvent event) {
|
||||||
event.accept(new BaseRaceLogEventVisitor() {
|
event.accept(new BaseRaceLogEventVisitor() {
|
||||||
@@ -287,4 +234,11 @@ public class RaceLogScoringReplicator implements RaceColumnListener {
|
|||||||
return numberOfCompetitorsInRace;
|
return numberOfCompetitorsInRace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The default action of this {@link RaceColumnListener} is to do nothing.
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void defaultAction() {
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user