From c9dbbbf82277036d15a180b0e8609b6dfccb50bd Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Mon, 29 Sep 2025 18:26:42 -0400 Subject: progress on implementing strategy pattern --- src/main/java/design/model/Round.java | 45 ----------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 src/main/java/design/model/Round.java (limited to 'src/main/java/design/model/Round.java') diff --git a/src/main/java/design/model/Round.java b/src/main/java/design/model/Round.java deleted file mode 100644 index 38975da..0000000 --- a/src/main/java/design/model/Round.java +++ /dev/null @@ -1,45 +0,0 @@ -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 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); - } -} -- cgit v1.2.3 From e218e35f333f8a30d213c7d3eebeb6f5f6bbcea3 Mon Sep 17 00:00:00 2001 From: WillemDalton Date: Thu, 2 Oct 2025 08:55:33 -0400 Subject: more progress on the strategy, unit testing --- src/main/java/design/model/Round.java | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/main/java/design/model/Round.java (limited to 'src/main/java/design/model/Round.java') 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 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); + } +} -- cgit v1.2.3 From d982cfe8a22ec7eb89186fed875a483a51c3505f Mon Sep 17 00:00:00 2001 From: sowgro Date: Fri, 3 Oct 2025 00:31:02 -0400 Subject: Add code to handle id serialization --- src/main/java/design/model/Round.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/main/java/design/model/Round.java') diff --git a/src/main/java/design/model/Round.java b/src/main/java/design/model/Round.java index 38975da..39de907 100644 --- a/src/main/java/design/model/Round.java +++ b/src/main/java/design/model/Round.java @@ -5,11 +5,19 @@ import java.util.ArrayList; import java.util.List; public class Round { - private final transient Course course; + private final Course course; private final LocalDateTime dateTime; private final Hole startingHole; private final List plays; + // for deserialization + private Round(Course course, LocalDateTime dateTime, Hole startingHole, List plays) { + this.course = course; + this.dateTime = dateTime; + this.startingHole = startingHole; + this.plays = plays; + } + public Round(Course course, LocalDateTime dateTime, Hole startingHole) { this.course = course; this.dateTime = dateTime; -- cgit v1.2.3 From 29c4a7caffea3957b8ac5f6be13d640c1a798989 Mon Sep 17 00:00:00 2001 From: sowgro Date: Fri, 3 Oct 2025 20:37:43 -0400 Subject: Serialization fully working --- src/main/java/design/model/Round.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main/java/design/model/Round.java') diff --git a/src/main/java/design/model/Round.java b/src/main/java/design/model/Round.java index 39de907..048a21a 100644 --- a/src/main/java/design/model/Round.java +++ b/src/main/java/design/model/Round.java @@ -1,5 +1,7 @@ package design.model; +import com.fasterxml.jackson.annotation.JsonCreator; + import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; @@ -10,7 +12,7 @@ public class Round { private final Hole startingHole; private final List plays; - // for deserialization + @JsonCreator private Round(Course course, LocalDateTime dateTime, Hole startingHole, List plays) { this.course = course; this.dateTime = dateTime; -- cgit v1.2.3