mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-28 14:57:12 +00:00
Refactored race calculation to avoid utility methods in RaceContext
This commit is contained in:
1 parent
ba6770caea
commit
af800938ae
5 files changed
+28
-23
No files matched your search
+7
-3
@@ -7,15 +7,19 @@ import java.util.TreeSet;
|
||||
public class SortedSetResult<T extends DTO> implements DTO, Result {
|
||||
private TreeSet<T> values = new TreeSet<>();
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
private SortedSetResult() {
|
||||
public SortedSetResult() {
|
||||
}
|
||||
|
||||
public SortedSetResult(Collection<T> values) {
|
||||
super();
|
||||
this.values.addAll(values);
|
||||
}
|
||||
|
||||
public void addValue(T value) {
|
||||
if (value != null) {
|
||||
this.values.add(value);
|
||||
}
|
||||
}
|
||||
|
||||
public Set<T> getValues() {
|
||||
return values;
|
||||
}
|
||||
|
||||
+4
-6
@@ -1,7 +1,5 @@
|
||||
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||
|
||||
import java.util.TreeSet;
|
||||
|
||||
import com.google.gwt.core.shared.GwtIncompatible;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.ResultWithTTL;
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.SortedSetResult;
|
||||
@@ -11,16 +9,16 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
|
||||
@GwtIncompatible
|
||||
final class LiveRaceCalculator implements RaceCallback {
|
||||
private final TreeSet<LiveRaceDTO> resultSet = new TreeSet<LiveRaceDTO>();
|
||||
private final SortedSetResult<LiveRaceDTO> result = new SortedSetResult<LiveRaceDTO>();
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext rc) {
|
||||
rc.addLiveRace(resultSet);
|
||||
result.addValue(rc.getLiveRaceOrNull());
|
||||
}
|
||||
|
||||
public ResultWithTTL<SortedSetResult<LiveRaceDTO>> getResult() {
|
||||
long ttl = 1000 * 60 * 2;
|
||||
for(LiveRaceDTO race : resultSet) {
|
||||
for(LiveRaceDTO race : result.getValues()) {
|
||||
if(race.getViewState() == RaceViewState.RUNNING) {
|
||||
ttl = Math.min(ttl, 1000 * 30);
|
||||
} else if(race.getViewState() == RaceViewState.SCHEDULED) {
|
||||
@@ -30,6 +28,6 @@ final class LiveRaceCalculator implements RaceCallback {
|
||||
ttl = Math.min(ttl, 1000 * 60);
|
||||
}
|
||||
}
|
||||
return new ResultWithTTL<SortedSetResult<LiveRaceDTO>>(ttl, new SortedSetResult<>(resultSet));
|
||||
return new ResultWithTTL<SortedSetResult<LiveRaceDTO>>(ttl, result);
|
||||
}
|
||||
}
|
||||
-8
@@ -1,6 +1,5 @@
|
||||
package com.sap.sailing.gwt.ui.shared.dispatch.event;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@@ -276,13 +275,6 @@ public class RaceContext {
|
||||
return finishTime;
|
||||
}
|
||||
|
||||
public void addLiveRace(Collection<LiveRaceDTO> result) {
|
||||
LiveRaceDTO liveRaceDTO = getLiveRaceOrNull();
|
||||
if(liveRaceDTO != null) {
|
||||
result.add(liveRaceDTO);
|
||||
}
|
||||
}
|
||||
|
||||
public LiveRaceDTO getLiveRaceOrNull() {
|
||||
// a race is of 'public interest' of a race is a combination of it's 'live' state
|
||||
// and special flags states indicating how the postponed/canceled races will be continued
|
||||
|
||||
+2
-6
@@ -11,12 +11,8 @@ public class RaceListDataCalculator implements RaceCallback {
|
||||
|
||||
@Override
|
||||
public void doForRace(RaceContext context) {
|
||||
context.addLiveRace(result.getLiveRaces());
|
||||
|
||||
RaceListRaceDTO finishedRace = context.getFinishedRaceOrNull();
|
||||
if(finishedRace != null) {
|
||||
result.getFinishedRaces().add(finishedRace);
|
||||
}
|
||||
result.add(context.getLiveRaceOrNull());
|
||||
result.add(context.getFinishedRaceOrNull());
|
||||
}
|
||||
|
||||
public ResultWithTTL<RaceListViewDTO> getResult() {
|
||||
|
||||
+15
@@ -5,6 +5,7 @@ import java.util.Collection;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
|
||||
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
|
||||
|
||||
public class RaceListViewDTO implements DTO {
|
||||
|
||||
@@ -12,6 +13,20 @@ public class RaceListViewDTO implements DTO {
|
||||
|
||||
private TreeSet<RaceListRaceDTO> finishedRaces = new TreeSet<>();
|
||||
|
||||
public void add(LiveRaceDTO liveRace) {
|
||||
add(liveRaces, liveRace);
|
||||
}
|
||||
|
||||
public void add(RaceListRaceDTO finishedRace) {
|
||||
add(finishedRaces, finishedRace);
|
||||
}
|
||||
|
||||
private <T extends RaceMetadataDTO> void add(TreeSet<T> set, T race) {
|
||||
if (race != null) {
|
||||
set.add(race);
|
||||
}
|
||||
}
|
||||
|
||||
public Collection<LiveRaceDTO> getLiveRaces() {
|
||||
return liveRaces;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user