abstrakte Klasse Medium mit abstrakten Methoden

Feature-LibraryService
elarturo 2024-11-18 23:04:42 +01:00
parent ac2f223a96
commit ee38827437
1 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,77 @@
package DomainLayer;
import java.time.LocalDate;
public abstract class Medium {
private String id;
private String title;
private String releaseYear;
private boolean isBorrowed;
private LocalDate borrowDate;
private LocalDate dueDate;
private int renewals;
public Medium(String id, String title, String releaseYear) {
this.id = id;
this.title = title;
this.releaseYear = releaseYear;
this.isBorrowed = false;
this.renewals = 0;
}
public String getId() {
return id;
}
public String getTitle() {
return title;
}
public String getReleaseYear() {
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();
public LocalDate getBorrowDate() {
return borrowDate;
}
public void setBorrowDate(LocalDate borrowDate) {
this.borrowDate = borrowDate;
}
}