From 6edcb7dde92abf9bcba0f29538e2874fe804c211 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nils=20G=C3=B6bbert?= Date: Sat, 15 Nov 2025 16:46:21 +0100 Subject: [PATCH] added function to get highest and lowest fuel --- .../tankstelle/FuelStation.java | 17 +++++++++ .../diejungsvondertanke/tankstelle/Main.java | 38 +++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/FuelStation.java b/src/main/java/de/diejungsvondertanke/tankstelle/FuelStation.java index d73ee10..d1df829 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/FuelStation.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/FuelStation.java @@ -155,4 +155,21 @@ abstract class FuelStation { public void setNumber_of_employees(byte number_of_employees) { this.number_of_employees = number_of_employees; } + + /** + * Get the fuel amound for a specific type of fuel for this fuel station + * + * @param fuel_type The {@link FuelType FuelType} to get + * @throws NoSuchFuelTypeError This Error is thrown on the attempt to choose a + * fuel type from a fuel station + * which the fuel station does not have + */ + public float getStored_amount(FuelType fuel_type) throws NoSuchFuelTypeError { + for (Fuel i : fuels) { + if (i.FUEL_TYPE == fuel_type) { + return i.getStored_amount(); + } + } + throw new NoSuchFuelTypeError("This fuel station does not have fuel of the given type"); + } } diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/Main.java b/src/main/java/de/diejungsvondertanke/tankstelle/Main.java index e412539..d193465 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/Main.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/Main.java @@ -112,4 +112,42 @@ public class Main { } return highestStation; } + /** + * Get the FuelStation with the stored fuel + * + * + * @param fuelType Select the type of fuel + * + * @return a FuelStation (all of type {@link FuelStation}) + */ + public static FuelStation getHighestStoredAmount(FuelType fuelType) throws NoSuchFuelTypeError{ + float highestAmound = fuelStations[0].getStored_amount(fuelType); + FuelStation highestStation = fuelStations[0]; + for (FuelStation fuelStation : fuelStations) { + if (fuelStation.getStored_amount(fuelType) > highestAmound) { + highestAmound = fuelStation.getStored_amount(fuelType); + highestStation = fuelStation; + } + } + return highestStation; + } + /** + * Get the FuelStation with the lowest fuel + * + * + * @param fuelType Select the type of fuel + * + * @return a FuelStation (all of type {@link FuelStation}) + */ + public static FuelStation getLowerstStoredAmount(FuelType fuelType) throws NoSuchFuelTypeError{ + float LowestAmound = fuelStations[0].getStored_amount(fuelType); + FuelStation LowestStation = fuelStations[0]; + for (FuelStation fuelStation : fuelStations) { + if (fuelStation.getStored_amount(fuelType) > LowestAmound) { + LowestAmound = fuelStation.getStored_amount(fuelType); + LowestStation = fuelStation; + } + } + return LowestStation; + } } \ No newline at end of file -- 2.43.0