From 106c77d0621e486d5144fe3f57db684276845769 Mon Sep 17 00:00:00 2001 From: Jacob Shimp Date: Thu, 2 Oct 2025 08:31:26 -0400 Subject: added all files, no implementation yet --- src/main/java/design/model/statistics/LifetimeStats.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 src/main/java/design/model/statistics/LifetimeStats.java (limited to 'src/main/java/design/model/statistics/LifetimeStats.java') diff --git a/src/main/java/design/model/statistics/LifetimeStats.java b/src/main/java/design/model/statistics/LifetimeStats.java new file mode 100644 index 0000000..bb92a14 --- /dev/null +++ b/src/main/java/design/model/statistics/LifetimeStats.java @@ -0,0 +1,5 @@ +package design.model.statistics; + +public class LifetimeStats { + +} -- cgit v1.2.3 From ec252eb5546076fa457d389d42821ae62b0bc198 Mon Sep 17 00:00:00 2001 From: Jacob Shimp Date: Thu, 2 Oct 2025 08:50:08 -0400 Subject: added base implementations for all concrete decorators --- src/main/java/design/model/statistics/LifetimeStats.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/main/java/design/model/statistics/LifetimeStats.java') diff --git a/src/main/java/design/model/statistics/LifetimeStats.java b/src/main/java/design/model/statistics/LifetimeStats.java index bb92a14..9c1236c 100644 --- a/src/main/java/design/model/statistics/LifetimeStats.java +++ b/src/main/java/design/model/statistics/LifetimeStats.java @@ -1,5 +1,16 @@ package design.model.statistics; -public class LifetimeStats { - +public class LifetimeStats extends StatisticsDecorator{ + public LifetimeStats(Statistics wrapped_statistics){ + super(wrapped_statistics); + } + @Override + public int get_score(){ + return super.get_score(); + } + + @Override + public double get_distance(){ + return super.get_distance(); + } } -- cgit v1.2.3 From 26a7076e93c4cd49fd6c9da7a2c9b217771012e8 Mon Sep 17 00:00:00 2001 From: Jacob Shimp Date: Thu, 2 Oct 2025 11:48:18 -0400 Subject: implemented lifetime statistics --- .../design/model/statistics/LifetimeStats.java | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'src/main/java/design/model/statistics/LifetimeStats.java') diff --git a/src/main/java/design/model/statistics/LifetimeStats.java b/src/main/java/design/model/statistics/LifetimeStats.java index 9c1236c..9cefd7a 100644 --- a/src/main/java/design/model/statistics/LifetimeStats.java +++ b/src/main/java/design/model/statistics/LifetimeStats.java @@ -1,16 +1,32 @@ package design.model.statistics; +import design.model.Golfer; +import design.model.Play; +import design.model.Round; + public class LifetimeStats extends StatisticsDecorator{ - public LifetimeStats(Statistics wrapped_statistics){ + Golfer golfer; + public LifetimeStats(Statistics wrapped_statistics, Golfer golfer){ super(wrapped_statistics); + this.golfer = golfer; } @Override public int get_score(){ - return super.get_score(); + int baseStats = super.get_score(); + for(Round round : golfer.getRounds()){ + baseStats += round.getTotalSwings(); + } + return baseStats; } @Override public double get_distance(){ - return super.get_distance(); + double baseStats = super.get_distance(); + for(Round round : golfer.getRounds()){ + for(Play play : round.getPlays()){ + baseStats += play.getDistance(); + } + } + return baseStats; } } -- cgit v1.2.3 From 19101e44d4e658650b535eb14692446b098215e3 Mon Sep 17 00:00:00 2001 From: Jacob Shimp Date: Thu, 2 Oct 2025 12:08:59 -0400 Subject: adited lifetime stats --- src/main/java/design/model/statistics/LifetimeStats.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main/java/design/model/statistics/LifetimeStats.java') diff --git a/src/main/java/design/model/statistics/LifetimeStats.java b/src/main/java/design/model/statistics/LifetimeStats.java index 9cefd7a..6e1cc97 100644 --- a/src/main/java/design/model/statistics/LifetimeStats.java +++ b/src/main/java/design/model/statistics/LifetimeStats.java @@ -5,7 +5,7 @@ import design.model.Play; import design.model.Round; public class LifetimeStats extends StatisticsDecorator{ - Golfer golfer; + private Golfer golfer; public LifetimeStats(Statistics wrapped_statistics, Golfer golfer){ super(wrapped_statistics); this.golfer = golfer; -- cgit v1.2.3 From b4919667c3455d8b517df6a72b7d37e0734d9155 Mon Sep 17 00:00:00 2001 From: Jacob Shimp Date: Fri, 3 Oct 2025 20:31:51 -0400 Subject: Implemented all decorators, replaced BaseStatistics with LifetimeStatistics since they would have been redundant --- .../design/model/statistics/LifetimeStats.java | 31 +++++++++++----------- 1 file changed, 15 insertions(+), 16 deletions(-) (limited to 'src/main/java/design/model/statistics/LifetimeStats.java') diff --git a/src/main/java/design/model/statistics/LifetimeStats.java b/src/main/java/design/model/statistics/LifetimeStats.java index 6e1cc97..aee4e66 100644 --- a/src/main/java/design/model/statistics/LifetimeStats.java +++ b/src/main/java/design/model/statistics/LifetimeStats.java @@ -1,32 +1,31 @@ package design.model.statistics; import design.model.Golfer; -import design.model.Play; import design.model.Round; -public class LifetimeStats extends StatisticsDecorator{ - private Golfer golfer; - public LifetimeStats(Statistics wrapped_statistics, Golfer golfer){ - super(wrapped_statistics); +public class LifetimeStats implements Statistics{ + private final Golfer golfer; + public LifetimeStats(Golfer golfer){ this.golfer = golfer; } @Override + public Round[] getRounds(){ + return golfer.getRounds(); + } + @Override public int get_score(){ - int baseStats = super.get_score(); - for(Round round : golfer.getRounds()){ - baseStats += round.getTotalSwings(); + int score = 0; + for(Round round : getRounds()){ + score += round.getTotalSwings(); } - return baseStats; + return score; } - @Override public double get_distance(){ - double baseStats = super.get_distance(); - for(Round round : golfer.getRounds()){ - for(Play play : round.getPlays()){ - baseStats += play.getDistance(); - } + double distance = 0; + for(Round round : getRounds()){ + distance += round.getTotalDistance(); } - return baseStats; + return distance; } } -- cgit v1.2.3