diff --git a/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java b/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java index 549e725..0ef8637 100644 --- a/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java +++ b/TravelBuddyApp/src/main/java/domain/KurztripEmpfehlung.java @@ -1,8 +1,5 @@ package domain; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Random; @@ -14,7 +11,7 @@ public class KurztripEmpfehlung { private Ort heimatort; public KurztripEmpfehlung(User user) { - this.alleOrte = ladeAlleOrte(); +// this.alleOrte = ladeAlleOrte(); this.heimatort = null; } @@ -112,34 +109,34 @@ public class KurztripEmpfehlung { - private List ladeAlleOrte() { - List alleOrte = new ArrayList<>(); - - String csvFile = "src/main/resources/PLZ.csv"; - String line; - try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { - while ((line = br.readLine()) != null) { - line = line.replaceAll("\\s+", ""); - String[] data = line.split(";"); - int plz = Integer.parseInt(data[0].replaceAll("\"", "")); - String ortName = data[1].replaceAll("\"", ""); - double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); - double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); - Ort ort = new Ort(plz, ortName); - ort.breitengrad = breitengrad; - ort.längengrad = laengengrad; - alleOrte.add(ort); - } - } catch (IOException e) { - System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); - e.printStackTrace(); - } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { - System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); - e.printStackTrace(); - } - - return alleOrte; - } +// private List ladeAlleOrte() { +// List alleOrte = new ArrayList<>(); +// +// String csvFile = "src/main/resources/PLZ.csv"; +// String line; +// try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { +// while ((line = br.readLine()) != null) { +// line = line.replaceAll("\\s+", ""); +// String[] data = line.split(";"); +// int plz = Integer.parseInt(data[0].replaceAll("\"", "")); +// String ortName = data[1].replaceAll("\"", ""); +// double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); +// double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); +// Ort ort = new Ort(plz, ortName); +// ort.breitengrad = breitengrad; +// ort.längengrad = laengengrad; +// alleOrte.add(ort); +// } +// } catch (IOException e) { +// System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); +// e.printStackTrace(); +// } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { +// System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); +// e.printStackTrace(); +// } +// +// return alleOrte; +// } public Ort getHeimatort() { return heimatort; diff --git a/TravelBuddyApp/src/main/java/domain/Ort.java b/TravelBuddyApp/src/main/java/domain/Ort.java index 392215f..527b437 100644 --- a/TravelBuddyApp/src/main/java/domain/Ort.java +++ b/TravelBuddyApp/src/main/java/domain/Ort.java @@ -7,14 +7,14 @@ public class Ort { private int plz; private String name; - double breitengrad; - double längengrad; + public double breitengrad; + public double längengrad; public Ort(int plz, String name) { this.plz = plz; this.name = name; - this.breitengrad = breitengrad; - this.längengrad = längengrad; +// this.breitengrad = breitengrad; +// this.längengrad = längengrad; } public String getAktuellesWetter() { diff --git a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java index 1fc5638..1367522 100644 --- a/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java +++ b/TravelBuddyApp/src/main/java/fassade/ReiseFassade.java @@ -1,10 +1,9 @@ package fassade; -import java.io.File; -import java.io.FileNotFoundException; -import java.util.HashSet; -import java.util.Scanner; -import java.util.Set; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.util.ArrayList; import domain.Ort; import domain.Reiseplanung; import domain.User; @@ -17,15 +16,44 @@ public class ReiseFassade { private Reiseplanung reiseplanung; private KurztripEmpfehlung kurztripEmpfehlung; User user; - private Set orte; + List alleOrte; + public ReiseFassade(User user) { - orte = new HashSet<>(); - + + alleOrte = ladeAlleOrte(); // this.kurztripEmpfehlung = new KurztripEmpfehlung(); } + public List ladeAlleOrte() { + List alleOrte = new ArrayList<>(); + + String csvFile = "src/main/resources/PLZ.csv"; + String line; + try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) { + while ((line = br.readLine()) != null) { + line = line.replaceAll("\\s+", ""); + String[] data = line.split(";"); + int plz = Integer.parseInt(data[0].replaceAll("\"", "")); + String ortName = data[1].replaceAll("\"", ""); + double breitengrad = Double.parseDouble(data[2].replaceAll("\"", "")); + double laengengrad = Double.parseDouble(data[3].replaceAll("\"", "")); + Ort ort = new Ort(plz, ortName); + ort.breitengrad = breitengrad; + ort.längengrad = laengengrad; + alleOrte.add(ort); + } + } catch (IOException e) { + System.err.println("Fehler beim Lesen der Datei: " + e.getMessage()); + e.printStackTrace(); + } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) { + System.err.println("Fehlerhaftes Datenformat in der CSV-Datei: " + e.getMessage()); + e.printStackTrace(); + } + + return alleOrte; + } // //lädt Datei aus rescources ein und speichert Orte in HashSet ab // private void orteLaden() throws FileNotFoundException { @@ -49,15 +77,15 @@ private KurztripEmpfehlung kurztripEmpfehlung; //gibt Trefferliste passend zum Suchbegriff zurück public String sucheOrt(String suchbegriff) { - Set trefferliste = new HashSet<>(); + List trefferliste = new ArrayList<>(); String ausgabe = " "; //gibt alle Orte zurück if(suchbegriff.equals("alle")) - trefferliste = orte; + trefferliste = alleOrte; else //läuft über set orte - for(Ort o : orte) { + for(Ort o : alleOrte) { //fügt ort zur Trefferliste hinzu wenn der Suchbegriff im Namen ist und weniger als 8 Orte bereits drauf stehen if(o.getName().contains(suchbegriff) && trefferliste.size()<8) trefferliste.add(o); @@ -81,7 +109,10 @@ private KurztripEmpfehlung kurztripEmpfehlung; reiseplanung.berechneCo2Ausstoss(); return reiseplanung; }*/ - + public String getReiseplanung(User user, Ort ziel) { + reiseplanung = new Reiseplanung(user, ziel); + return reiseplanung.toString(); + } public void setHeimatortFromUser(User user) { kurztripEmpfehlung.setHeimatort(user.getHeimatstandort()); diff --git a/TravelBuddyApp/src/main/java/ui/UserInterface.java b/TravelBuddyApp/src/main/java/ui/UserInterface.java index cf6db13..df7cee8 100644 --- a/TravelBuddyApp/src/main/java/ui/UserInterface.java +++ b/TravelBuddyApp/src/main/java/ui/UserInterface.java @@ -4,7 +4,6 @@ import java.util.List; import java.util.Scanner; import domain.Ort; -import domain.Reiseplanung; import domain.User; import fassade.ReiseFassade; import fassade.UserFassade; @@ -131,6 +130,7 @@ public class UserInterface { private void sucheOrt() { System.out.print("Geben Sie den Namen des Ortes ein: "); String ortName = scanner.nextLine(); + System.out.println(reiseFacade.sucheOrt(ortName)); /* * List treffer = reiseFacade.sucheOrt(ortName); if (treffer.isEmpty()) { * System.out.println("Keine Treffer gefunden."); } else { @@ -143,17 +143,18 @@ public class UserInterface { } private void planeReise() { - System.out.print("Geben Sie Ihre Start-PLZ ein: "); - int startPlz = Integer.parseInt(scanner.nextLine()); - System.out.print("Geben Sie Ihren Startort ein: "); - String startOrtName = scanner.nextLine(); - Ort startort = new Ort(startPlz, startOrtName); +// System.out.print("Geben Sie Ihre Start-PLZ ein: "); +// int startPlz = Integer.parseInt(scanner.nextLine()); +// System.out.print("Geben Sie Ihren Startort ein: "); +// String startOrtName = scanner.nextLine(); +// Ort startort = new Ort(startPlz, startOrtName); System.out.print("Geben Sie die Ziel-PLZ ein: "); int zielPlz = Integer.parseInt(scanner.nextLine()); System.out.print("Geben Sie den Zielort ein: "); String zielOrtName = scanner.nextLine(); Ort zielort = new Ort(zielPlz, zielOrtName); + System.out.println(reiseFacade.getReiseplanung(user, zielort)); /* * Reiseplanung reise = reiseFacade.planeReise(startort, zielort); * System.out.println("Reiseplanung:"); System.out.println("Entfernung: " +