mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-21 03:30:12 +00:00
refactored RaceTracker such that getRace[Identifier]s() is now getRace[Identifier](), alluding to the always-singular aspect of RaceTracker/RaceHandle
Change-Id: I50d202122c3021dd2f852762688d762fb3806d99
This commit is contained in:
1 parent
19d112115b
commit
704e4e2a64
13 files changed
+92
-138
No files matched your search
+19
-19
@@ -195,7 +195,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
private final Set<Receiver> receivers;
|
||||
private final DomainFactory domainFactory;
|
||||
private final WindStore windStore;
|
||||
private final Set<RaceDefinition> races;
|
||||
private RaceDefinition race;
|
||||
private final DynamicTrackedRegatta trackedRegatta;
|
||||
private TrackedRaceStatus lastStatus;
|
||||
private Map<Object, Util.Pair<Integer, Float>> lastProgressPerID;
|
||||
@@ -324,7 +324,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
this.tractracEvent = tractracRace.getEvent();
|
||||
this.id = createID(paramURL, liveURI, storedURI);
|
||||
isLiveTracking = liveURI != null;
|
||||
this.races = new HashSet<RaceDefinition>();
|
||||
this.race = null; // no race received yet
|
||||
this.domainFactory = domainFactory;
|
||||
this.lastProgressPerID = new HashMap<>();
|
||||
if (offsetToStartTimeOfSimulatedRace != null) {
|
||||
@@ -375,8 +375,8 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
public void updateRace(IRace race) {
|
||||
if (Util.equalsWithNull(race, TracTracRaceTrackerImpl.this.tractracRace)) {
|
||||
int delayToLiveInMillis = race.getLiveDelay()*1000;
|
||||
for (RaceDefinition raceDefinition : getRaces()) {
|
||||
DynamicTrackedRace trackedRace = getTrackedRegatta().getExistingTrackedRace(raceDefinition);
|
||||
if (getRace() != null) {
|
||||
DynamicTrackedRace trackedRace = getTrackedRegatta().getExistingTrackedRace(getRace());
|
||||
if (trackedRace != null) {
|
||||
trackedRace.setDelayToLiveInMillis(delayToLiveInMillis);
|
||||
}
|
||||
@@ -524,8 +524,8 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<RaceDefinition> getRaces() {
|
||||
return races;
|
||||
public RaceDefinition getRace() {
|
||||
return race;
|
||||
}
|
||||
|
||||
protected void addListenersForStoredDataAndStartController(Iterable<Receiver> listenersForStoredData) {
|
||||
@@ -581,8 +581,8 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
* @see #updateStatusOfTrackedRace(DynamicTrackedRace)
|
||||
*/
|
||||
private void updateStatusOfTrackedRaces() {
|
||||
for (RaceDefinition race : getRaces()) {
|
||||
DynamicTrackedRace trackedRace = getTrackedRegatta().getExistingTrackedRace(race);
|
||||
if (getRace() != null) {
|
||||
DynamicTrackedRace trackedRace = getTrackedRegatta().getExistingTrackedRace(getRace());
|
||||
if (trackedRace != null) {
|
||||
updateStatusOfTrackedRace(trackedRace);
|
||||
}
|
||||
@@ -637,7 +637,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
}
|
||||
}
|
||||
}
|
||||
logger.info("Stored data progress in tracker "+getID()+" for race(s) "+getRaces()+": "+progress);
|
||||
logger.info("Stored data progress in tracker "+getID()+" for race(s) "+getRace()+": "+progress);
|
||||
lastStatus = new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, progress);
|
||||
if (progress==1.0) {
|
||||
new AbstractLoadingQueueDoneCallBack(receivers) {
|
||||
@@ -653,27 +653,27 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addRaceDefinition(RaceDefinition race, DynamicTrackedRace trackedRace) {
|
||||
races.add(race);
|
||||
public void addRaceDefinition(final RaceDefinition race, final DynamicTrackedRace trackedRace) {
|
||||
this.race = race;
|
||||
updateStatusOfTrackedRace(trackedRace);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gotLiveDataEvent(ILiveDataEvent liveDataEvent) {
|
||||
logger.info("Status change in tracker "+getID()+" for race(s) "+getRaces()+": "+liveDataEvent);
|
||||
logger.info("Status change in tracker "+getID()+" for race(s) "+getRace()+": "+liveDataEvent);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void gotStoredDataEvent(IStoredDataEvent storedDataEvent) {
|
||||
logger.info("Status change in tracker "+getID()+" for race(s) "+getRaces()+": "+storedDataEvent);
|
||||
logger.info("Status change in tracker "+getID()+" for race(s) "+getRace()+": "+storedDataEvent);
|
||||
switch (storedDataEvent.getType()) {
|
||||
case Begin:
|
||||
logger.info("Stored data begin in tracker "+getID()+" for race(s) "+getRaces());
|
||||
logger.info("Stored data begin in tracker "+getID()+" for race(s) "+getRace());
|
||||
lastStatus = new TrackedRaceStatusImpl(TrackedRaceStatusEnum.LOADING, 0);
|
||||
updateStatusOfTrackedRaces();
|
||||
break;
|
||||
case End:
|
||||
logger.info("Stored data end in tracker "+getID()+" for race(s) "+getRaces());
|
||||
logger.info("Stored data end in tracker "+getID()+" for race(s) "+getRace());
|
||||
if (isLiveTracking) {
|
||||
lastStatus = new TrackedRaceStatusImpl(TrackedRaceStatusEnum.TRACKING, 1);
|
||||
updateStatusOfTrackedRaces();
|
||||
@@ -683,14 +683,14 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
storedDataProgress(storedDataEvent.getProgress());
|
||||
break;
|
||||
case Error:
|
||||
logger.warning("Error with stored data in tracker "+getID()+" for race(s) "+getRaces()+": "+storedDataEvent.getError());
|
||||
logger.warning("Error with stored data in tracker "+getID()+" for race(s) "+getRace()+": "+storedDataEvent.getError());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopped(Object o) {
|
||||
logger.info("stopped TracTrac tracking in tracker " + getID() + " for " + getRaces() + " while in status "
|
||||
logger.info("stopped TracTrac tracking in tracker " + getID() + " for " + getRace() + " while in status "
|
||||
+ lastStatus);
|
||||
new AbstractLoadingQueueDoneCallBack(receivers) {
|
||||
@Override
|
||||
@@ -699,13 +699,13 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl
|
||||
updateStatusOfTrackedRaces();
|
||||
if (!stopped) {
|
||||
try {
|
||||
for (RaceDefinition race : getRaces()) {
|
||||
if (getRace() != null) {
|
||||
// See also bug 1517; with TracAPI we assume that when stopped(IEvent) is called by the
|
||||
// TracAPI then
|
||||
// all subscriptions have received all their data and it's therefore safe to stop all
|
||||
// subscriptions
|
||||
// at this point without missing any data.
|
||||
trackedRegattaRegistry.stopTracking(regatta, race);
|
||||
trackedRegattaRegistry.stopTracking(regatta, getRace());
|
||||
}
|
||||
} catch (InterruptedException | IOException e) {
|
||||
logger.log(Level.INFO, "Interrupted while trying to stop tracker " + this, e);
|
||||
|
||||
Reference in new issue
Block a user