77 lines
2.2 KiB
Java
77 lines
2.2 KiB
Java
package backend.medium;
|
|
|
|
// Interface für backend.medium.Medien, die ausgeliehen werden können
|
|
interface Ausleihbar {
|
|
int getMaxVerlängerungen(); // Gibt die maximale Anzahl an Verlängerungen zurück
|
|
boolean kannVerlängern(); // Prüft, ob das Medium verlängerbar ist
|
|
boolean verlängern(); // Verlängert das Medium, wenn möglich
|
|
}
|
|
|
|
// Abstrakte Basisklasse für alle backend.medium.Medien
|
|
public abstract class Medien implements Ausleihbar {
|
|
protected String name;
|
|
protected int id;
|
|
protected int frist; // Standard-Ausleihfrist in Wochen
|
|
protected int maxVerlängerungen; // Maximale Anzahl an möglichen Verlängerungen
|
|
protected int aktuelleVerlängerungen = 0; // Aktuelle Anzahl an durchgeführten Verlängerungen
|
|
public boolean istAusgeliehen; // Status, ob das Medium ausgeliehen ist
|
|
|
|
// Konstruktor
|
|
public Medien(String name, int id, int frist, int maxVerlängerungen) {
|
|
this.name = name;
|
|
this.id = id;
|
|
this.frist = frist;
|
|
this.maxVerlängerungen = maxVerlängerungen;
|
|
}
|
|
|
|
// Getter-Methoden
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
public int getId() {
|
|
return id;
|
|
}
|
|
|
|
// Implementierung der backend.medium.Ausleihbar-Methoden
|
|
@Override
|
|
public int getMaxVerlängerungen() {
|
|
return maxVerlängerungen;
|
|
}
|
|
|
|
@Override
|
|
public boolean kannVerlängern() {
|
|
return aktuelleVerlängerungen < maxVerlängerungen;
|
|
}
|
|
|
|
@Override
|
|
public boolean verlängern() {
|
|
if (kannVerlängern()) {
|
|
aktuelleVerlängerungen++;
|
|
return true; // Verlängerung erfolgreich
|
|
}
|
|
return false; // Keine Verlängerung mehr möglich
|
|
}
|
|
|
|
public boolean istAusgeliehen() {
|
|
return istAusgeliehen;
|
|
}
|
|
|
|
public void ausleihen() {
|
|
if (!istAusgeliehen) {
|
|
istAusgeliehen = true;
|
|
} else {
|
|
System.out.println("Das Medium ist bereits ausgeliehen.");
|
|
}
|
|
}
|
|
|
|
public int getAktuelleVerlängerungen() {
|
|
return aktuelleVerlängerungen;
|
|
}
|
|
|
|
|
|
public void zurückgeben() {
|
|
istAusgeliehen = false;
|
|
}
|
|
}
|