diff options
Diffstat (limited to 'src/main/java/design/model/Round.java')
| -rw-r--r-- | src/main/java/design/model/Round.java | 45 |
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); + } +} |
