Implemented the individual recall handling (automatic vs manual removal)

This commit is contained in:
Armin Zamani committed 2013-04-08 22:53:32 +02:00
1 parent d6c6bfa551
commit db878e1d17
15 files changed
+255 -20

No files matched your search

@@ -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;
}
}