mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
# working towards reworking the analyzers.
This commit is contained in:
1 parent
8f643709f4
commit
10789d9c4c
8 files changed
+157
-51
No files matched your search
+4
@@ -47,4 +47,8 @@ public interface RaceLog extends Track<RaceLogEvent>, WithID {
|
||||
* Checks if the race log is empty.
|
||||
*/
|
||||
boolean isEmpty();
|
||||
|
||||
Iterable<RaceLogEvent> getRawFixesDescending();
|
||||
|
||||
Iterable<RaceLogEvent> getFixesDescending();
|
||||
}
|
||||
+5
-5
@@ -14,20 +14,20 @@ public class AbortingFlagFinder extends RaceLogAnalyzer {
|
||||
public RaceLogFlagEvent getAbortingFlagEvent() {
|
||||
|
||||
RaceLogFlagEvent newFlagEvent = null;
|
||||
|
||||
|
||||
this.raceLog.lockForRead();
|
||||
try {
|
||||
newFlagEvent = searchForAbortingFlagEvent();
|
||||
} finally {
|
||||
this.raceLog.unlockAfterRead();
|
||||
}
|
||||
|
||||
|
||||
return newFlagEvent;
|
||||
}
|
||||
|
||||
private RaceLogFlagEvent searchForAbortingFlagEvent() {
|
||||
RaceLogFlagEvent newFlagEvent = null;
|
||||
|
||||
|
||||
if (raceLog.getCurrentPassId() > 0) {
|
||||
int relevantPassId = raceLog.getCurrentPassId() - 1;
|
||||
for (RaceLogEvent event : getAllEvents()) {
|
||||
@@ -41,10 +41,10 @@ public class AbortingFlagFinder extends RaceLogAnalyzer {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return newFlagEvent;
|
||||
}
|
||||
|
||||
|
||||
private boolean isAbortingFlag(RaceLogFlagEvent flagEvent) {
|
||||
return (flagEvent.getUpperFlag().equals(Flags.AP) && flagEvent.isDisplayed())
|
||||
|| (flagEvent.getUpperFlag().equals(Flags.NOVEMBER) && flagEvent.isDisplayed())
|
||||
|
||||
+3
-5
@@ -21,15 +21,13 @@ public class ProtestStartTimeFinder extends RaceLogAnalyzer {
|
||||
}
|
||||
|
||||
private TimePoint searchForStartTime() {
|
||||
TimePoint result = null;
|
||||
|
||||
for (RaceLogEvent event : getPassEvents()) {
|
||||
if (event instanceof RaceLogProtestStartTimeEvent) {
|
||||
result = ((RaceLogProtestStartTimeEvent) event).getProtestStartTime();
|
||||
TimePoint result = ((RaceLogProtestStartTimeEvent) event).getProtestStartTime();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -18,4 +18,12 @@ public abstract class RaceLogAnalyzer {
|
||||
protected Iterable<RaceLogEvent> getAllEvents() {
|
||||
return raceLog.getRawFixes();
|
||||
}
|
||||
|
||||
protected Iterable<RaceLogEvent> getPassEventsDescending() {
|
||||
return raceLog.getFixesDescending();
|
||||
}
|
||||
|
||||
protected Iterable<RaceLogEvent> getAllEventsDescending() {
|
||||
return raceLog.getRawFixesDescending();
|
||||
}
|
||||
}
|
||||
+10
@@ -141,4 +141,14 @@ public class RaceLogImpl extends TrackImpl<RaceLogEvent> implements RaceLog {
|
||||
listeners = new HashSet<RaceLogEventVisitor>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<RaceLogEvent> getRawFixesDescending() {
|
||||
return getRawFixes().descendingSet();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<RaceLogEvent> getFixesDescending() {
|
||||
return getFixes().descendingSet();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user