feat: add the first display class

This commit is contained in:
Nemo D'ACREMONT 2024-11-04 10:39:27 +01:00
parent 96c1866978
commit 25ad77e394
No known key found for this signature in database
GPG Key ID: 6E5BCE8022FA8276
3 changed files with 60 additions and 2 deletions

View File

@ -5,6 +5,11 @@ import java.io.IOException;
public class Main { public class Main {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
String APIKey = "cef8e1b6ea364994b5072423240111"; String APIKey = "cef8e1b6ea364994b5072423240111";
} WeatherAPI weatherAPI = new WeatherAPI(APIKey);
WeatherDisplay display = new WeatherDisplayBasic();
display.addAPI(weatherAPI);
display.display(5, "Bordeaux");
}
} }

View File

@ -1,7 +1,7 @@
package eirb.pg203; package eirb.pg203;
public interface WeatherDisplay { public interface WeatherDisplay {
void display(); void display(int days, String city);
void addAPI(WeatherDataAPI w); void addAPI(WeatherDataAPI w);
} }

View File

@ -0,0 +1,53 @@
package eirb.pg203;
import java.util.ArrayList;
class WeatherDisplayBasic implements WeatherDisplay {
ArrayList<WeatherDataAPI> apis;
WeatherDisplayBasic() {
this.apis = new ArrayList<WeatherDataAPI>();
}
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<Temperature> 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<Temperature> 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);
}
}