summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/Round.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-09-28 00:21:41 -0400
committersowgro <tpoke.ferrari@gmail.com>2025-09-28 00:21:41 -0400
commit42c080c022ddf8f3f3441923e67c150d7df33611 (patch)
treec000d5e98d7b87e2daf5685496442f264731f4f2 /src/main/java/design/model/Round.java
parent8a0096b0a9044d550d04d4355b67ba1495b8d5d3 (diff)
downloaddesignproject-design-6-42c080c022ddf8f3f3441923e67c150d7df33611.tar.gz
designproject-design-6-42c080c022ddf8f3f3441923e67c150d7df33611.tar.bz2
designproject-design-6-42c080c022ddf8f3f3441923e67c150d7df33611.zip
Add basic classes for model and persistence interfaces
Diffstat (limited to 'src/main/java/design/model/Round.java')
-rw-r--r--src/main/java/design/model/Round.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/design/model/Round.java b/src/main/java/design/model/Round.java
new file mode 100644
index 0000000..38975da
--- /dev/null
+++ b/src/main/java/design/model/Round.java
@@ -0,0 +1,45 @@
+package design.model;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+public class Round {
+ private final transient Course course;
+ private final LocalDateTime dateTime;
+ private final Hole startingHole;
+ private final List<Play> plays;
+
+ public Round(Course course, LocalDateTime dateTime, Hole startingHole) {
+ this.course = course;
+ this.dateTime = dateTime;
+ this.startingHole = startingHole;
+ plays = new ArrayList<>();
+ }
+
+ public int getTotalSwings() {
+ return plays.stream()
+ .map(Play::getSwingCount)
+ .reduce(0, Integer::sum);
+ }
+
+ public Course getCourse() {
+ return course;
+ }
+
+ public LocalDateTime getDateTime() {
+ return dateTime;
+ }
+
+ public Hole getStartingHole() {
+ return startingHole;
+ }
+
+ public Play[] getPlays() {
+ return plays.toArray(Play[]::new);
+ }
+
+ public void addPlay(Play play) {
+ plays.add(play);
+ }
+}