diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogAttachOnTrackedRaceTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogAttachOnTrackedRaceTest.java
index f5ebcade7a9..80eb691ef57 100644
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogAttachOnTrackedRaceTest.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogAttachOnTrackedRaceTest.java
@@ -39,7 +39,7 @@ public class RaceLogAttachOnTrackedRaceTest {
}
@Override
- public RaceLog getRaceLog() {
+ public RaceLog getRaceLog(Serializable identifier) {
return raceLog;
}
}
@@ -61,7 +61,7 @@ public class RaceLogAttachOnTrackedRaceTest {
column.setTrackedRace(defaultFleet, trackedRace);
- assertSame(column.getRaceLog(defaultFleet), trackedRace.getRaceLog());
+ assertSame(column.getRaceLog(defaultFleet), trackedRace.getRaceLog(column.getRaceLogIdentifier(defaultFleet)));
}
@Test
@@ -74,7 +74,7 @@ public class RaceLogAttachOnTrackedRaceTest {
column.setTrackedRace(fleet, trackedRace);
column.setTrackedRace(fleet, null);
- assertNull(trackedRace.getRaceLog());
+ assertNull(trackedRace.getRaceLog(column.getRaceLogIdentifier(fleet)));
}
@Test
@@ -88,8 +88,8 @@ public class RaceLogAttachOnTrackedRaceTest {
column.setTrackedRace(aFleet, trackedRace);
- assertSame(column.getRaceLog(aFleet), trackedRace.getRaceLog());
- assertNotSame(column.getRaceLog(bFleet), trackedRace.getRaceLog());
+ assertSame(column.getRaceLog(aFleet), trackedRace.getRaceLog(column.getRaceLogIdentifier(aFleet)));
+ assertNotSame(column.getRaceLog(bFleet), trackedRace.getRaceLog(column.getRaceIdentifier(bFleet)));
}
@Test
@@ -104,8 +104,8 @@ public class RaceLogAttachOnTrackedRaceTest {
column.setTrackedRace(fleet, firstRace);
column.setTrackedRace(fleet, secondRace);
- assertNull(firstRace.getRaceLog());
- assertSame(column.getRaceLog(fleet), secondRace.getRaceLog());
+ assertNull(firstRace.getRaceLog(column.getRaceLogIdentifier(fleet)));
+ assertSame(column.getRaceLog(fleet), secondRace.getRaceLog(column.getRaceLogIdentifier(fleet)));
}
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
index f241bbfa778..c3a8cc858dc 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
@@ -753,7 +753,7 @@ public class MockedTrackedRace implements DynamicTrackedRace {
}
@Override
- public RaceLog getRaceLog() {
+ public RaceLog getRaceLog(Serializable identifier) {
// TODO Auto-generated method stub
return null;
}
diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
index e31b38f9e8b..0f45b8df200 100755
--- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
+++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
@@ -490,7 +490,7 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace {
}
@Override
- public RaceLog getRaceLog() {
+ public RaceLog getRaceLog(Serializable identifier) {
// TODO Auto-generated method stub
return null;
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java
index 1c5ba9d2b9e..f1cf614e411 100644
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java
@@ -6,6 +6,7 @@ import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.racelog.RaceLog;
+import com.sap.sailing.domain.racelog.RaceLogIdentifier;
import com.sap.sailing.domain.racelog.RaceLogInformation;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.util.impl.RaceColumnListeners;
@@ -158,5 +159,12 @@ public interface RaceColumn extends Named {
* If null, the {@link #getFactor() factor} defaults to 1 for non-medal and {@link #DEFAULT_MEDAL_RACE_FACTOR} for
* medal races. Otherwise, the explicit factor is used.
*/
- Double getExplicitFactor();
+ Double getExplicitFactor();
+
+ /**
+ * Returns the race log identifier associated with this fleet and race log
+ * @param fleet
+ * @return
+ */
+ RaceLogIdentifier getRaceLogIdentifier(Fleet fleet);
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractRaceColumn.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractRaceColumn.java
index 22db0f1f126..7beadaf56b8 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractRaceColumn.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractRaceColumn.java
@@ -26,6 +26,7 @@ public abstract class AbstractRaceColumn extends SimpleAbstractRaceColumn implem
private final Map raceIdentifiers;
private final Map raceLogs;
+
/**
* holds the race log identifer template needed to create the appropriate RaceLogIdentifer that is constructed from the
* parent object name, name of this raceColumn and the name of a fleet of this raceColumn to access the RaceLog in the
@@ -56,6 +57,11 @@ public abstract class AbstractRaceColumn extends SimpleAbstractRaceColumn implem
public RaceLog getRaceLog(Fleet fleet) {
return raceLogs.get(fleet);
}
+
+ @Override
+ public RaceLogIdentifier getRaceLogIdentifier(Fleet fleet) {
+ return new RaceLogIdentifierImpl(raceLogsIdentifierTemplate, getName(), fleet);
+ }
@Override
public TrackedRace getTrackedRace(Fleet fleet) {
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/MetaLeaderboardColumn.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/MetaLeaderboardColumn.java
index 867847adb37..379c7482274 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/MetaLeaderboardColumn.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/MetaLeaderboardColumn.java
@@ -166,4 +166,9 @@ public class MetaLeaderboardColumn extends SimpleAbstractRaceColumn implements R
public boolean isTransient() {
return false;
}
+
+ @Override
+ public RaceLogIdentifier getRaceLogIdentifier(Fleet fleet) {
+ return null;
+ }
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
index 126986f75c4..caeef494255 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
@@ -499,7 +499,7 @@ public interface TrackedRace extends Serializable {
* Returns the attached race log event track for this race if any.
* Otherwise null.
*/
- RaceLog getRaceLog();
+ RaceLog getRaceLog(Serializable identifier);
/**
* a setter for the listener on course design changes. The listener is mostly part of the tracking provider adapter.
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
index a104dbbdf1e..3f0f880cb38 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java
@@ -666,11 +666,12 @@ DynamicTrackedRace, GPSTrackListener {
@Override
public void attachRaceLog(RaceLog raceLog) {
super.attachRaceLog(raceLog);
- logListener.addTo(attachedRaceLog);
+ logListener.addTo(raceLog);
}
@Override
public void detachRaceLog(Serializable identifier) {
+ RaceLog attachedRaceLog = attachedRaceLogs.get(identifier);
if (attachedRaceLog != null) {
logListener.removeFrom(attachedRaceLog);
}
diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
index 7b92eca563a..cffccdc17b2 100755
--- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
+++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
@@ -221,7 +221,6 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
private transient CombinedWindTrackImpl combinedWindTrack;
- protected transient RaceLog attachedRaceLog;
protected transient HashMap attachedRaceLogs;
/**
@@ -2347,8 +2346,8 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
}
@Override
- public RaceLog getRaceLog() {
- return attachedRaceLog;
+ public RaceLog getRaceLog(Serializable identifier) {
+ return attachedRaceLogs.get(identifier);
}
@Override
diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
index 1f6aa88dad6..6aff8583e1a 100644
--- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
+++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java
@@ -754,7 +754,7 @@ public class MockedTrackedRace implements DynamicTrackedRace {
}
@Override
- public RaceLog getRaceLog() {
+ public RaceLog getRaceLog(Serializable identifier) {
// TODO Auto-generated method stub
return null;
}