summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/Match.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/design/model/Match.java')
-rw-r--r--src/main/java/design/model/Match.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/main/java/design/model/Match.java b/src/main/java/design/model/Match.java
new file mode 100644
index 0000000..4f01c98
--- /dev/null
+++ b/src/main/java/design/model/Match.java
@@ -0,0 +1,57 @@
+package design.model;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class Match {
+ private final Course course;
+ private final Date dateScheduled;
+ private final LocalDateTime start;
+ private final int holeCount;
+ private final List<Round> rounds;
+
+ @JsonCreator
+ private Match(Course course, Date dateScheduled, LocalDateTime start, int holeCount, List<Round> rounds) {
+ this.course = course;
+ this.dateScheduled = dateScheduled;
+ this.start = start;
+ this.holeCount = holeCount;
+ this.rounds = rounds;
+ }
+
+ public Match(Course course, Date dateScheduled, LocalDateTime start, int holeCount) {
+ this.course = course;
+ this.dateScheduled = dateScheduled;
+ this.start = start;
+ this.holeCount = holeCount;
+ this.rounds = new ArrayList<>();
+ }
+
+ public Course getCourse() {
+ return course;
+ }
+
+ public Date getDateScheduled() {
+ return dateScheduled;
+ }
+
+ public LocalDateTime getStart() {
+ return start;
+ }
+
+ public int getHoleCount() {
+ return holeCount;
+ }
+
+ public boolean addRound(Round round) {
+ return rounds.add(round);
+ }
+
+ public Round[] getRounds() {
+ return rounds.toArray(Round[]::new);
+ }
+}