PR2-Testat-Bibliotheksverwa.../Biblio/src/Bibliothek/Kunde.java

61 lines
1.7 KiB
Java

package Bibliothek;
import java.time.LocalDate;
import java.util.function.Consumer;
public class Kunde extends User {
private boolean istStudent; // True, wenn Kunde ein Student ist
private double gebuehren;
; // Offene Gebühren
public Kunde(String id, String name, boolean istStudent) {
super(id, name);
this.istStudent = istStudent;
this.gebuehren = 0.0;
}
public boolean istStudent() {
return istStudent;
}
public double getGebuehren() {
return gebuehren;
}
public void addGebuehren(double betrag) {
if (betrag > 0) {
this.gebuehren += betrag;
}
}
public void gebuehrenErhoehen(double betrag) {
this.gebuehren += betrag;
}
public double berechneGesamtgebuehren(LocalDate aktuellesDatum) {
return ausgelieheneMedien.stream()
.mapToDouble(medien -> medien.berechneGebuehren(aktuellesDatum))
.sum();
}
public Medien sucheAusgeliehenesMedium(String medienId) {
return ausgelieheneMedien.stream()
.filter(medien -> medien.getId().equalsIgnoreCase(medienId))
.findFirst()
.orElse(null);
}
public boolean medienVerlaengern(Medien medien) {
Consumer<Medien> verlaengerung = m -> {
if (ausgelieheneMedien.contains(m) && m.verlaengern()) { // Kein Argument übergeben
System.out.println("Medium verlängert: " + m.getTitel());
} else {
System.out.println("Verlängerung nicht möglich.");
}
};
verlaengerung.accept(medien);
return false;
}
}