Bib1/Fassade.java

78 lines
2.6 KiB
Java

import java.time.LocalDate;
import java.util.List;
public class Fassade {
private final Verwaltung verwaltung;
private LocalDate aktuellesDatum;
// Konstruktor
public Fassade(Verwaltung verwaltung) {
this.verwaltung = verwaltung;
this.aktuellesDatum = LocalDate.now(); // Initiales Datum ist das heutige Datum
}
// Benutzer registrieren
public void registriereBenutzer(Benutzer benutzer) {
verwaltung.addBenutzer(benutzer); // Benutzer zur Verwaltung hinzufügen
}
// Benutzer anmelden
public Benutzer anmeldenBenutzer(int kundennummer) {
return verwaltung.benutzerListe.stream()
.filter(b -> b.getKundennummer() == kundennummer)
.findFirst()
.orElse(null); // Gibt null zurück, wenn Benutzer nicht gefunden wurde
}
// Medien durchsuchen
public List<Medien> durchsuchenMedien(String suchbegriff) {
// Rufe die Methode in der Verwaltung auf und übergebe die medienListe
return verwaltung.durchsuchenMedien(verwaltung.mediensListe, suchbegriff);
}
// Medien ausleihen
public void ausleihen(int medienId, Benutzer benutzer, LocalDate ausleihDatum, LocalDate rueckgabeDatum) {
Medien medien = verwaltung.mediensListe.stream()
.filter(m -> m.getId() == medienId)
.findFirst()
.orElse(null);
if (medien != null) {
verwaltung.addAL(medien, benutzer, ausleihDatum, rueckgabeDatum); // Leihe das Medium aus
} else {
System.out.println("Medien nicht gefunden.");
}
}
// Medien zurückgeben
public void rueckgabe(int medienId, Benutzer benutzer, LocalDate rueckgabeDatum) {
verwaltung.rueckgabe(medienId, benutzer, rueckgabeDatum); // Rückgabe des Mediums
}
// Medien verlängern
public void verlaengern(int medienId, Benutzer benutzer) {
Medien medien = verwaltung.mediensListe.stream()
.filter(m -> m.getId() == medienId)
.findFirst()
.orElse(null);
if (medien != null) {
verwaltung.verlängern(medien, benutzer); // Verlängere die Leihfrist
} else {
System.out.println("Medien nicht gefunden.");
}
}
// Zeit verschieben
public void zeitVerschieben(LocalDate neuesDatum) {
this.aktuellesDatum = neuesDatum; // Aktuelles Datum auf das neue Datum setzen
}
// Aktuelles Datum abrufen
public LocalDate getAktuellesDatum() {
return aktuellesDatum; // Gibt das aktuelle Datum zurück
}
}