mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 09:11:02 +00:00
Implemented the individual recall handling (automatic vs manual removal)
This commit is contained in:
1 parent
d6c6bfa551
commit
db878e1d17
15 files changed
+255
-20
No files matched your search
+46
@@ -0,0 +1,46 @@
|
||||
package com.sap.sailing.domain.racelog.analyzing.impl;
|
||||
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
|
||||
|
||||
public class IndividualRecallFinder extends RaceLogAnalyzer {
|
||||
|
||||
public IndividualRecallFinder(RaceLog raceLog) {
|
||||
super(raceLog);
|
||||
}
|
||||
|
||||
public TimePoint getIndividualRecallDisplayedTime() {
|
||||
TimePoint displayedTime = null;
|
||||
|
||||
this.raceLog.lockForRead();
|
||||
try {
|
||||
displayedTime = searchForIndividualRecallDisplayedTime();
|
||||
} finally {
|
||||
this.raceLog.unlockAfterRead();
|
||||
}
|
||||
|
||||
return displayedTime;
|
||||
}
|
||||
|
||||
private TimePoint searchForIndividualRecallDisplayedTime() {
|
||||
TimePoint displayedTime = null;
|
||||
|
||||
for (RaceLogEvent event : getPassEvents()) {
|
||||
if (event instanceof RaceLogFlagEvent) {
|
||||
RaceLogFlagEvent flagEvent = (RaceLogFlagEvent) event;
|
||||
if (flagEvent.getUpperFlag().equals(Flags.XRAY) && flagEvent.isDisplayed()) {
|
||||
displayedTime = flagEvent.getTimePoint();
|
||||
} else if (flagEvent.getUpperFlag().equals(Flags.XRAY) && !flagEvent.isDisplayed()) {
|
||||
displayedTime = null;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return displayedTime;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user