added new method getIDFromRaceThatTakesWindFixesNow(...) to RibDashboardService

This commit is contained in:
Alexander Ries committed 2015-09-30 17:05:40 +02:00
1 parent 6602c00bae
commit 19deced616
3 files changed
+26 -1

No files matched your search

@@ -7,10 +7,13 @@ import com.sap.sailing.dashboards.gwt.shared.dto.RibDashboardRaceInfoDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartlineAdvantagesWithMaxAndAverageDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.startanalysis.StartAnalysisDTO;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
public interface RibDashboardService extends RemoteService {
RibDashboardRaceInfoDTO getLiveRaceInfo(String leaderboardName) throws NoWindException;
RibDashboardRaceInfoDTO getLiveRaceInfo(String leaderboardName) throws NoWindException;
RegattaAndRaceIdentifier getIDFromRaceThatTakesWindFixesNow(String leaderboardName);
List<StartAnalysisDTO> getStartAnalysisListForCompetitorIDAndLeaderboardName(String competitorIdAsString, String leaderboardName);
@@ -6,6 +6,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
import com.sap.sailing.dashboards.gwt.shared.dto.RibDashboardRaceInfoDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartlineAdvantagesWithMaxAndAverageDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.startanalysis.StartAnalysisDTO;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
public interface RibDashboardServiceAsync {
@@ -17,4 +18,7 @@ public interface RibDashboardServiceAsync {
void getCompetitorsInLeaderboard(String leaderboardName, AsyncCallback<List<CompetitorDTO>> callback);
void getAdvantagesOnStartline(String leaderboardName, AsyncCallback<StartlineAdvantagesWithMaxAndAverageDTO> callback);
void getIDFromRaceThatTakesWindFixesNow(String leaderboardName, AsyncCallback<RegattaAndRaceIdentifier> callback);
}
@@ -6,6 +6,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
@@ -31,6 +32,7 @@ import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.tracking.GPSFix;
import com.sap.sailing.domain.leaderboard.Leaderboard;
@@ -129,6 +131,22 @@ public class RibDashboardServiceImpl extends RemoteServiceServlet implements Rib
}
return lRInfo;
}
@Override
public RegattaAndRaceIdentifier getIDFromRaceThatTakesWindFixesNow(String leaderboardName) {
RegattaAndRaceIdentifier result = null;
if(leaderboardName != null) {
List<TrackedRace> trackedRaces = getTrackedRacesFromLeaderboard(leaderboardName);
List<TrackedRace> filteredTrackedRaces = trackedRaces.stream().filter(trackedRace -> trackedRace.takesWindFixWithTimePoint(MillisecondsTimePoint.now())).collect(Collectors.toList());
if(filteredTrackedRaces != null) {
TrackedRace raceThatTakesWindNow = filteredTrackedRaces.get(0);
if(raceThatTakesWindNow != null) {
result = raceThatTakesWindNow.getRaceIdentifier();
}
}
}
return result;
}
private void fillLiveRaceInfoDTOWithRaceData(RibDashboardRaceInfoDTO lRInfo, TimePoint now) {
if (runningRace != null) {