summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/StrokeLeague.java
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/model/StrokeLeague.java23
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);
+ }
+ }
+ }
}