changed timing values of RRS26 and SWC procedures from millis to Duration objects; factored and fixed isStartphaseActive

Change-Id: I3f1b5d865d2d4af0e23a8ede412f3021908e820a
This commit is contained in:
Axel Uhl committed 2016-12-02 14:38:22 +01:00
1 parent 3ee385c1fa
commit 7486fc2d53
4 files changed
+23 -25

No files matched your search

@@ -52,9 +52,13 @@ public interface ReadonlyRacingProcedure extends RaceStateEventProcessor, RaceSt
void removeChangedListener(RacingProcedureChangedListener listener);
/**
* Returns <code>true</code> if the start phase of this {@link ReadonlyRacingProcedure is active given the current time and start time.
* @param startTime start time to be used to determine whether the start phase is active or not.
* @param now {@link TimePoint} used as the current time on determining whether the start phase is active or not.
* Returns <code>true</code> if the start phase of this {@link ReadonlyRacingProcedure is active given the current
* time and start time.
*
* @param startTime
* start time to be used to determine whether the start phase is active or not. Must not be {@code null}
* @param now
* {@link TimePoint} used as the current time on determining whether the start phase is active or not.
*/
boolean isStartphaseActive(TimePoint startTime, TimePoint now);
@@ -16,6 +16,7 @@ import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.Config
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.line.LineStartChangedListener;
import com.sap.sailing.domain.base.configuration.procedures.ConfigurableStartModeFlagRacingProcedureConfiguration;
import com.sap.sailing.domain.common.racelog.Flags;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
public abstract class ConfigurableStartModeFlagRacingProcedureImpl extends BaseRacingProcedure implements ConfigurableStartModeFlagRacingProcedure {
@@ -41,7 +42,12 @@ public abstract class ConfigurableStartModeFlagRacingProcedureImpl extends BaseR
update();
}
abstract protected long getStartPhaseStartModeUpInterval();
abstract protected Duration getStartPhaseStartModeUpInterval();
@Override
public boolean isStartphaseActive(TimePoint startTime, TimePoint now) {
return now.before(startTime) && !now.before(startTime.minus(getStartPhaseStartModeUpInterval()));
}
@Override
public RacingProcedurePrerequisite checkPrerequisitesForStart(TimePoint now, TimePoint startTime,
@@ -17,13 +17,14 @@ import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
import com.sap.sailing.domain.common.racelog.FlagPole;
import com.sap.sailing.domain.common.racelog.Flags;
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
public class RRS26RacingProcedureImpl extends ConfigurableStartModeFlagRacingProcedureImpl implements RRS26RacingProcedure {
private final static long startPhaseClassUpInterval = 5 * 60 * 1000; // minutes * seconds * milliseconds
private final static long startPhaseStartModeUpInterval = 4 * 60 * 1000; // minutes * seconds * milliseconds
private final static long startPhaseStartModeDownInterval = 1 * 60 * 1000; // minutes * seconds * milliseconds
private final static Duration startPhaseClassUpInterval = Duration.ONE_MINUTE.times(5);
private final static Duration startPhaseStartModeUpInterval = Duration.ONE_MINUTE.times(4);
private final static Duration startPhaseStartModeDownInterval = Duration.ONE_MINUTE;
public RRS26RacingProcedureImpl(RaceLog raceLog, AbstractLogEventAuthor author,
RRS26Configuration configuration, RaceLogResolver raceLogResolver) {
@@ -31,7 +32,7 @@ public class RRS26RacingProcedureImpl extends ConfigurableStartModeFlagRacingPro
}
@Override
protected long getStartPhaseStartModeUpInterval() {
protected Duration getStartPhaseStartModeUpInterval() {
return startPhaseStartModeUpInterval;
}
@@ -62,15 +63,6 @@ public class RRS26RacingProcedureImpl extends ConfigurableStartModeFlagRacingPro
return false;
}
@Override
public boolean isStartphaseActive(TimePoint startTime, TimePoint now) {
if (now.before(startTime)) {
long timeTillStart = startTime.minus(now.asMillis()).asMillis();
return timeTillStart < startPhaseClassUpInterval;
}
return false;
}
@Override
protected Collection<RaceStateEvent> createStartStateEvents(TimePoint startTime) {
return Arrays.<RaceStateEvent> asList(
@@ -17,12 +17,13 @@ import com.sap.sailing.domain.base.configuration.procedures.SWCStartConfiguratio
import com.sap.sailing.domain.common.racelog.FlagPole;
import com.sap.sailing.domain.common.racelog.Flags;
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
public class SWCRacingProcedureImpl extends ConfigurableStartModeFlagRacingProcedureImpl implements SWCRacingProcedure {
private final static long CLASS_AND_STARTMODE_UP_INTERVAL = 6 * 60 * 1000; // 6 minutes before start
private final static long CLASS_AND_STARTMODE_DOWN_INTERVAL = 1 * 60 * 1000; // 1 minute after start
private final static Duration CLASS_AND_STARTMODE_UP_INTERVAL = Duration.ONE_MINUTE.times(6); // 6 minutes before start
private final static Duration CLASS_AND_STARTMODE_DOWN_INTERVAL = Duration.ONE_MINUTE; // 1 minute after start
public SWCRacingProcedureImpl(RaceLog raceLog, AbstractLogEventAuthor author,
SWCStartConfiguration configuration, RaceLogResolver raceLogResolver) {
@@ -30,7 +31,7 @@ public class SWCRacingProcedureImpl extends ConfigurableStartModeFlagRacingProce
}
@Override
protected long getStartPhaseStartModeUpInterval() {
protected Duration getStartPhaseStartModeUpInterval() {
return CLASS_AND_STARTMODE_UP_INTERVAL;
}
@@ -61,11 +62,6 @@ public class SWCRacingProcedureImpl extends ConfigurableStartModeFlagRacingProce
return false;
}
@Override
public boolean isStartphaseActive(TimePoint startTime, TimePoint now) {
return now.before(startTime.minus(CLASS_AND_STARTMODE_UP_INTERVAL));
}
@Override
protected Collection<RaceStateEvent> createStartStateEvents(TimePoint startTime) {
return Arrays.<RaceStateEvent> asList(