mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-27 06:17:27 +00:00
Removed duplicate code to calculate refresh intervals
This commit is contained in:
1 parent
2914a81b3d
commit
cd473cfcd4
4 files changed
+35
-4
No files matched your search
+3
-1
@@ -9,11 +9,13 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
@GwtIncompatible
|
||||
final class LiveRaceCalculator implements RaceCallback {
|
||||
private final RaceRefreshCalculator refreshCalculator = new RaceRefreshCalculator();
|
||||
private final SortedSetResult<LiveRaceDTO> result = new SortedSetResult<LiveRaceDTO>();
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext rc) {
|
||||
result.addValue(rc.getLiveRaceOrNull());
|
||||
refreshCalculator.doForRace(rc);
|
||||
}
|
||||
|
||||
public ResultWithTTL<SortedSetResult<LiveRaceDTO>> getResult() {
|
||||
@@ -28,6 +30,6 @@ final class LiveRaceCalculator implements RaceCallback {
|
||||
ttl = Math.min(ttl, 1000 * 60);
|
||||
}
|
||||
}
|
||||
return new ResultWithTTL<SortedSetResult<LiveRaceDTO>>(ttl, result);
|
||||
return new ResultWithTTL<SortedSetResult<LiveRaceDTO>>(refreshCalculator.getTTL(), result);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -425,7 +425,7 @@ public class RaceContext {
|
||||
return trackingState;
|
||||
}
|
||||
|
||||
private RaceViewState getLiveRaceViewState() {
|
||||
public RaceViewState getLiveRaceViewState() {
|
||||
if(raceViewState == null) {
|
||||
raceViewState = calculateLiveRaceViewState();
|
||||
}
|
||||
|
||||
+3
-2
@@ -9,12 +9,13 @@ import com.sap.sailing.gwt.ui.shared.dispatch.event.EventActionUtil.RaceCallback
|
||||
|
||||
@GwtIncompatible
|
||||
public class RaceListDataCalculator implements RaceCallback {
|
||||
|
||||
private final RaceRefreshCalculator refreshCalculator = new RaceRefreshCalculator();
|
||||
private final RegattaProgressCalculator progressCalculator = new RegattaProgressCalculator();
|
||||
private final RaceListViewDTO result = new RaceListViewDTO();
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext context) {
|
||||
refreshCalculator.doForRace(context);
|
||||
progressCalculator.doForRace(context);
|
||||
result.add(context.getLiveRaceOrNull());
|
||||
result.add(context.getFinishedRaceOrNull());
|
||||
@@ -22,7 +23,7 @@ public class RaceListDataCalculator implements RaceCallback {
|
||||
|
||||
public ResultWithTTL<RaceListViewDTO> getResult(DispatchContext context, UUID eventId) {
|
||||
result.setProgress(progressCalculator.getResult());
|
||||
return new ResultWithTTL<>(EventActionUtil.getEventStateDependentTTL(context, eventId, 3 * 60 * 1000), result);
|
||||
return new ResultWithTTL<>(EventActionUtil.getEventStateDependentTTL(context, eventId, refreshCalculator.getTTL()), result);
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||
|
||||
import com.google.gwt.core.shared.GwtIncompatible;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.event.EventActionUtil.RaceCallback;
|
||||
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO.RaceViewState;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
@GwtIncompatible
|
||||
final class RaceRefreshCalculator implements RaceCallback {
|
||||
private long ttl = 1000 * 60 * 3;
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext rc) {
|
||||
RaceViewState state = rc.getLiveRaceViewState();
|
||||
if(state == RaceViewState.RUNNING) {
|
||||
ttl = Math.min(ttl, 1000 * 30);
|
||||
} else if(state == RaceViewState.SCHEDULED) {
|
||||
int timeTillRace = (int) MillisecondsTimePoint.now().until(rc.getStartTime()).asMillis();
|
||||
ttl = Math.min(ttl, Math.min(1000 * 60, timeTillRace));
|
||||
} else if(state == RaceViewState.POSTPONED || state == RaceViewState.ABANDONED) {
|
||||
ttl = Math.min(ttl, 1000 * 60);
|
||||
}
|
||||
}
|
||||
|
||||
public long getTTL() {
|
||||
return ttl;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user