From 25ad77e3941c95da69cf5534d5291eb9dec2d94b Mon Sep 17 00:00:00 2001 From: Nemo D'ACREMONT Date: Mon, 4 Nov 2024 10:39:27 +0100 Subject: [PATCH] feat: add the first display class --- src/main/java/eirb/pg203/Main.java | 7 ++- src/main/java/eirb/pg203/WeatherDisplay.java | 2 +- .../java/eirb/pg203/WeatherDisplayBasic.java | 53 +++++++++++++++++++ 3 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 src/main/java/eirb/pg203/WeatherDisplayBasic.java diff --git a/src/main/java/eirb/pg203/Main.java b/src/main/java/eirb/pg203/Main.java index 4eef713..5e29575 100644 --- a/src/main/java/eirb/pg203/Main.java +++ b/src/main/java/eirb/pg203/Main.java @@ -5,6 +5,11 @@ import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { String APIKey = "cef8e1b6ea364994b5072423240111"; - } + WeatherAPI weatherAPI = new WeatherAPI(APIKey); + WeatherDisplay display = new WeatherDisplayBasic(); + display.addAPI(weatherAPI); + + display.display(5, "Bordeaux"); + } } diff --git a/src/main/java/eirb/pg203/WeatherDisplay.java b/src/main/java/eirb/pg203/WeatherDisplay.java index ec5b00d..802fc54 100644 --- a/src/main/java/eirb/pg203/WeatherDisplay.java +++ b/src/main/java/eirb/pg203/WeatherDisplay.java @@ -1,7 +1,7 @@ package eirb.pg203; public interface WeatherDisplay { - void display(); + void display(int days, String city); void addAPI(WeatherDataAPI w); } diff --git a/src/main/java/eirb/pg203/WeatherDisplayBasic.java b/src/main/java/eirb/pg203/WeatherDisplayBasic.java new file mode 100644 index 0000000..f6ce3e7 --- /dev/null +++ b/src/main/java/eirb/pg203/WeatherDisplayBasic.java @@ -0,0 +1,53 @@ +package eirb.pg203; + +import java.util.ArrayList; + +class WeatherDisplayBasic implements WeatherDisplay { + ArrayList apis; + + WeatherDisplayBasic() { + this.apis = new ArrayList(); + } + + private void displayHeader(int days) { + StringBuilder line = new StringBuilder(); + line.append("Source\t"); + + for (int i = 0 ; i < days ; ++i) { + line.append("\tJ + ") + .append(i); + } + + System.err.println(line); + } + + private void displayTemperatures(String ApiName, ArrayList temperatures) { + StringBuilder line = new StringBuilder(); + line.append(ApiName); + + for (Temperature temp: temperatures) { + line.append('\t') + .append(temp.getTemp()); + } + + System.err.println(line); + } + + public void display(int days, String city) { + ArrayList temperatures; + displayHeader(days); + + for (WeatherDataAPI w: apis) { + try { + temperatures = w.getTemperatures(days, city); + displayTemperatures(w.getAPIName(), temperatures); + } catch (Exception e) { + System.err.println("ntm++ martin"); + } + } + } + + public void addAPI(WeatherDataAPI w) { + this.apis.add(w); + } +}