mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-06 20:33:54 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
2670266e70
4 files changed
+35
-7
No files matched your search
@@ -48,6 +48,12 @@ public interface Leaderboard extends Named {
|
||||
* Tells if the net points have been corrected by a {@link ScoreCorrection}
|
||||
*/
|
||||
boolean isNetPointsCorrected();
|
||||
|
||||
/**
|
||||
* @return <code>null</code>, if the competitor's fleet in the race column cannot be determined, the
|
||||
* {@link Fleet} otherwise
|
||||
*/
|
||||
Fleet getFleet();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+12
-3
@@ -77,7 +77,10 @@ public abstract class AbstractLeaderboardImpl implements Leaderboard, RaceColumn
|
||||
private final int totalPoints;
|
||||
private final MaxPointsReason maxPointsReason;
|
||||
private final boolean discarded;
|
||||
private EntryImpl(int trackedPoints, int netPoints, boolean isNetPointsCorrected, int totalPoints, MaxPointsReason maxPointsReason, boolean discarded) {
|
||||
private final Fleet fleet;
|
||||
|
||||
private EntryImpl(int trackedPoints, int netPoints, boolean isNetPointsCorrected, int totalPoints,
|
||||
MaxPointsReason maxPointsReason, boolean discarded, Fleet fleet) {
|
||||
super();
|
||||
this.trackedPoints = trackedPoints;
|
||||
this.netPoints = netPoints;
|
||||
@@ -85,6 +88,7 @@ public abstract class AbstractLeaderboardImpl implements Leaderboard, RaceColumn
|
||||
this.totalPoints = totalPoints;
|
||||
this.maxPointsReason = maxPointsReason;
|
||||
this.discarded = discarded;
|
||||
this.fleet = fleet;
|
||||
}
|
||||
@Override
|
||||
public int getTrackedPoints() {
|
||||
@@ -110,6 +114,10 @@ public abstract class AbstractLeaderboardImpl implements Leaderboard, RaceColumn
|
||||
public boolean isDiscarded() {
|
||||
return discarded;
|
||||
}
|
||||
@Override
|
||||
public Fleet getFleet() {
|
||||
return fleet;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -286,7 +294,7 @@ public abstract class AbstractLeaderboardImpl implements Leaderboard, RaceColumn
|
||||
return new EntryImpl(trackedPoints, correctedResults.getCorrectedScore(), correctedResults.isCorrected(),
|
||||
discarded ? 0
|
||||
: correctedResults.getCorrectedScore() * (race.isMedalRace() ? MEDAL_RACE_FACTOR : 1),
|
||||
correctedResults.getMaxPointsReason(), discarded);
|
||||
correctedResults.getMaxPointsReason(), discarded, race.getFleetOfCompetitor(competitor));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -312,7 +320,8 @@ public abstract class AbstractLeaderboardImpl implements Leaderboard, RaceColumn
|
||||
boolean discarded = discardedRacesForCompetitor.contains(raceColumn);
|
||||
Entry entry = new EntryImpl(trackedPoints, correctedResults.getCorrectedScore(),
|
||||
correctedResults.isCorrected(), discarded ? 0 : correctedResults.getCorrectedScore()
|
||||
* (raceColumn.isMedalRace() ? 2 : 1), correctedResults.getMaxPointsReason(), discarded);
|
||||
* (raceColumn.isMedalRace() ? 2 : 1), correctedResults.getMaxPointsReason(), discarded,
|
||||
raceColumn.getFleetOfCompetitor(competitor));
|
||||
result.put(new Pair<Competitor, RaceColumn>(competitor, raceColumn), entry);
|
||||
}
|
||||
}
|
||||
|
||||
+10
-4
@@ -271,7 +271,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
throws NoWindException {
|
||||
long startOfRequestHandling = System.currentTimeMillis();
|
||||
LeaderboardDTO result = null;
|
||||
Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
|
||||
final Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName);
|
||||
if (leaderboard != null) {
|
||||
result = new LeaderboardDTO();
|
||||
final TimePoint timePoint = new MillisecondsTimePoint(date);
|
||||
@@ -304,12 +304,12 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
result.competitors.add(competitorDTO);
|
||||
Map<String, Future<LeaderboardEntryDTO>> futuresForColumnName = new HashMap<String, Future<LeaderboardEntryDTO>>();
|
||||
for (final RaceColumn raceColumn : leaderboard.getRaceColumns()) {
|
||||
final Entry entry = leaderboard.getEntry(competitor, raceColumn, timePoint);
|
||||
RunnableFuture<LeaderboardEntryDTO> future = new FutureTask<LeaderboardEntryDTO>(new Callable<LeaderboardEntryDTO>() {
|
||||
@Override
|
||||
public LeaderboardEntryDTO call() {
|
||||
try {
|
||||
return getLeaderboardEntryDTO(entry, raceColumn.getTrackedRace(competitor), competitor, timePoint,
|
||||
Entry entry = leaderboard.getEntry(competitor, raceColumn, timePoint);
|
||||
return getLeaderboardEntryDTO(entry, raceColumn.getTrackedRace(competitor), competitor, timePoint,
|
||||
namesOfRaceColumnsForWhichToLoadLegDetails != null
|
||||
&& namesOfRaceColumnsForWhichToLoadLegDetails.contains(raceColumn.getName()));
|
||||
} catch (NoWindException e) {
|
||||
@@ -389,6 +389,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
entryDTO.legDetails.add(legEntry);
|
||||
}
|
||||
}
|
||||
final Fleet fleet = entry.getFleet();
|
||||
entryDTO.fleet = fleet == null ? null : createFleetDTO(fleet);
|
||||
final Distance windwardDistanceToOverallLeader = trackedRace == null ? null : trackedRace.getWindwardDistanceToOverallLeader(competitor, timePoint);
|
||||
entryDTO.windwardDistanceToOverallLeaderInMeters = windwardDistanceToOverallLeader == null ? null : windwardDistanceToOverallLeader.getMeters();
|
||||
final Distance averageCrossTrackError = trackedRace == null ? null : trackedRace.getAverageCrossTrackError(competitor, timePoint);
|
||||
@@ -495,7 +497,7 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
private SeriesDTO createSeriesDTO(Series series) {
|
||||
List<FleetDTO> fleets = new ArrayList<FleetDTO>();
|
||||
for (Fleet fleet : series.getFleets()) {
|
||||
fleets.add(new FleetDTO(fleet.getName(), fleet.getOrdering(), fleet.getColor()));
|
||||
fleets.add(createFleetDTO(fleet));
|
||||
}
|
||||
List<RaceColumnDTO> raceColumns = new ArrayList<RaceColumnDTO>();
|
||||
for (RaceColumnInSeries raceColumn : series.getRaceColumns()) {
|
||||
@@ -508,6 +510,10 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
||||
return result;
|
||||
}
|
||||
|
||||
private FleetDTO createFleetDTO(Fleet fleet) {
|
||||
return new FleetDTO(fleet.getName(), fleet.getOrdering(), fleet.getColor());
|
||||
}
|
||||
|
||||
private List<RaceDTO> getRaceDTOs(Regatta regatta) {
|
||||
List<RaceDTO> result = new ArrayList<RaceDTO>();
|
||||
for (RaceDefinition r : regatta.getAllRaces()) {
|
||||
|
||||
+7
@@ -48,6 +48,13 @@ public class LeaderboardEntryDTO implements IsSerializable {
|
||||
*/
|
||||
public List<LegEntryDTO> legDetails;
|
||||
|
||||
/**
|
||||
* <code>null</code>, if the fleet couldn't be determined, e.g., because the tracked race isn't known and therefore
|
||||
* the link to the fleet is not known; otherwise the description of the fleet in which the competitor scored this
|
||||
* entry
|
||||
*/
|
||||
public FleetDTO fleet;
|
||||
|
||||
public LeaderboardEntryDTO() { }
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user