From 1816c277d86363d8a010d8dffd786e234e0d0387 Mon Sep 17 00:00:00 2001 From: elarturo Date: Tue, 19 Nov 2024 10:09:01 +0100 Subject: [PATCH] =?UTF-8?q?Methode=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/DomainLayer/Medium.java | 118 +++++++++--------- 1 file changed, 60 insertions(+), 58 deletions(-) diff --git a/Bibliotheksverwaltung/src/DomainLayer/Medium.java b/Bibliotheksverwaltung/src/DomainLayer/Medium.java index a0e8eb4..ef61036 100644 --- a/Bibliotheksverwaltung/src/DomainLayer/Medium.java +++ b/Bibliotheksverwaltung/src/DomainLayer/Medium.java @@ -2,77 +2,79 @@ 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 abstract class Medium implements Loanable { + private String id; + private String title; + private String releaseYear; + private boolean isBorrowed; + private LocalDate borrowDate; + private LocalDate dueDate; - public Medium(String id, String title, String releaseYear) { - this.id = id; - this.title = title; - this.releaseYear = releaseYear; - this.isBorrowed = false; - this.renewals = 0; - } + // Konstruktor + public Medium(String id, String title, String releaseYear) { + this.id = id; + this.title = title; + this.releaseYear = releaseYear; + } + + private int renewals = 0; // Anzahl der bisherigen Verlängerungen - public String getId() { - return id; - } + // Getter und Setter für Verlängerungen + public int getRenewals() { + return renewals; + } - public String getTitle() { - return title; - } + public void increaseRenewals() { + renewals++; + } - public String getReleaseYear() { - return releaseYear; - } + public void resetRenewals() { + renewals = 0; + } - public boolean isBorrowed() { - return isBorrowed; - } - public void setBorrowed(boolean borrowed) { - this.isBorrowed = borrowed; - } + @Override + 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) { - this.dueDate = dueDate; - } + @Override + public LocalDate getDueDate() { + return dueDate; + } - public int getRenewals() { - return renewals; - } + public void setDueDate(LocalDate dueDate) { + this.dueDate = dueDate; // Erlaubt sowohl ein Datum als auch null + } - public void increaseRenewals() { - this.renewals++; - } - public void resetRenewals() { - this.renewals = 0; - } + public boolean isBorrowed() { + return isBorrowed; + } - // Abstrakte Methoden - public abstract int getBorrowPeriod(); - public abstract boolean isRenewable(); - public abstract int getMaxRenewals(); + public void setBorrowed(boolean borrowed) { + isBorrowed = borrowed; + } - // Neue Methode für den Autor - public abstract String getAuthor(); + public String getId() { + return id; + } - public LocalDate getBorrowDate() { - return borrowDate; - } + public String getTitle() { + 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; - } - }