diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/design/model/League.java | 2 | ||||
| -rw-r--r-- | src/main/java/design/model/Match.java | 11 | ||||
| -rw-r--r-- | src/main/java/design/model/ScrambleLeague.java | 14 | ||||
| -rw-r--r-- | src/main/java/design/model/StrokeLeague.java | 12 |
4 files changed, 39 insertions, 0 deletions
diff --git a/src/main/java/design/model/League.java b/src/main/java/design/model/League.java index b76cc33..2a7366a 100644 --- a/src/main/java/design/model/League.java +++ b/src/main/java/design/model/League.java @@ -129,4 +129,6 @@ public abstract class League { public abstract void finalizeLeague(); public abstract Map<?, Integer> getResults(); + + public abstract void finalizeMatch(Match match); } diff --git a/src/main/java/design/model/Match.java b/src/main/java/design/model/Match.java index 8126e7c..525f281 100644 --- a/src/main/java/design/model/Match.java +++ b/src/main/java/design/model/Match.java @@ -5,7 +5,9 @@ import com.fasterxml.jackson.annotation.JsonCreator; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Date; +import java.util.HashMap; import java.util.List; +import java.util.Map; public class Match { private final Course course; @@ -14,6 +16,7 @@ public class Match { private final LocalDateTime end; private final int holeCount; private final List<Round> rounds; + private final Map<Integer, Round> roundMap = new HashMap<>(); @JsonCreator private Match(Course course, Date dateScheduled, LocalDateTime start, LocalDateTime end, int holeCount, List<Round> rounds) { @@ -61,4 +64,12 @@ public class Match { public boolean checkCompletion() { return LocalDateTime.now().isAfter(end); } + + public void addRoundFor(int participantIndex, Round r) { + roundMap.put(participantIndex, r); + } + + public Round getRoundFor(int participantIndex) { + return roundMap.get(participantIndex); + } } diff --git a/src/main/java/design/model/ScrambleLeague.java b/src/main/java/design/model/ScrambleLeague.java index 964294f..f5d17ee 100644 --- a/src/main/java/design/model/ScrambleLeague.java +++ b/src/main/java/design/model/ScrambleLeague.java @@ -86,4 +86,18 @@ public class ScrambleLeague extends League { public Map<Team, Integer> getResults() { return getTotalTeamScores(); } + + @Override + public void finalizeMatch(Match match) { + getCompletedMatches().add(match); + for(int i = 0; i < participants.size(); i++){ + Team team = participants.get(i); + Round round = match.getRoundFor(i); + if(round != null){ + for(Golfer member : team.getMembers()){ + member.addRound(round); + } + } + } + } } diff --git a/src/main/java/design/model/StrokeLeague.java b/src/main/java/design/model/StrokeLeague.java index 8a61659..374a079 100644 --- a/src/main/java/design/model/StrokeLeague.java +++ b/src/main/java/design/model/StrokeLeague.java @@ -70,4 +70,16 @@ public class StrokeLeague extends League { 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); + } + } + } } |
