diff options
Diffstat (limited to 'src/main/java/design/model/StrokeLeague.java')
| -rw-r--r-- | src/main/java/design/model/StrokeLeague.java | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/main/java/design/model/StrokeLeague.java b/src/main/java/design/model/StrokeLeague.java index d051fd0..48889b7 100644 --- a/src/main/java/design/model/StrokeLeague.java +++ b/src/main/java/design/model/StrokeLeague.java @@ -49,11 +49,13 @@ public class StrokeLeague extends League { public String getType() { return "stroke"; } + public void recordPlay(Golfer player, Match match, Round round){ if(!isPlayable() || !participants.contains(player)) return; - int strokes = round.getTotalSwings(); - totalStrokes.merge(player, strokes, Integer::sum); + int index = participants.indexOf(player); + totalStrokes.merge(player, round.getTotalSwings(), Integer::sum); match.addRound(round); + match.addRoundFor(index, round); } @Override @@ -65,4 +67,21 @@ public class StrokeLeague extends League { public Map<Golfer, Integer> getTotalStrokes(){ return Collections.unmodifiableMap(totalStrokes); } + + @Override + public Map<Golfer, Integer> getResults() { + return getTotalStrokes(); + } + + @Override + public void finalizeMatch(Match match) { + getCompletedMatches().add(match); + for(int i = 0; i < participants.size(); i++){ + Golfer player = participants.get(i); + Round round = match.getRoundFor(i); + if(round != null){ + player.addRound(round); + } + } + } } |
