Code- Verbesserung
parent
387ce18c3a
commit
e373060af4
|
@ -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<Medium> mediums;
|
||||
private Benutzer benutzer;
|
||||
private Date ausleiheBeginn;
|
||||
private Date ausleiheEnde;
|
||||
private Calendar calendar;
|
||||
private int wocheAnzahlZuAusleihen;
|
||||
|
||||
|
||||
public AusleiheSystem(ArrayList<Medium> 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)
|
||||
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));
|
||||
|
||||
medium = new MediumZumAusleihen(false,mediumAusleihen);
|
||||
else
|
||||
medium = new MediumZumAusleihen(true,mediumAusleihen);
|
||||
|
||||
benutzer.ausleihen(medium);
|
||||
benutzer.getAusgeliehenenMedien().stream()
|
||||
.forEach(System.out::println);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private Medium findMedium(String eindeutigeKennung) throws MediumNichtGefundenException {
|
||||
return mediums.stream()
|
||||
.filter(m -> m.getKennungNummer().equalsIgnoreCase(eindeutigeKennung))
|
||||
|
|
|
@ -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;
|
||||
this.ausleiheBeginn = ausleiheBeginn;
|
||||
this.ausleiheEnde = ausleiheEnde;
|
||||
this.wochenAnzahl = wochenAnzahl;
|
||||
this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
|
||||
}
|
||||
|
||||
|
||||
public Date getAusleihefrist() {
|
||||
return ausleihefrist;
|
||||
public Date getAusleiheBeginn() {
|
||||
return ausleiheBeginn;
|
||||
}
|
||||
|
||||
|
||||
public void setAusleihefrist(Date ausleihefrist) {
|
||||
this.ausleihefrist = ausleihefrist;
|
||||
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;
|
||||
}
|
||||
|
||||
public int getWochenAnzahl() {
|
||||
return wochenAnzahl;
|
||||
}
|
||||
|
||||
public void setWochenAnzahl(int wochenAnzahl) {
|
||||
this.wochenAnzahl = wochenAnzahl;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "MediumZumAusleihen [ausleihefrist=" + formattedDate + ", verlängerbar="
|
||||
+ verlängerbar + ", medium=" + medium + "]";
|
||||
return "Ausgeliehene Medium: Ausleihe Beginn= " +simpleFormatter.format(ausleiheBeginn) + " ,Ausleihe Ende= " + simpleFormatter.format(ausleiheEnde) + " ,Wochenanzahl zum Ausleihen= "+ this.wochenAnzahl+" ,Medium= " + medium.toString();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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" );
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
@ -39,11 +41,26 @@ public abstract class Medium {
|
|||
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 ;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package main;
|
||||
|
||||
|
||||
import tui.Tui;
|
||||
|
||||
public class Main {
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue