104 lines
3.0 KiB
Java
104 lines
3.0 KiB
Java
package LibrarySystem.domain.medien;
|
|
|
|
import java.time.LocalDate;
|
|
import java.time.temporal.ChronoUnit;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
|
|
public abstract class Medium implements Ausleihbar{
|
|
private String ID;
|
|
private String titel;
|
|
private String autor;
|
|
private int erscheinungsjahr;
|
|
private String medienart;
|
|
private boolean ausgeliehen;
|
|
private Date rueckgabedatum;
|
|
public int verlaengerungen;
|
|
|
|
public Medium(String ID, String titel, String autor, int erscheinungsjahr, String medienart, int verlaengerungen) {
|
|
this.ID = ID;
|
|
this.titel = titel;
|
|
this.autor = autor;
|
|
this.erscheinungsjahr = erscheinungsjahr;
|
|
this.medienart = medienart;
|
|
this.ausgeliehen = false;
|
|
this.verlaengerungen =verlaengerungen;
|
|
}
|
|
|
|
|
|
//Getter und Setter
|
|
public String getID() {
|
|
return ID;
|
|
}
|
|
public void setID(String ID) {
|
|
this.ID = ID;
|
|
}
|
|
public String getTitel() {
|
|
return titel;
|
|
}
|
|
public void setTitel(String titel) {
|
|
this.titel = titel;
|
|
}
|
|
public String getAutor() {
|
|
return autor;
|
|
}
|
|
public void setAutor(String autor) {
|
|
this.autor = autor;
|
|
}
|
|
public int getErscheinungsjahr() {
|
|
return erscheinungsjahr;
|
|
}
|
|
public void setErscheinungsjahr(int erscheinungsjahr) {
|
|
this.erscheinungsjahr = erscheinungsjahr;
|
|
}
|
|
public String getMedienart() {return medienart;}
|
|
public void setMedienart(String Medienart) {this.medienart = Medienart;}
|
|
public boolean istAusgeliehen() {return ausgeliehen;}
|
|
public void setAusgeliehen() {this.ausgeliehen = true;}
|
|
public void setRueckgabe(){this.ausgeliehen = false;}
|
|
public Date getRueckgabedatum(){return rueckgabedatum;}
|
|
public void setRueckgabedatum(Date rueckgabedatum){this.rueckgabedatum = rueckgabedatum;}
|
|
public int getVerlaengerungen() {return verlaengerungen;}
|
|
public void setVerlaengerungen(int verlaengerungen) {}
|
|
|
|
//Andere nützliche Methoden
|
|
public Date rechneRueckgabedatum(){
|
|
Calendar calendar = Calendar.getInstance();
|
|
calendar.add(Calendar.DAY_OF_YEAR, getAusleihdauer());
|
|
this.rueckgabedatum = calendar.getTime();
|
|
return rueckgabedatum;
|
|
}
|
|
|
|
//Abstrakte Methoden
|
|
public abstract int getAusleihdauer();
|
|
public abstract boolean istVerlaengerbar();
|
|
public abstract int verlaengern();
|
|
|
|
@Override
|
|
public void ausleihen() {
|
|
if(!istAusgeliehen()){
|
|
setAusgeliehen();
|
|
rechneRueckgabedatum();
|
|
} else{
|
|
System.out.println("Medium ist bereits ausgeliehen.");
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void rueckgabeMedium() {
|
|
setRueckgabe();
|
|
}
|
|
|
|
@Override
|
|
public boolean istOverdue() {
|
|
return new Date().after(getRueckgabedatum());
|
|
}
|
|
|
|
|
|
@Override
|
|
public String toString() {
|
|
return "ID: " + ID + ", Titel: " + titel + ", Autor: " + autor + ", Erscheinungsjahr: " + erscheinungsjahr;
|
|
}
|
|
|
|
}
|