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; import java.time.LocalDate;
public abstract class Medium { public abstract class Medium implements Loanable {
private String id; private String id;
private String title; private String title;
private String releaseYear; private String releaseYear;
private boolean isBorrowed; private boolean isBorrowed;
private LocalDate borrowDate; private LocalDate borrowDate;
private LocalDate dueDate; private LocalDate dueDate;
private int renewals;
// Konstruktor
public Medium(String id, String title, String releaseYear) { public Medium(String id, String title, String releaseYear) {
this.id = id; this.id = id;
this.title = title; this.title = title;
this.releaseYear = releaseYear; 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() { public String getId() {
@ -31,39 +70,6 @@ public abstract class Medium {
return releaseYear; 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 // Neue Methode für den Autor
public abstract String getAuthor(); public abstract String getAuthor();
@ -71,8 +77,4 @@ public abstract class Medium {
return borrowDate; return borrowDate;
} }
public void setBorrowDate(LocalDate borrowDate) {
this.borrowDate = borrowDate;
}
} }