diff options
| author | Jacob Shimp <jrs9538@g.rit.edu> | 2025-11-14 21:14:35 -0500 |
|---|---|---|
| committer | Jacob Shimp <jrs9538@g.rit.edu> | 2025-11-14 21:14:35 -0500 |
| commit | 14910914256ed6f3308688ce921ea6b5e391e8e9 (patch) | |
| tree | 96edc66495cc8c06914cbd1e62d9393d4c74f19d | |
| parent | 23ea4f3a14d6cf2ec76567422320d0279d1d390a (diff) | |
| download | designproject-design-6-14910914256ed6f3308688ce921ea6b5e391e8e9.tar.gz designproject-design-6-14910914256ed6f3308688ce921ea6b5e391e8e9.tar.bz2 designproject-design-6-14910914256ed6f3308688ce921ea6b5e391e8e9.zip | |
Round data is stored to each golfer after a match is concluded
Diffstat (limited to '')
| -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); + } + } + } } |
