From 45bee2714b3f7195118774af7daeb9f957e9cd4d Mon Sep 17 00:00:00 2001 From: fabianArbeit Date: Fri, 8 Aug 2025 15:01:50 +0200 Subject: [PATCH] - added setter for totalMinutes - removed dilemma about overriding setEndTime AND setTotalMinutes etc. --- .../java/de/szimnau/AbstractLoadingBar.java | 18 ++++++++++++++---- .../src/main/java/de/szimnau/DrinkingBar.java | 3 +-- .../main/java/de/szimnau/WorkLoadingBar.java | 3 +-- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/zeitlaeufer/src/main/java/de/szimnau/AbstractLoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/AbstractLoadingBar.java index 767419d..c94a3f2 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/AbstractLoadingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/AbstractLoadingBar.java @@ -31,9 +31,7 @@ public abstract class AbstractLoadingBar { protected AbstractLoadingBar(LocalTime startTime, long totalMinutes) { this.startTime = startTime; - this.endTime = startTime.plusMinutes(totalMinutes); - this.totalMinutes = totalMinutes; - this.totalMinutesBD = BigDecimal.valueOf(totalMinutes); + setTotalMinutes(totalMinutes); } @@ -47,18 +45,30 @@ public abstract class AbstractLoadingBar { } - protected void setEndTime(LocalTime endTime) { + protected final void setEndTime(LocalTime endTime) { this.endTime = endTime; this.totalMinutes = startTime.until(endTime, ChronoUnit.MINUTES); this.totalMinutesBD = BigDecimal.valueOf(totalMinutes); + extraInitEndTimeTotalMinutes(); } + protected void extraInitEndTimeTotalMinutes() {} + + protected long getTotalMinutes() { return totalMinutes; } + protected final void setTotalMinutes(long totalMinutes) { + this.totalMinutes = totalMinutes; + this.totalMinutesBD = BigDecimal.valueOf(totalMinutes); + this.endTime = startTime.plusMinutes(totalMinutes); + extraInitEndTimeTotalMinutes(); + } + + protected BigDecimal getTotalMinutesBD() { return totalMinutesBD; } diff --git a/zeitlaeufer/src/main/java/de/szimnau/DrinkingBar.java b/zeitlaeufer/src/main/java/de/szimnau/DrinkingBar.java index a549e8b..2446826 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/DrinkingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/DrinkingBar.java @@ -37,8 +37,7 @@ public class DrinkingBar extends AbstractLoadingBar { @Override - protected void setEndTime(LocalTime endTime) { - super.setEndTime(endTime); + protected void extraInitEndTimeTotalMinutes() { // correct necessary litres to drink based on the end time. // lower the volume in quarter litre steps BigDecimal calcTotalLitres = DEFAULT_TOTAL_LITRES; diff --git a/zeitlaeufer/src/main/java/de/szimnau/WorkLoadingBar.java b/zeitlaeufer/src/main/java/de/szimnau/WorkLoadingBar.java index 4c3ae2b..37e55cc 100644 --- a/zeitlaeufer/src/main/java/de/szimnau/WorkLoadingBar.java +++ b/zeitlaeufer/src/main/java/de/szimnau/WorkLoadingBar.java @@ -77,8 +77,7 @@ public class WorkLoadingBar extends AbstractProgressBar { @Override - protected void setEndTime(LocalTime endTime) { - super.setEndTime(endTime); + protected void extraInitEndTimeTotalMinutes() { drinkingBar.setEndTime(endTime); }