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