64 lines
1.6 KiB
Java
64 lines
1.6 KiB
Java
package Bibliothek;
|
|
|
|
import java.time.LocalDate;
|
|
|
|
public abstract class Medien {
|
|
protected String titel;
|
|
protected String id;
|
|
protected int erscheinungsjahr;
|
|
protected boolean verfuegbar;
|
|
protected LocalDate rueckgabedat;
|
|
|
|
public Medien(String titel, String id, int erscheinungsjahr) {
|
|
this.titel = titel;
|
|
this.id = id;
|
|
this.erscheinungsjahr = erscheinungsjahr;
|
|
this.verfuegbar = true;
|
|
}
|
|
public String getTitel() {
|
|
return titel;
|
|
}
|
|
public void setTitel(String titel) {
|
|
this.titel = titel;
|
|
}
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
public void setId(String id) {
|
|
this.id = id;
|
|
}
|
|
public int getErscheinungsjahr() {
|
|
return erscheinungsjahr;
|
|
}
|
|
public void setErscheinungsjahr(int er) {
|
|
this.erscheinungsjahr = er;
|
|
}
|
|
public abstract int getAusleihdauer();
|
|
public abstract int getMaxVerlaengerungen();
|
|
|
|
public void ausleihen() {
|
|
if (verfuegbar) {
|
|
verfuegbar = false;
|
|
rueckgabedat = LocalDate.now().plusWeeks(getAusleihdauer());
|
|
System.out.println("Ausgeliehen bis: " + rueckgabedat);
|
|
} else {
|
|
System.out.println("Nicht verfügbar.");
|
|
}
|
|
}
|
|
|
|
public boolean verlaengern(int aktuelleVerlaengerungen) {
|
|
if (aktuelleVerlaengerungen < getMaxVerlaengerungen()) {
|
|
rueckgabedat = rueckgabedat.plusWeeks(getAusleihdauer());
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public void zurueckgeben() {
|
|
verfuegbar = true;
|
|
rueckgabedat = null;
|
|
}
|
|
|
|
public abstract String getDetails();
|
|
}
|