Methode hinzugefügt

pull/2/head
elarturo 2024-11-19 10:09:01 +01:00
parent 7ecd2575c2
commit 1816c277d8
1 changed files with 60 additions and 58 deletions

View File

@ -2,21 +2,60 @@ package DomainLayer;
import java.time.LocalDate;
public abstract class Medium {
public abstract class Medium implements Loanable {
private String id;
private String title;
private String releaseYear;
private boolean isBorrowed;
private LocalDate borrowDate;
private LocalDate dueDate;
private int renewals;
// Konstruktor
public Medium(String id, String title, String releaseYear) {
this.id = id;
this.title = title;
this.releaseYear = releaseYear;
this.isBorrowed = false;
this.renewals = 0;
}
private int renewals = 0; // Anzahl der bisherigen Verlängerungen
// Getter und Setter für Verlängerungen
public int getRenewals() {
return renewals;
}
public void increaseRenewals() {
renewals++;
}
public void resetRenewals() {
renewals = 0;
}
@Override
public void setBorrowDate(LocalDate borrowDate) {
this.borrowDate = borrowDate;
this.dueDate = borrowDate != null ? borrowDate.plusDays(getBorrowPeriod()) : null; // Fälligkeitsdatum berechnen
}
@Override
public LocalDate getDueDate() {
return dueDate;
}
public void setDueDate(LocalDate dueDate) {
this.dueDate = dueDate; // Erlaubt sowohl ein Datum als auch null
}
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) {
isBorrowed = borrowed;
}
public String getId() {
@ -31,39 +70,6 @@ public abstract class Medium {
return releaseYear;
}
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) {
this.isBorrowed = borrowed;
}
public LocalDate getDueDate() {
return dueDate;
}
public void setDueDate(LocalDate dueDate) {
this.dueDate = dueDate;
}
public int getRenewals() {
return renewals;
}
public void increaseRenewals() {
this.renewals++;
}
public void resetRenewals() {
this.renewals = 0;
}
// Abstrakte Methoden
public abstract int getBorrowPeriod();
public abstract boolean isRenewable();
public abstract int getMaxRenewals();
// Neue Methode für den Autor
public abstract String getAuthor();
@ -71,8 +77,4 @@ public abstract class Medium {
return borrowDate;
}
public void setBorrowDate(LocalDate borrowDate) {
this.borrowDate = borrowDate;
}
}