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,77 +2,79 @@ 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;
public Medium(String id, String title, String releaseYear) { // Konstruktor
this.id = id; public Medium(String id, String title, String releaseYear) {
this.title = title; this.id = id;
this.releaseYear = releaseYear; this.title = title;
this.isBorrowed = false; this.releaseYear = releaseYear;
this.renewals = 0; }
}
private int renewals = 0; // Anzahl der bisherigen Verlängerungen
public String getId() { // Getter und Setter für Verlängerungen
return id; public int getRenewals() {
} return renewals;
}
public String getTitle() { public void increaseRenewals() {
return title; renewals++;
} }
public String getReleaseYear() { public void resetRenewals() {
return releaseYear; renewals = 0;
} }
public boolean isBorrowed() {
return isBorrowed;
}
public void setBorrowed(boolean borrowed) { @Override
this.isBorrowed = borrowed; public void setBorrowDate(LocalDate borrowDate) {
} this.borrowDate = borrowDate;
this.dueDate = borrowDate != null ? borrowDate.plusDays(getBorrowPeriod()) : null; // Fälligkeitsdatum berechnen
}
public LocalDate getDueDate() {
return dueDate;
}
public void setDueDate(LocalDate dueDate) { @Override
this.dueDate = dueDate; public LocalDate getDueDate() {
} return dueDate;
}
public int getRenewals() { public void setDueDate(LocalDate dueDate) {
return renewals; this.dueDate = dueDate; // Erlaubt sowohl ein Datum als auch null
} }
public void increaseRenewals() {
this.renewals++;
}
public void resetRenewals() { public boolean isBorrowed() {
this.renewals = 0; return isBorrowed;
} }
// Abstrakte Methoden public void setBorrowed(boolean borrowed) {
public abstract int getBorrowPeriod(); isBorrowed = borrowed;
public abstract boolean isRenewable(); }
public abstract int getMaxRenewals();
// Neue Methode für den Autor public String getId() {
public abstract String getAuthor(); return id;
}
public LocalDate getBorrowDate() { public String getTitle() {
return borrowDate; return title;
} }
public String getReleaseYear() {
return releaseYear;
}
// Neue Methode für den Autor
public abstract String getAuthor();
public LocalDate getBorrowDate() {
return borrowDate;
}
public void setBorrowDate(LocalDate borrowDate) {
this.borrowDate = borrowDate;
}
} }