starting to copy state into LegEntryDAO

This commit is contained in:
Axel Uhl committed 2011-09-01 18:27:22 +02:00
1 parent 91cb628134
commit caac6acf35
2 files changed
+20 -4

No files matched your search

@@ -25,6 +25,7 @@ import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Buoy;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.Leg;
import com.sap.sailing.domain.base.Position;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Speed;
@@ -63,6 +64,7 @@ import com.sap.sailing.gwt.ui.shared.GPSFixDAO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDAO;
import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDAO;
import com.sap.sailing.gwt.ui.shared.LeaderboardRowDAO;
import com.sap.sailing.gwt.ui.shared.LegEntryDAO;
import com.sap.sailing.gwt.ui.shared.MarkDAO;
import com.sap.sailing.gwt.ui.shared.Pair;
import com.sap.sailing.gwt.ui.shared.PositionDAO;
@@ -122,7 +124,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
result.competitors.add(competitorDAO);
for (RaceInLeaderboard raceColumn : leaderboard.getRaceColumns()) {
Entry entry = leaderboard.getEntry(competitor, raceColumn, timePoint);
LeaderboardEntryDAO entryDAO = getLeaderboardEntryDAO(entry);
LeaderboardEntryDAO entryDAO = getLeaderboardEntryDAO(entry, raceColumn.getTrackedRace(), competitor, timePoint);
row.fieldsByRaceName.put(raceColumn.getName(), entryDAO);
result.rows.put(competitorDAO, row);
}
@@ -139,7 +141,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
if (competitor != null) {
RaceInLeaderboard raceColumn = leaderboard.getRaceColumnByName(raceName);
if (raceColumn != null) {
return getLeaderboardEntryDAO(leaderboard.getEntry(competitor, raceColumn, new MillisecondsTimePoint(date)));
MillisecondsTimePoint timePoint = new MillisecondsTimePoint(date);
return getLeaderboardEntryDAO(leaderboard.getEntry(competitor, raceColumn, timePoint),
raceColumn.getTrackedRace(), competitor, timePoint);
} else {
throw new IllegalArgumentException("Didn't find race "+raceName+" in leaderboard "+leaderboardName);
}
@@ -151,15 +155,27 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
}
private LeaderboardEntryDAO getLeaderboardEntryDAO(Entry entry) throws NoWindException {
private LeaderboardEntryDAO getLeaderboardEntryDAO(Entry entry, TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) throws NoWindException {
LeaderboardEntryDAO entryDAO = new LeaderboardEntryDAO();
entryDAO.netPoints = entry.getNetPoints();
entryDAO.totalPoints = entry.getTotalPoints();
entryDAO.reasonForMaxPoints = entry.getMaxPointsReason().name();
entryDAO.discarded = entry.isDiscarded();
for (Leg leg : trackedRace.getRace().getCourse().getLegs()) {
TrackedLegOfCompetitor trackedLeg = trackedRace.getTrackedLeg(competitor, leg);
LegEntryDAO legEntry = createLegEntry(trackedLeg, timePoint);
entryDAO.legDetails.add(legEntry);
}
return entryDAO;
}
private LegEntryDAO createLegEntry(TrackedLegOfCompetitor trackedLeg, TimePoint timePoint) {
LegEntryDAO result = new LegEntryDAO();
result.averageSpeedOverGroundInKnots = trackedLeg.getAverageSpeedOverGround(timePoint).getKnots();
// TODO continue here, copying trackedLeg entries to result...
return result;
}
public List<EventDAO> listEvents() throws IllegalArgumentException {
List<EventDAO> result = new ArrayList<EventDAO>();
for (Event event : getService().getAllEvents()) {
@@ -12,7 +12,7 @@ import com.google.gwt.user.client.rpc.IsSerializable;
*/
public class LegEntryDAO implements IsSerializable {
public double distanceTraveledInMeters;
public double averageSpeedInKnots;
public double averageSpeedOverGroundInKnots;
public int rank;
public double gapToLeaderInSeconds;
public double estimatedTimeToNextWaypointInSeconds;