Vollständige User Klasse und UserFacade

WetterService
danai 2024-06-14 15:29:25 +02:00
parent 09a7b543a5
commit 829e875409
2 changed files with 138 additions and 66 deletions

View File

@ -1,12 +1,19 @@
package domain; package domain;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader; import java.io.FileReader;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class User { public class User implements Serializable{
private String username; private String username;
private String password; private String password;
@ -34,88 +41,112 @@ public class User {
} }
public String getPassword() { public String getPassword() {
return password; return password;
} }
public void setPassword(String password) { public void setPassword(String password) {
this.password = password; this.password = password;
} }
public Ort getHeimatstandort() { public Ort getHeimatstandort() {
return heimatstandort; return heimatstandort;
} }
public void setHeimatstandort(Ort heimatstandort) { public void setHeimatstandort(Ort heimatstandort) {
this.heimatstandort = heimatstandort; this.heimatstandort = heimatstandort;
} }
public Auto getAuto() { public Auto getAuto() {
return auto; return auto;
} }
public void setAuto(Auto auto) { public void setAuto(Auto auto) {
this.auto = auto; this.auto = auto;
} }
public double getDurchschnittsgeschwindigkeitPKW() { public double getDurchschnittsgeschwindigkeitPKW() {
return durchschnittsgeschwindigkeitPKW; return durchschnittsgeschwindigkeitPKW;
} }
public void setDurchschnittsgeschwindigkeitPKW(double durchschnittsgeschwindigkeitPKW) { public void setDurchschnittsgeschwindigkeitPKW(double durchschnittsgeschwindigkeitPKW) {
this.durchschnittsgeschwindigkeitPKW = durchschnittsgeschwindigkeitPKW; this.durchschnittsgeschwindigkeitPKW = durchschnittsgeschwindigkeitPKW;
} }
public double getDurchschnittsgeschwindigkeitFahrrad() {
return durchschnittsgeschwindigkeitFahrrad;
}
public void setDurchschnittsgeschwindigkeitFahrrad(double durchschnittsgeschwindigkeitFahrrad) {
this.durchschnittsgeschwindigkeitFahrrad = durchschnittsgeschwindigkeitFahrrad;
}
public double getDurchschnittsgeschwindigkeitFahrrad() {
return durchschnittsgeschwindigkeitFahrrad;
}
public void setDurchschnittsgeschwindigkeitFahrrad(double durchschnittsgeschwindigkeitFahrrad) {
this.durchschnittsgeschwindigkeitFahrrad = durchschnittsgeschwindigkeitFahrrad;
}
public void registrieren() { public void registrieren() {
try (PrintWriter writer = new PrintWriter(new FileWriter("users.txt", true))) { try (PrintWriter writer = new PrintWriter(new FileWriter("users.txt", true))) {
writer.println(username + "," + password + "," + heimatstandort.getPLZ() + "," + heimatstandort.getOrtName() + "," writer.println(username + "," + password + "," + heimatstandort.getPLZ() + "," + heimatstandort.getOrtName()
+ auto.getName() + "," + auto.getCO2AusstossProKm() + "," + durchschnittsgeschwindigkeitPKW + "," + "," + auto.getName() + "," + auto.getCO2AusstossProKm() + "," + durchschnittsgeschwindigkeitPKW
+ durchschnittsgeschwindigkeitFahrrad); + "," + durchschnittsgeschwindigkeitFahrrad);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
public boolean einloggen() { public boolean einloggen() {
try (BufferedReader reader = new BufferedReader(new FileReader("users.txt"))) { try (BufferedReader reader = new BufferedReader(new FileReader("users.txt"))) {
String line; String line;
while ((line = reader.readLine()) != null) { while ((line = reader.readLine()) != null) {
String[] parts = line.split(","); String[] parts = line.split(",");
if (parts[0].equals(username) && parts[1].equals(password)) { if (parts[0].equals(username) && parts[1].equals(password)) {
// Benutzerdaten laden // Benutzerdaten laden
this.heimatstandort = new Ort(parts[2], parts[3]); this.heimatstandort = new Ort(parts[2], parts[3]);
this.auto = new Auto(parts[4], Double.parseDouble(parts[5])); this.auto = new Auto(parts[4], Double.parseDouble(parts[5]));
this.durchschnittsgeschwindigkeitPKW = Double.parseDouble(parts[6]); this.durchschnittsgeschwindigkeitPKW = Double.parseDouble(parts[6]);
this.durchschnittsgeschwindigkeitFahrrad = Double.parseDouble(parts[7]); this.durchschnittsgeschwindigkeitFahrrad = Double.parseDouble(parts[7]);
return true; return true;
} }
} }
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
public String zeigeWetterHeimatstandort() {
try {
return WetterService.getAktuellesWetter(heimatstandort.getOrtName());
} catch (IOException | InterruptedException e) {
return "Fehler beim Abrufen des Wetters: " + e.getMessage();
}
}
public String zeigeWettervorhersageHeimatstandort() {
try {
return WetterService.getWettervorhersage(heimatstandort.getOrtName());
} catch (IOException | InterruptedException e) {
return "Fehler beim Abrufen der Wettervorhersage: " + e.getMessage();
}
}
private void saveUsers(List<User> users) {
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("users.ser"))) {
oos.writeObject(users);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
return false; }
}
public void zeigeWetterHeimatstandort() {
}
private List<User> loadUsers() {
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("users.ser"))) {
return (List<User>) ois.readObject();
} catch (IOException | ClassNotFoundException e) {
return new ArrayList<>();
}
}
} }

View File

@ -1,5 +1,46 @@
package fassade; package fassade;
import domain.User;
import domain.Ort;
import domain.Auto;
public class UserFassade { public class UserFassade {
public User registrieren(String username, String password, String plz, String ortName, String autoName,
double co2AusstossProKm, double durchschnittsgeschwindigkeitPKW,
double durchschnittsgeschwindigkeitFahrrad) {
Ort heimatstandort = new Ort(plz, ortName);
Auto auto = new Auto(autoName, co2AusstossProKm);
User user = new User(username, password, heimatstandort, auto, durchschnittsgeschwindigkeitPKW,
durchschnittsgeschwindigkeitFahrrad);
user.registrieren();
return user;
}
public User einloggen(String username, String password) {
User user = new User(username, password, null, null, 0, 0);
if (user.einloggen()) {
return user;
}
return null;
}
public void zeigeWetterHeimatstandort(User user) {
try {
String aktuellesWetter = user.zeigeWetterHeimatstandort();
System.out.println(aktuellesWetter);
} catch (Exception e) {
System.err.println("Fehler beim Abrufen des aktuellen Wetters: " + e.getMessage());
}
}
public void zeigeWettervorhersageHeimatstandort(User user) {
try {
String wettervorhersage = user.zeigeWettervorhersageHeimatstandort();
System.out.println(wettervorhersage);
} catch (Exception e) {
System.err.println("Fehler beim Abrufen der Wettervorhersage: " + e.getMessage());
}
}
} }