From: Robin Date: Mon, 10 Nov 2025 11:04:37 +0000 (+0100) Subject: Completed: Show fuel stations which have a specific value in their special attribute X-Git-Url: https://git.eternal.ddnss.de/?a=commitdiff_plain;h=1f8e2f86f1ac9aaba9085dc15cef73ca4133b15f;p=tankstelle.git Completed: Show fuel stations which have a specific value in their special attribute Note: For the sake of simplicity, all three overloads return the same datatype FuelStation[] --- diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/LargeFuelStation.java b/src/main/java/de/diejungsvondertanke/tankstelle/LargeFuelStation.java index 43dc352..43c8f94 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/LargeFuelStation.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/LargeFuelStation.java @@ -42,4 +42,13 @@ public class LargeFuelStation extends FuelStation { super(number_of_employees, Size.LARGE, fuels); this.supermarket_company = supermarket_company; } + + /** + * Getter method + * + * @return the name of the company running the integrated supermarket + */ + public String getSupermarket_company() { + return supermarket_company; + } } diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/Main.java b/src/main/java/de/diejungsvondertanke/tankstelle/Main.java index a49fa88..4732ded 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/Main.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/Main.java @@ -1,5 +1,7 @@ package de.diejungsvondertanke.tankstelle; +import java.util.ArrayList; + /** * Main Class */ @@ -14,4 +16,58 @@ public class Main { public static void main(String[] args) { } + + /** + * Get an array of fuel stations which have a number of vending machines + * that is equal to {@code number_of_vending_machines} + * + * @param number_of_vending_machines Select all fuel stations with this number + * of vending machines + * @return an array of fuel stations (all of type {@link SmallFuelStation}) + */ + public static FuelStation[] getFuelStations(short number_of_vending_machines) { + ArrayList result = new ArrayList(); + for (FuelStation fuelStation : fuelStations) { + if (fuelStation instanceof SmallFuelStation + && ((SmallFuelStation) fuelStation).getNumber_of_vending_machines() == number_of_vending_machines) + result.add(fuelStation); + } + return result.toArray(new FuelStation[0]); // Change to SmallFuelStation if required + } + + /** + * Get an array of fuel stations which have an amount of square + * metres of retail space that is equal to {@code retail_space} + * + * @param retail_space Select all fuel stations with this amount of square + * metres of retail space + * @return an array of fuel stations (all of type {@link MediumFuelStation}) + */ + public static FuelStation[] getFuelStations(float retail_space) { + ArrayList result = new ArrayList(); + for (FuelStation fuelStation : fuelStations) { + if (fuelStation instanceof MediumFuelStation + && ((MediumFuelStation) fuelStation).getRetail_space() == retail_space) + result.add(fuelStation); + } + return result.toArray(new FuelStation[0]); // Change to MediumFuelStation if required + } + + /** + * Get an array of fuel stations whose integrated supermarket is run by + * {@code retail_space} + * + * @param supermarket_company Select all fuel stations with this company running + * the integrated supermarket + * @return an array of fuel stations (all of type {@link LargeFuelStation}) + */ + public static FuelStation[] getFuelStations(String supermarket_company) { + ArrayList result = new ArrayList(); + for (FuelStation fuelStation : fuelStations) { + if (fuelStation instanceof LargeFuelStation + && ((LargeFuelStation) fuelStation).getSupermarket_company().equals(supermarket_company)) + result.add(fuelStation); + } + return result.toArray(new FuelStation[0]); // Change to LargeFuelStation if required + } } \ No newline at end of file diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/MediumFuelStation.java b/src/main/java/de/diejungsvondertanke/tankstelle/MediumFuelStation.java index 9bb7ff1..44e9c2d 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/MediumFuelStation.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/MediumFuelStation.java @@ -40,4 +40,13 @@ public class MediumFuelStation extends FuelStation { super(number_of_employees, Size.MEDIUM, fuels); this.retail_space = retail_space; } + + /** + * Getter method + * + * @return retail space in m² + */ + public float getRetail_space() { + return retail_space; + } } diff --git a/src/main/java/de/diejungsvondertanke/tankstelle/SmallFuelStation.java b/src/main/java/de/diejungsvondertanke/tankstelle/SmallFuelStation.java index 9073c39..dca0e79 100644 --- a/src/main/java/de/diejungsvondertanke/tankstelle/SmallFuelStation.java +++ b/src/main/java/de/diejungsvondertanke/tankstelle/SmallFuelStation.java @@ -5,7 +5,7 @@ package de.diejungsvondertanke.tankstelle; */ public class SmallFuelStation extends FuelStation { /** - * Number of drink vending machines + * Number of drink vending machines */ private short number_of_vending_machines; @@ -36,4 +36,13 @@ public class SmallFuelStation extends FuelStation { super(number_of_employees, Size.SMALL, fuels); this.number_of_vending_machines = number_of_vending_machines; } + + /** + * Getter method + * + * @return the number of drink vending machines this fuel station has + */ + public short getNumber_of_vending_machines() { + return number_of_vending_machines; + } }