Code- Verbesserung
parent
387ce18c3a
commit
e373060af4
|
@ -1,38 +1,49 @@
|
||||||
package domain.AusleiheSystem;
|
package domain.AusleiheSystem;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
|
|
||||||
import domain.Benutzer.Benutzer;
|
import domain.Benutzer.Benutzer;
|
||||||
import domain.ExceptionsKlassen.MediumNichtGefundenException;
|
import domain.ExceptionsKlassen.MediumNichtGefundenException;
|
||||||
import domain.Medium.Brettspiel;
|
import domain.Medium.*;
|
||||||
import domain.Medium.Medium;
|
|
||||||
|
|
||||||
public class AusleiheSystem {
|
public class AusleiheSystem {
|
||||||
|
|
||||||
private ArrayList<Medium> mediums;
|
private ArrayList<Medium> mediums;
|
||||||
private Benutzer benutzer;
|
private Date ausleiheBeginn;
|
||||||
|
private Date ausleiheEnde;
|
||||||
|
private Calendar calendar;
|
||||||
|
private int wocheAnzahlZuAusleihen;
|
||||||
|
|
||||||
|
|
||||||
public AusleiheSystem(ArrayList<Medium> mediums) {
|
public AusleiheSystem(ArrayList<Medium> mediums) {
|
||||||
this.mediums = mediums;
|
this.mediums = mediums;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mediumAusleihen(Benutzer benutzer, String eindutigenummer) throws MediumNichtGefundenException {
|
public void mediumAusleihen(Benutzer benutzer, String eindutigenummer) throws MediumNichtGefundenException {
|
||||||
this.benutzer = benutzer;
|
|
||||||
Medium mediumAusleihen = findMedium(eindutigenummer);
|
Medium mediumAusleihen = findMedium(eindutigenummer);
|
||||||
MediumZumAusleihen medium;
|
this.ausleiheBeginn = new Date();
|
||||||
if (mediumAusleihen instanceof Brettspiel)
|
this.calendar = Calendar.getInstance();
|
||||||
|
calendar.setTime(ausleiheBeginn);
|
||||||
medium = new MediumZumAusleihen(false,mediumAusleihen);
|
if (mediumAusleihen instanceof Buch || mediumAusleihen instanceof Videospiel)
|
||||||
else
|
wocheAnzahlZuAusleihen = 4;
|
||||||
medium = new MediumZumAusleihen(true,mediumAusleihen);
|
|
||||||
|
else if (mediumAusleihen instanceof Dvd)
|
||||||
benutzer.ausleihen(medium);
|
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()
|
benutzer.getAusgeliehenenMedien().stream()
|
||||||
.forEach(System.out::println);
|
.forEach(System.out::println);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private Medium findMedium(String eindeutigeKennung) throws MediumNichtGefundenException {
|
private Medium findMedium(String eindeutigeKennung) throws MediumNichtGefundenException {
|
||||||
return mediums.stream()
|
return mediums.stream()
|
||||||
.filter(m -> m.getKennungNummer().equalsIgnoreCase(eindeutigeKennung))
|
.filter(m -> m.getKennungNummer().equalsIgnoreCase(eindeutigeKennung))
|
||||||
|
|
|
@ -7,44 +7,53 @@ import domain.Medium.Medium;
|
||||||
|
|
||||||
public class MediumZumAusleihen {
|
public class MediumZumAusleihen {
|
||||||
|
|
||||||
private Date ausleihefrist;
|
private SimpleDateFormat simpleFormatter;
|
||||||
private SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
|
private Date ausleiheBeginn, ausleiheEnde;
|
||||||
private String formattedDate;
|
|
||||||
private Medium medium;
|
private Medium medium;
|
||||||
private boolean verlängerbar;
|
private int wochenAnzahl;
|
||||||
|
|
||||||
public MediumZumAusleihen(boolean verlängerbar, Medium medium) {
|
public MediumZumAusleihen(Medium medium,Date ausleiheBeginn, Date ausleiheEnde, int wochenAnzahl) {
|
||||||
this.ausleihefrist = new Date();
|
|
||||||
formattedDate = formatter.format(this.ausleihefrist);
|
|
||||||
this.verlängerbar = verlängerbar;
|
|
||||||
this.medium = medium;
|
this.medium = medium;
|
||||||
}
|
this.ausleiheBeginn = ausleiheBeginn;
|
||||||
|
this.ausleiheEnde = ausleiheEnde;
|
||||||
|
this.wochenAnzahl = wochenAnzahl;
|
||||||
public Date getAusleihefrist() {
|
this.simpleFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm");
|
||||||
return ausleihefrist;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getAusleiheBeginn() {
|
||||||
public void setAusleihefrist(Date ausleihefrist) {
|
return ausleiheBeginn;
|
||||||
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() {
|
public Medium getMedium() {
|
||||||
return medium;
|
return medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setMedium(Medium medium) {
|
public void setMedium(Medium medium) {
|
||||||
this.medium = medium;
|
this.medium = medium;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getWochenAnzahl() {
|
||||||
@Override
|
return wochenAnzahl;
|
||||||
public String toString() {
|
|
||||||
return "MediumZumAusleihen [ausleihefrist=" + formattedDate + ", verlängerbar="
|
|
||||||
+ verlängerbar + ", medium=" + medium + "]";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,20 +60,12 @@ public class BibSystem {
|
||||||
|
|
||||||
private void mediumAufladen() {
|
private void mediumAufladen() {
|
||||||
|
|
||||||
alleMediums.add(new Buch("B001","Effektives Java Programmieren",2018,"Joshua Bloch"));
|
alleMediums.add(new Buch("B001","Effektives Java Programmieren",2018,true,"Joshua Bloch"));
|
||||||
alleMediums.add(new Buch("B00","Effektives C++ Programmieren",2012,"XY Müller"));
|
alleMediums.add(new Buch("B00","Effektives C++ Programmieren",2012,true,"XY Müller"));
|
||||||
alleMediums.add(new Brettspiel("BG001","Die Siedler von Catan",2012,"XY Müller"));
|
alleMediums.add(new Brettspiel("BG001","Die Siedler von Catan",2012,true,"XY Müller"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private boolean checkIfUserImSystemAngemeldetIst(int kartennummer) {
|
private boolean checkIfUserImSystemAngemeldetIst(int kartennummer) {
|
||||||
|
|
||||||
return alleBibBenutzer.stream()
|
return alleBibBenutzer.stream()
|
||||||
|
|
|
@ -6,6 +6,7 @@ import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import domain.BibSystem;
|
import domain.BibSystem;
|
||||||
|
import domain.Benutzer.Benutzer;
|
||||||
import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException;
|
import domain.ExceptionsKlassen.BenutzerNichtAngemeldetException;
|
||||||
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
import domain.ExceptionsKlassen.BenutzerNichtGefundenException;
|
||||||
import domain.ExceptionsKlassen.FalscheEingabeException;
|
import domain.ExceptionsKlassen.FalscheEingabeException;
|
||||||
|
@ -26,8 +27,6 @@ class AusleihenJTest {
|
||||||
bib.userRegistrieren("obai", "student", 15, "nein");
|
bib.userRegistrieren("obai", "student", 15, "nein");
|
||||||
bib.userAnmdelden(1000);
|
bib.userAnmdelden(1000);
|
||||||
bib.mediumAusleihen(1000,"B001" );
|
bib.mediumAusleihen(1000,"B001" );
|
||||||
bib.mediumAusleihen(1000,"B00" );
|
|
||||||
bib.mediumAusleihen(1000,"BG001" );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,8 @@ package domain.Medium;
|
||||||
public class Brettspiel extends Medium {
|
public class Brettspiel extends Medium {
|
||||||
private String Verlag;
|
private String Verlag;
|
||||||
|
|
||||||
public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr, String Verlag) {
|
public Brettspiel(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String Verlag) {
|
||||||
super(eindeutigeKennung, title, erscheinungsjahr);
|
super(eindeutigeKennung, title, erscheinungsjahr, verlängerbar);
|
||||||
this.Verlag = Verlag;
|
this.Verlag = Verlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@ import java.util.Date;
|
||||||
public class Buch extends Medium {
|
public class Buch extends Medium {
|
||||||
|
|
||||||
private String autor;
|
private String autor;
|
||||||
public Buch(String eindeutigeKennung, String title, int erscheinungsjahr, String autor) {
|
public Buch(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String autor) {
|
||||||
super(eindeutigeKennung, title, erscheinungsjahr);
|
super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar);
|
||||||
this.autor = autor;
|
this.autor = autor;
|
||||||
}
|
}
|
||||||
public String getAutor() {
|
public String getAutor() {
|
||||||
|
|
|
@ -5,8 +5,8 @@ import java.util.Date;
|
||||||
public class Cd extends Medium {
|
public class Cd extends Medium {
|
||||||
|
|
||||||
private String Künstler;
|
private String Künstler;
|
||||||
public Cd(String eindeutigeKennung, String title, int erscheinungsjahr, String Künstler) {
|
public Cd(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar, String Künstler) {
|
||||||
super(eindeutigeKennung, title, erscheinungsjahr);
|
super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar);
|
||||||
this.Künstler = Künstler;
|
this.Künstler = Künstler;
|
||||||
}
|
}
|
||||||
public String getKünstler() {
|
public String getKünstler() {
|
||||||
|
|
|
@ -4,8 +4,8 @@ package domain.Medium;
|
||||||
public class Dvd extends Medium {
|
public class Dvd extends Medium {
|
||||||
|
|
||||||
private String regisseur;
|
private String regisseur;
|
||||||
public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr, String regisseur) {
|
public Dvd(String eindeutigeKennung, String title, int erscheinungsjahr,boolean verlängerbar,String regisseur) {
|
||||||
super(eindeutigeKennung, title, erscheinungsjahr);
|
super(eindeutigeKennung, title, erscheinungsjahr,verlängerbar);
|
||||||
this.regisseur = regisseur;
|
this.regisseur = regisseur;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,12 +7,14 @@ public abstract class Medium {
|
||||||
private String eindeutigeKennung;
|
private String eindeutigeKennung;
|
||||||
private String title;
|
private String title;
|
||||||
private int erscheinungsjahr;
|
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();
|
super();
|
||||||
this.eindeutigeKennung = eindeutigeKennung;
|
this.eindeutigeKennung = eindeutigeKennung;
|
||||||
this.title = title;
|
this.title = title;
|
||||||
this.erscheinungsjahr = erscheinungsjahr;
|
this.erscheinungsjahr = erscheinungsjahr;
|
||||||
|
this.verlängerbar = verlängerbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getKennungNummer() {
|
public String getKennungNummer() {
|
||||||
|
@ -38,12 +40,27 @@ public abstract class Medium {
|
||||||
public void setErscheinungsjahr(int erscheinungsjahr) {
|
public void setErscheinungsjahr(int erscheinungsjahr) {
|
||||||
this.erscheinungsjahr = 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
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "eindeutigeKennung=" + eindeutigeKennung + ", title=" + title + ", erscheinungsjahr="
|
return "eindeutigeKennung=" + eindeutigeKennung + ", title=" + title + ", erscheinungsjahr="
|
||||||
+ erscheinungsjahr ;
|
+ erscheinungsjahr + " ,Verlängerbar= " + verlängerbar ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ public class Videospiel extends Medium {
|
||||||
|
|
||||||
private String plattform;
|
private String plattform;
|
||||||
|
|
||||||
public Videospiel(String kennungNummer, String title, int erscheinungsjahr, String plattform) {
|
public Videospiel(String kennungNummer, String title, int erscheinungsjahr,boolean verlängerbar, String plattform) {
|
||||||
super(kennungNummer, title, erscheinungsjahr);
|
super(kennungNummer, title, erscheinungsjahr, verlängerbar);
|
||||||
this.plattform = plattform;
|
this.plattform = plattform;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package main;
|
package main;
|
||||||
|
|
||||||
|
|
||||||
import tui.Tui;
|
import tui.Tui;
|
||||||
|
|
||||||
public class Main {
|
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("6.Ausgeliehene Gegenstände, Fälligkeitsdaten und aufgelaufene Gebühren anzeigen");
|
||||||
System.out.println("7.Verlängern der Leihfrist");
|
System.out.println("7.Verlängern der Leihfrist");
|
||||||
System.out.println("8.Verbuchen von überfälligen Gebühren (Admin)");
|
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.println("Wählen Sie bitte eine Aktion aus: ");
|
||||||
System.out.print(">");
|
System.out.print(">");
|
||||||
aktion = eingabe.nextLine();
|
aktion = eingabe.nextLine();
|
||||||
|
|
Loading…
Reference in New Issue