diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java index d29d85f..231c7e1 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/AusleiheSystem.java @@ -1,38 +1,49 @@ package domain.AusleiheSystem; -import java.util.ArrayList; +import java.util.*; import domain.Benutzer.Benutzer; import domain.ExceptionsKlassen.MediumNichtGefundenException; -import domain.Medium.Brettspiel; -import domain.Medium.Medium; +import domain.Medium.*; public class AusleiheSystem { private ArrayList mediums; - private Benutzer benutzer; + private Date ausleiheBeginn; + private Date ausleiheEnde; + private Calendar calendar; + private int wocheAnzahlZuAusleihen; + public AusleiheSystem(ArrayList mediums) { this.mediums = mediums; } public void mediumAusleihen(Benutzer benutzer, String eindutigenummer) throws MediumNichtGefundenException { - this.benutzer = benutzer; Medium mediumAusleihen = findMedium(eindutigenummer); - MediumZumAusleihen medium; - if (mediumAusleihen instanceof Brettspiel) - - medium = new MediumZumAusleihen(false,mediumAusleihen); - else - medium = new MediumZumAusleihen(true,mediumAusleihen); - - benutzer.ausleihen(medium); + this.ausleiheBeginn = new Date(); + this.calendar = Calendar.getInstance(); + calendar.setTime(ausleiheBeginn); + if (mediumAusleihen instanceof Buch || mediumAusleihen instanceof Videospiel) + wocheAnzahlZuAusleihen = 4; + + else if (mediumAusleihen instanceof Dvd) + wocheAnzahlZuAusleihen = 1; + + else if (mediumAusleihen instanceof Cd || mediumAusleihen instanceof Brettspiel) + wocheAnzahlZuAusleihen = 2; + + calendar.add(Calendar.WEEK_OF_YEAR, wocheAnzahlZuAusleihen); + this.ausleiheEnde = calendar.getTime(); + benutzer.ausleihen(new MediumZumAusleihen(mediumAusleihen,ausleiheBeginn,ausleiheEnde,wocheAnzahlZuAusleihen)); + + benutzer.getAusgeliehenenMedien().stream() - .forEach(System.out::println); - - + .forEach(System.out::println); } + + private Medium findMedium(String eindeutigeKennung) throws MediumNichtGefundenException { return mediums.stream() .filter(m -> m.getKennungNummer().equalsIgnoreCase(eindeutigeKennung)) diff --git a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java index 59664d6..e41f02c 100644 --- a/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java +++ b/Bibliotheksverwaltungssystem/src/domain/AusleiheSystem/MediumZumAusleihen.java @@ -7,44 +7,53 @@ import domain.Medium.Medium; public class MediumZumAusleihen { - private Date ausleihefrist; - private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss"); - private String formattedDate; + private SimpleDateFormat simpleFormatter; + private Date ausleiheBeginn, ausleiheEnde; private Medium medium; - private boolean verlängerbar; + private int wochenAnzahl; - public MediumZumAusleihen(boolean verlängerbar, Medium medium) { - this.ausleihefrist = new Date(); - formattedDate = formatter.format(this.ausleihefrist); - this.verlängerbar = verlängerbar; + public MediumZumAusleihen(Medium medium,Date ausleiheBeginn, Date ausleiheEnde, int wochenAnzahl) { this.medium = medium; - } - - - public Date getAusleihefrist() { - return ausleihefrist; + this.ausleiheBeginn = ausleiheBeginn; + this.ausleiheEnde = ausleiheEnde; + this.wochenAnzahl = wochenAnzahl; + this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm"); } - - public void setAusleihefrist(Date ausleihefrist) { - this.ausleihefrist = ausleihefrist; + public Date getAusleiheBeginn() { + return ausleiheBeginn; } + public void setAusleiheBeginn(Date ausleiheBeginn) { + this.ausleiheBeginn = ausleiheBeginn; + } + + public Date getAusleiheEnde() { + return ausleiheEnde; + } + + public void setAusleiheEnde(Date ausleiheEnde) { + this.ausleiheEnde = ausleiheEnde; + } public Medium getMedium() { return medium; } - public void setMedium(Medium medium) { this.medium = medium; } - - - @Override - public String toString() { - return "MediumZumAusleihen [ausleihefrist=" + formattedDate + ", verlängerbar=" - + verlängerbar + ", medium=" + medium + "]"; + + public int getWochenAnzahl() { + return wochenAnzahl; } + public void setWochenAnzahl(int wochenAnzahl) { + this.wochenAnzahl = wochenAnzahl; + } + + @Override + public String toString() { + return "Ausgeliehene Medium: Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde) + " ,Wochenanzahl zum Ausleihen= "+ this.wochenAnzahl+" ,Medium= " + medium.toString(); + } } diff --git a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java index 9615f0f..0bbbccf 100644 --- a/Bibliotheksverwaltungssystem/src/domain/BibSystem.java +++ b/Bibliotheksverwaltungssystem/src/domain/BibSystem.java @@ -60,20 +60,12 @@ public class BibSystem { private void mediumAufladen() { - alleMediums.add(new Buch("B001","Effektives Java Programmieren",2018,"Joshua Bloch")); - alleMediums.add(new Buch("B00","Effektives C++ Programmieren",2012,"XY Müller")); - alleMediums.add(new Brettspiel("BG001","Die Siedler von Catan",2012,"XY Müller")); + alleMediums.add(new Buch("B001","Effektives Java Programmieren",2018,true,"Joshua Bloch")); + alleMediums.add(new Buch("B00","Effektives C++ Programmieren",2012,true,"XY Müller")); + alleMediums.add(new Brettspiel("BG001","Die Siedler von Catan",2012,true,"XY Müller")); } - - - - - - - - - + private boolean checkIfUserImSystemAngemeldetIst(int kartennummer) { return alleBibBenutzer.stream() diff --git a/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java b/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java index 8ad1e97..c668f18 100644 --- a/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java +++ b/Bibliotheksverwaltungssystem/src/domain/JTests/AusleihenJTest.java @@ -6,6 +6,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import domain.BibSystem; +import domain.Benutzer.Benutzer; import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException; import domain.ExceptionsKlassen.BenutzerNichtGefundenException; import domain.ExceptionsKlassen.FalscheEingabeException; @@ -26,8 +27,6 @@ class AusleihenJTest { bib.userRegistrieren("obai", "student", 15, "nein"); bib.userAnmdelden(1000); bib.mediumAusleihen(1000,"B001" ); - bib.mediumAusleihen(1000,"B00" ); - bib.mediumAusleihen(1000,"BG001" ); } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java index 96de664..0290a78 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Brettspiel.java @@ -4,8 +4,8 @@ package domain.Medium; public class Brettspiel extends Medium { private String Verlag; - public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr, String Verlag) { - super(eindeutigeKennung, title, erscheinungsjahr); + public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String Verlag) { + super(eindeutigeKennung, title, erscheinungsjahr, verlängerbar); this.Verlag = Verlag; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java index 3ec74e5..102fc1c 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Buch.java @@ -5,8 +5,8 @@ import java.util.Date; public class Buch extends Medium { private String autor; - public Buch(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) { - super(eindeutigeKennung, title, erscheinungsjahr); + public Buch(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String autor) { + super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar); this.autor = autor; } public String getAutor() { diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java index 832f2b9..6da0dfa 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Cd.java @@ -5,8 +5,8 @@ import java.util.Date; public class Cd extends Medium { private String Künstler; - public Cd(String eindeutigeKennung, String title, int erscheinungsjahr, String Künstler) { - super(eindeutigeKennung, title, erscheinungsjahr); + public Cd(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String Künstler) { + super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar); this.Künstler = Künstler; } public String getKünstler() { diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java index c46a7ca..8ab2ad2 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Dvd.java @@ -4,8 +4,8 @@ package domain.Medium; public class Dvd extends Medium { private String regisseur; - public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr, String regisseur) { - super(eindeutigeKennung, title, erscheinungsjahr); + public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar,String regisseur) { + super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar); this.regisseur = regisseur; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java index 76fc9aa..36a2a51 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Medium.java @@ -7,12 +7,14 @@ public abstract class Medium { private String eindeutigeKennung; private String title; private int erscheinungsjahr; + private boolean verlängerbar; - public Medium(String eindeutigeKennung, String title, int erscheinungsjahr) { + public Medium(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar) { super(); this.eindeutigeKennung = eindeutigeKennung; this.title = title; this.erscheinungsjahr = erscheinungsjahr; + this.verlängerbar = verlängerbar; } public String getKennungNummer() { @@ -38,12 +40,27 @@ public abstract class Medium { public void setErscheinungsjahr(int erscheinungsjahr) { this.erscheinungsjahr = erscheinungsjahr; } - + public String getEindeutigeKennung() { + return eindeutigeKennung; + } + + public void setEindeutigeKennung(String eindeutigeKennung) { + this.eindeutigeKennung = eindeutigeKennung; + } + + public boolean isVerlängerbar() { + return verlängerbar; + } + + public void setVerlängerbar(boolean verlängerbar) { + this.verlängerbar = verlängerbar; + } + @Override public String toString() { return "eindeutigeKennung=" + eindeutigeKennung + ", title=" + title + ", erscheinungsjahr=" - + erscheinungsjahr ; + + erscheinungsjahr + " ,Verlängerbar= " + verlängerbar ; } diff --git a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java index 528c942..eb9cb79 100644 --- a/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java +++ b/Bibliotheksverwaltungssystem/src/domain/Medium/Videospiel.java @@ -6,8 +6,8 @@ public class Videospiel extends Medium { private String plattform; - public Videospiel(String kennungNummer, String title, int erscheinungsjahr, String plattform) { - super(kennungNummer, title, erscheinungsjahr); + public Videospiel(String kennungNummer, String title, int erscheinungsjahr,boolean verlängerbar, String plattform) { + super(kennungNummer, title, erscheinungsjahr, verlängerbar); this.plattform = plattform; } diff --git a/Bibliotheksverwaltungssystem/src/main/Main.java b/Bibliotheksverwaltungssystem/src/main/Main.java index 6897873..4fc1d82 100644 --- a/Bibliotheksverwaltungssystem/src/main/Main.java +++ b/Bibliotheksverwaltungssystem/src/main/Main.java @@ -1,5 +1,6 @@ package main; + import tui.Tui; public class Main { diff --git a/Bibliotheksverwaltungssystem/src/tui/Tui.java b/Bibliotheksverwaltungssystem/src/tui/Tui.java index 161c849..255a0c0 100644 --- a/Bibliotheksverwaltungssystem/src/tui/Tui.java +++ b/Bibliotheksverwaltungssystem/src/tui/Tui.java @@ -31,6 +31,7 @@ public class Tui { System.out.println("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen"); System.out.println("7.Verlängern der Leihfrist"); System.out.println("8.Verbuchen von überfälligen Gebühren (Admin)"); + System.out.println("9.Abmlden"); System.out.println("Wählen Sie bitte eine Aktion aus: "); System.out.print(">"); aktion = eingabe.nextLine();