From f587243209ec216d4a0928cadb6f19c8f6817b0f Mon Sep 17 00:00:00 2001 From: Leon <3010261@stud.hs-mannheim.de> Date: Tue, 19 Nov 2024 11:17:05 +0100 Subject: [PATCH] =?UTF-8?q?Verl=C3=A4ngerung=20korrigiert=20und=20auch=20m?= =?UTF-8?q?ehr=20Kommentare=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Bibliothek/Bibliotheksverwaltung.java | 48 ++++++++++++++---- Biblio/src/Bibliothek/Brettspiel.java | 4 +- Biblio/src/Bibliothek/CD.java | 2 +- Biblio/src/Bibliothek/DVD.java | 2 +- Biblio/src/Bibliothek/Kunde.java | 11 +++- Biblio/src/Bibliothek/Medien.java | 14 +++-- Biblio/src/Bibliothek/UI.java | 26 +++++----- Biblio/src/Bibliothek/Videospiel.java | 4 +- out/production/Biblio/Bibliothek/Admin.class | Bin 3601 -> 3478 bytes .../Bibliothek/Bibliotheksverwaltung.class | Bin 11414 -> 10659 bytes .../Biblio/Bibliothek/Brettspiel.class | Bin 1364 -> 1364 bytes out/production/Biblio/Bibliothek/CD.class | Bin 1333 -> 1333 bytes out/production/Biblio/Bibliothek/DVD.class | Bin 1354 -> 1354 bytes out/production/Biblio/Bibliothek/Kunde.class | Bin 3838 -> 4215 bytes out/production/Biblio/Bibliothek/Main.class | Bin 3202 -> 3202 bytes out/production/Biblio/Bibliothek/Medien.class | Bin 2831 -> 3634 bytes out/production/Biblio/Bibliothek/UI.class | Bin 11320 -> 11292 bytes out/production/Biblio/Bibliothek/User.class | Bin 2369 -> 2345 bytes .../Biblio/Bibliothek/Videospiel.class | Bin 1416 -> 1416 bytes 19 files changed, 77 insertions(+), 34 deletions(-) diff --git a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java index 14a83ef..6e73ad3 100644 --- a/Biblio/src/Bibliothek/Bibliotheksverwaltung.java +++ b/Biblio/src/Bibliothek/Bibliotheksverwaltung.java @@ -145,23 +145,32 @@ public class Bibliotheksverwaltung { } } - - public void medienVerlaengern(String medienId, String kundenId, int aktuelleVerlaengerungen) { + /** + *Wenn ein Kunde ein von Ihm ausgeliehenes Medium verlängern möchte und das Medium verlängert werden kann + *wird das Medium um die erlaubte Zeit verlänegrt + * @param medienId + * @param kundenId + */ + public void medienVerlaengern(String medienId, String kundenId) { Medien medien = medienBestand.get(medienId); Kunde kunde = kundenListe.get(kundenId); if (medien != null && kunde != null) { - boolean erfolg = kunde.medienVerlaengern(medien, aktuelleVerlaengerungen); + boolean erfolg = kunde.medienVerlaengern(medien); if (erfolg) { System.out.println("Medium erfolgreich verlängert: " + medien.getTitel()); } else { - System.out.println("Verlängerung nicht möglich: Maximale Anzahl erreicht."); + System.out.println("Verlängerung nicht möglich: Maximale Anzahl erreicht oder Medium ist nicht verlängerbar."); } } else { System.out.println(medien == null ? "Medium nicht gefunden." : "Kunde nicht gefunden."); } } + /** + * Erlaubt es neue Medien hinzuzufügen mit ihrer Id und es wird überprüft ob die ID schon vorhanden ist + * @param medien + */ public void medienHinzufuegen(Medien medien) { String id = medien.getId().trim().toUpperCase(); // Normalisierung if (medienBestand.containsKey(id)) { @@ -172,6 +181,12 @@ public class Bibliotheksverwaltung { System.out.println("Medium hinzugefügt: " + medien.getTitel() + " (ID: " + id + ")"); } + /** + * Erlaubt es einem registrierten Kunden sich einzuloggen, wenn der Kunde bereits eingeloggt ist, + * wird eine Nachricht darüber zurückgegeben sowie auch wenn der Kunde noch nicht existiert + * @param kundenId + * @return + */ public boolean loginKunde(String kundenId) { if (eingeloggterBenutzer != null) { System.out.println("Ein Benutzer ist bereits eingeloggt: " + eingeloggterBenutzer.getName()); @@ -188,6 +203,11 @@ public class Bibliotheksverwaltung { } } + /** + * Erlaubt es einem Admin sich einzuloggen so wie es auch beim Kunden läuft + * @param adminId + * @return + */ public boolean loginAdmin(String adminId) { if (eingeloggterBenutzer != null) { System.out.println("Ein Benutzer ist bereits eingeloggt: " + eingeloggterBenutzer.getName()); @@ -204,6 +224,9 @@ public class Bibliotheksverwaltung { } } + /** + * loggt den Benutzer aus, sollte allerdings keiner eingeloggt sein wird eine Fehlermeldung ausgegeben + */ public void logout() { if (eingeloggterBenutzer != null) { System.out.println("Benutzer " + eingeloggterBenutzer.getName() + " wurde ausgeloggt."); @@ -213,6 +236,13 @@ public class Bibliotheksverwaltung { } } + /** + * Erstellt einen neuen Kunden mit dem K oder S präfix sowie einer hochzählenden Nummer um erkenntlich zu machen + * ob ein Student oder ein normaler Kunde vorhanden ist + * @param name + * @param istStudent + * @return + */ public Kunde registriereKunde(String name, boolean istStudent) { String prefix = istStudent ? "S" : "K"; int maxId = kundenListe.keySet().stream() @@ -228,6 +258,9 @@ public class Bibliotheksverwaltung { return neuerKunde; } + /** + * Erlaubt es dem Kunden seine ausgeliehenen Medien anzusehen als auch ob überziehungskosten entstanden sind + */ public void zeigeAusgelieheneMedien() { if (!(eingeloggterBenutzer instanceof Kunde)) { System.out.println("Nur eingeloggte Kunden können ausgeliehene Medien anzeigen."); @@ -249,11 +282,4 @@ public class Bibliotheksverwaltung { } } - public void pruefeUeberzogeneMedien() { - System.out.println("Überzogene Medien (Stand: " + aktuellesDatum + "):"); - medienBestand.values().stream() - .filter(medien -> !medien.verfuegbar() && medien.istUeberzogen(aktuellesDatum)) - .forEach(medien -> System.out.println("- " + medien.getDetails() + " (Rückgabedatum: " + medien.getRueckgabedat() + ")")); - } - } diff --git a/Biblio/src/Bibliothek/Brettspiel.java b/Biblio/src/Bibliothek/Brettspiel.java index 54aaea1..91c42a5 100644 --- a/Biblio/src/Bibliothek/Brettspiel.java +++ b/Biblio/src/Bibliothek/Brettspiel.java @@ -12,12 +12,12 @@ public class Brettspiel extends Medien { @Override public int getAusleihdauer() { - return 3; + return 2; } @Override public int getMaxVerlaengerungen() { - return 1; + return 0; } @Override diff --git a/Biblio/src/Bibliothek/CD.java b/Biblio/src/Bibliothek/CD.java index e66d0d8..8bd4c3f 100644 --- a/Biblio/src/Bibliothek/CD.java +++ b/Biblio/src/Bibliothek/CD.java @@ -17,7 +17,7 @@ public class CD extends Medien { @Override public int getMaxVerlaengerungen() { - return 2; + return 0; } @Override diff --git a/Biblio/src/Bibliothek/DVD.java b/Biblio/src/Bibliothek/DVD.java index ef7025d..7210cb6 100644 --- a/Biblio/src/Bibliothek/DVD.java +++ b/Biblio/src/Bibliothek/DVD.java @@ -17,7 +17,7 @@ public class DVD extends Medien { @Override public int getMaxVerlaengerungen() { - return 1; + return 0; } @Override diff --git a/Biblio/src/Bibliothek/Kunde.java b/Biblio/src/Bibliothek/Kunde.java index 2a89be2..d45422e 100644 --- a/Biblio/src/Bibliothek/Kunde.java +++ b/Biblio/src/Bibliothek/Kunde.java @@ -38,10 +38,16 @@ public class Kunde extends User { .sum(); } + public Medien sucheAusgeliehenesMedium(String medienId) { + return ausgelieheneMedien.stream() + .filter(medien -> medien.getId().equalsIgnoreCase(medienId)) + .findFirst() + .orElse(null); + } - public boolean medienVerlaengern(Medien medien, int aktuelleVerlaengerungen) { + public boolean medienVerlaengern(Medien medien) { Consumer verlaengerung = m -> { - if (ausgelieheneMedien.contains(m) && m.verlaengern(aktuelleVerlaengerungen)) { + if (ausgelieheneMedien.contains(m) && m.verlaengern()) { // Kein Argument übergeben System.out.println("Medium verlängert: " + m.getTitel()); } else { System.out.println("Verlängerung nicht möglich."); @@ -50,4 +56,5 @@ public class Kunde extends User { verlaengerung.accept(medien); return false; } + } diff --git a/Biblio/src/Bibliothek/Medien.java b/Biblio/src/Bibliothek/Medien.java index 9f32732..927ffad 100644 --- a/Biblio/src/Bibliothek/Medien.java +++ b/Biblio/src/Bibliothek/Medien.java @@ -70,13 +70,21 @@ public abstract class Medien { return verlaengerungen; } - public boolean verlaengern(int aktuelleVerlaengerungen) { - if (aktuelleVerlaengerungen < getMaxVerlaengerungen()) { + public boolean verlaengern() { + if (getMaxVerlaengerungen() == 0) { + System.out.println("Dieses Medium kann nicht verlängert werden."); + return false; + } + + if (verlaengerungen < getMaxVerlaengerungen()) { verlaengerungen++; rueckgabedat = rueckgabedat.plusWeeks(getAusleihdauer()); + System.out.println("Das Medium wurde verlängert. Neues Rückgabedatum: " + rueckgabedat); return true; + } else { + System.out.println("Maximale Verlängerungsanzahl erreicht."); + return false; } - return false; } public void zurueckgeben() { diff --git a/Biblio/src/Bibliothek/UI.java b/Biblio/src/Bibliothek/UI.java index 7959f0a..bbaf697 100644 --- a/Biblio/src/Bibliothek/UI.java +++ b/Biblio/src/Bibliothek/UI.java @@ -140,20 +140,22 @@ public class UI { } private void medienVerlaengern() { - if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { - System.out.println("Bitte loggen Sie sich als Kunde ein, um Medien zu verlängern."); - return; - } System.out.print("Medium-ID eingeben: "); String medienId = scanner.nextLine(); - System.out.print("Anzahl bisheriger Verlängerungen eingeben: "); - int verlaengerungen; - try { - verlaengerungen = Integer.parseInt(scanner.nextLine()); - Kunde kunde = (Kunde) verwaltung.getEingeloggterBenutzer(); - verwaltung.medienVerlaengern(medienId, kunde.getId(), verlaengerungen); - } catch (NumberFormatException e) { - System.out.println("Ungültige Eingabe für Verlängerungen. Bitte eine Zahl eingeben."); + if (!(verwaltung.getEingeloggterBenutzer() instanceof Kunde)) { + System.out.println("Nur Kunden können Medien verlängern."); + return; + } + Kunde kunde = (Kunde) verwaltung.getEingeloggterBenutzer(); + Medien medien = kunde.sucheAusgeliehenesMedium(medienId); // Suche im Kundenbestand + if (medien == null) { + System.out.println("Medium wurde nicht gefunden oder gehört nicht zu diesem Kunden."); + return; + } + + // Versuch, das Medium zu verlängern + if (!medien.verlaengern()) { + System.out.println("Die Verlängerung war nicht erfolgreich."); } } diff --git a/Biblio/src/Bibliothek/Videospiel.java b/Biblio/src/Bibliothek/Videospiel.java index 57cdaf1..f590e7d 100644 --- a/Biblio/src/Bibliothek/Videospiel.java +++ b/Biblio/src/Bibliothek/Videospiel.java @@ -12,12 +12,12 @@ public class Videospiel extends Medien { @Override public int getAusleihdauer() { - return 2; + return 4; } @Override public int getMaxVerlaengerungen() { - return 2; + return 1; } @Override diff --git a/out/production/Biblio/Bibliothek/Admin.class b/out/production/Biblio/Bibliothek/Admin.class index 02ede550c7977582b0f45dc4195d425b10c9283d..db7b75ddba4b67f717f6b8dd8899695f0f9ddcb5 100644 GIT binary patch delta 888 zcmYjO*-{fh6g{08GLuOIDJTL8nuu711feY7BmsgbDj+V12r48pge3+A0`9ot0xsAJ zuDEOYqzIL=@?e#gPrmvA{(@hi-X1XJLwDc4_ng!Bo}Mb0&NsgQPJRXu#G5(8P@D$* z2xzF}s1lvZYTb_@M-4WK38l=r8Cx{eajd{r@lC1J6>R4yMZGZ8DtjZx4m61-HP5q) zV>g-@c*Gp8GsAJSXV8pgK}EBK?-k=}nSCEeEB1?|nxF1KI}T_#$Z-fAVwJL9PeVu| z!}CAY1t#9vf3;mS2y}_#Bu=?7&X7~w&=(pBl}AIdNO|o*JRCJE*0$)l%CI~bABvdK zUbDxHnchaTtJjQqM+RbEwlUL=>r!ZfV+5lvjOw^4m|nncik^YrPqSo}kdZ)P zidl$$L@j0^jvz)%H#i1xlyJug$*H!O8Kle*WfZVGwxA6L8eKdg<`R)SRWW6Yf&eW@l^{Sh` z0mvc?vf)7vifKAO^8WjPKx)na`n#8W4B#}*P~&oB6*f-+^>mhE8^&;s&N3QDQ0_b~ i;4&Uk^H-Mc*Dz__Z&>>+YoEe1;uwT_j+c0iWq$#c)S8?C delta 1039 zcmZ8fSx-|@5dKc@h1;IqmdZnsQYaQQhBg?Y4+JSv5E0xr+&ARPA{0ds!37mXMNshw zhzp7vE>8%lq!0c8UwttqKKLK>l{n|NX$WaL_sq;U-}z?djAe~@`S*p`HvnOLp5a_^ z*ied)hB6%+P%fs_BBz1?M??rB{u7*L9M7&3hi65O~ZB_+1Mfal`^}E zT{?o;%}^|Ut2x4v;^7<~?A5Ukb;7AG_Z`r25OoZCqtRJy)OQ(89Y!P_DL5=EkBBO@ zF!h*@<2WID)GVHkRMgANso7uZ97}g}w70ez;YhF1+-O7?l+|J|^{;b)llI#>uHdQ* zcg2wAVfVzemg^gqiTgTw(Cb346(bDRa6?;jq$HPFA;eG3%SOdNt%8k0B$ixcDNX`Pv0RAMWAFXIJIsJ&BojBc8cNXUe*I_cTMC3e0 zIw_)nIjEou7v#khxJ*T|Pw~fIv`9lX;d6+~M;iR_B9HD~WomGn@IX>SAfaIqdp9m7 z*vkkkTXub+fz4rkjGic>NLxC#0;C~;KG~xlFNpKIxZHPwEG*R%B14izQ9=Led2ESc z=Mql2Dh>_CF&F|i+ooJx>0ITZZZ^%VoxB7{o^H*a1(b>Ix!qFS*MX3kbv$e zjwYIr`TQ78CT~?>hy^{%lpkMvC^?=`az!EZ;Tp|D4oZc^=cU`P)7gR>=%?>GdKgbA nb`!U72QNwGV8S251Ji$K+DE2+Y}zrrqe@QL_xPaV6Egn;u9Kw2 diff --git a/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class b/out/production/Biblio/Bibliothek/Bibliotheksverwaltung.class index 84c6e474e3d079bf9096a1d95318144f9d5ebfd5..9a36611c3dab62b910cbfcacab3e76a041f91e78 100644 GIT binary patch delta 3395 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 Na`kt-g@5AUe*qQsI$Hn$ literal 3838 zcmcInYgZfB72Q_?Mu-7~f=wL2!45W(j1eYjn_7@uh#LrLNFN!*MVd&Op`(#0 z?z>IvKGSy_`fih!KGLR16B_fOU-GT1Kcc^)Yjv%zy8F(IU}Pz7ztnhX<{sU1&OUpe zduH_4fA9STz(e>`91%n{wCQL^hd}Q|bG2;RZc&!9PgbQP&~eVRO!vINSZeM$BXBQ1V2qrOS%xC8wHNuyRR$g(Mm(vtIX%~V?wK7g8Qma}t=noF{(!#W0VCy^WZ zyxd@lGpV^-LFCdQ&-I#>cTL;MPTN+sR*_Dw3wL2q!;p?)92MyC3g6Enpsm}^B_m%H z7ztSMzHAPZUQU9W6ry7SQ!RkZ{x>A|U{u2i72%}7-~p1RWCDl65SrLfZHPUp*r^K|gS12wOa->noDGercWHBkwW*HUgmu!|jhAHYg zk_u!^$8aBM8%bSqHc3;Jk~!%lTkYLC-h=xE1}a8LlJ30WK4rQ^MZ9ZRZdKs^a1HO= zX3Y@dIE$Qyb2=UX+w~5w%*J9U+=eQx%+_h(D#(*wR>EJfe^o5$N-k@DqrBgPfRgeyIwxwp%p4X!~9>W|{6r{Uky0R?Lp9&fw ze7=&1VnI>%xWLI4#I$gU;e7(b%S`+B%PMWnDvVfWzUYor-rg;gc{ibOFX~vrlRWT5 z@I+1KO9f+9t{H5DfjSV^tjO$~oj1xehAVS%Jcajbcv{Dba`gFa+`~??>`k@t13Es4 z53xYAdQtMQuxm~P_&t|=(XlN%JMCQ#awvA5g`r_pM;>eSX7yaINXN8k(pIIrDb?ve zAC7ns#BYs8WcBkNio}AR#k!6Hc#JjDFk@^{>S!uG+wtJvIY;=f> z7Rb)$nBB1n>>=x#G(AM!i>{F`%^Mq@1RB0nZ?w?a6S%8vR94rF(I%Eg&!|%}+aj4F zUT~n+U7M&MKiely2SCe#DH^?G!E*S;3OsC6BwQ9K6IA0g-nv<88P1Q?r?_oNj zrX0~S)5GO=y&d>@9KXOz8eZ1%OZ-aU_`x&8w65AE&IykzW;fQ2ylXpK z0$r8x>Tlum6FB)`A2F=8vaF8I*>qQrlw_z$_uby8mZ|I-jW%$^C+R)1uLOt+TA2{UW) zF+E*2s#RIl@G3`kQ%$WD)9{+W(c5q3`0(Y$F?L{tLp8!bz94#ceD&kClW$7xsPNO` zO7hXy#%o{Z)cBtvGQ)2|%k;d7?$C=^Y`VDlCZt`b^&{Q*OIIH1{ zH<{8~^Vg7C^M4|u1|{uE-{%QfNi?Y#9lwDGBiP39_~0(4w{eKb#&UnEoXq@; hw(sD(crm!!=G_ii`jPkf6a1e0;#~g$f5huJ@*i-fw5$LC diff --git a/out/production/Biblio/Bibliothek/Main.class b/out/production/Biblio/Bibliothek/Main.class index c60d32373824a3b0f1fc5b9707a37bbc833133a1..a57b50965b22bca7a60c632f7303e54c92d084ac 100644 GIT binary patch delta 142 zcmV~$D-S_&0LJ0pYuc$U=a1u7T#ox?L-8Ga2wy-`Y$r(y$;Ko}u#+UoW|Ji8Bojna zRL|oX&m0|V7GXk^IWacG@v*sL2uScDsW2(oIC4pANJb;F8k5tMycQI+qNp_`?I>%H os{Px# delta 142 zcmV~$Ee`>40LSs~&$P?9Kh9&pd4AduyazAB8_*QnB}pOKm?Q~yNs??fNs=y^Aey53 zd_3csqhrk?Oo%ck#s(W7!<9Gz2|gqh#*s}*E@=(PXhc?Ha+;FYf`V2QwWg#UuJ)95 mpdz2DPSkX!t_uy_XzET&584Xo=t);^div7WFT`NEwO)UCrydFb diff --git a/out/production/Biblio/Bibliothek/Medien.class b/out/production/Biblio/Bibliothek/Medien.class index ba0e0e564da79bc6d1e23bf29bcf57530600d710..8c9e2a9878157675f7acd974262a138e820401f8 100644 GIT binary patch literal 3634 zcmaJ@+fp3Y6ypsG8G#dY`@5UVH7` z{h$AR`7Z#o_$Z4GbQ;K*=t8%^Q+MU2EZWkk7O#}J~3co5Kjqo1y-PJf#K!dFsp%Q zIn^0$Hf&-cDtwz#!WnfX9Y|zRONbAmQ+O& z@PXKSU^P^6*)2PGeajN}v#HxU?DeX{Qxg&5a-$Hs^+nEGYRPLk> z!<5BKCQjoFd1%PGns=SD3~pFKjaPmkoq+kYIZIBaILl%NXAPV)aUK_TIB(B^5I1y2 zHkEUr72=N9^&ZSpXqT;WEy!tUJ^o5dYg!9n-o%1d$RPJ^shq0vs1fC4`Rt;J*L0x{ zuuv=V-g>)54;BTc7A)l}Kc|%&Hga|8I5}r0j{W$r+Fy{{QeH(l)58#WsRzpfFVLOU zkhaQcr?HuqrgR?2nw?Xgr?iu4Er!b`uHdRbkLAy)JFce$jwV?~+AG&Q*Kv#U(XuPn z$y+*wYbI8)CeUyB!F5$q-UFA(X*H$FbCSKbjvEHPXW}Mq2^`+lIHk1VdeTlJU1vuN zWEN&`t_nQg;w{CFDqF{!Cf>sLS*(%@wv+~Ot`$V{*jf^2Ce3H_;p9^Hh5u4${1eEh zRJ}#2i4GPg*9myut&qXNWy?{Q!v+~ylO>xw!x44s(zEn^vY82L7PUIE{KSx&VL>R1 zwRjqh?zDSrAJD>YT6EEPvBLSqExqdIzt%Q$*!(1Xg!`{PF|0;->dDGsNaz-YSrR|8qDugHy^j2UW=rUm*on=0oK^FbI7MoNdb1F{~3%C?oy zc^GoC43R%ot~u&8RSH$j`#NbYFzK)tc!1o;Vg%AT66zXII_OE31o^u1R0~ zLYUSfxnp^RE@JrT>Bebe)OVyN_6T4 zI~_TlyR1UC?X|~WHK%^q;L*Wu{3eUv;&%q#($Z{C(ZN0os;aDY6KQyNqQe-e1^>rMG`kMqhL;kfBwJ9ZgtklBV&IKGYk!qhf~3Wv8b`gcC;K$*YK zFc{EJ^IrZB@P9B0Iffxr_@od!g2El%(PacoL{}P`hC8mm5YWlsRn!s)MXuVatMCu> z|BV-MxbA3kG;(dm28n9{3m3Sf@t>!4#6tvo7p(qF0>+r>c;w+=Y}EwUoq!X#n+jxT zFOWm2Krqrj(QU*N=-_%84WFMo~WTCk%$)OyzuTFXtCq+;lbd zztybv!z7nAVt@4$^lONh2(j}a;m_&Kzu;uyCa*JZZ*xN@wNIK$QJR^D+QsXUi)NYy zWO=>BG+$@mEVJRS;1I6j7~UW|*Kmp7JxjRGtMwMVYwc+doo3qinpHT*j?`7?i>Hnt z>APhfAiuzEmibMFeyhc4Uy}rWYSDon0ypR?YImL8zcH+rnB5O5%VOmk}T$JEMGx$Uj{4hEGF@C~y60res~fi|F@Pc%OS&-hY5U;zNx8AH%T-t^fc4 delta 1122 zcmZ`&OK%ck6g}TC%!~sSTN;ppEh^GFjkSr7RFc+Eix$-Ss70+$s3S!X70Sj9@fW!G zet^bx6GdAWn)C;_GVw>abL-A{znKXTI$g~D9&^vR_ntZPIrcWB|M>T92S6GdZT+w0 zVVK})Dfs2RoMBV)ME3Y9L%2}cXqwfknK$dzf>|q>^(KWHga382-Za-LC9`PO_@Xj9 zUSb$ZHyb6hS~l0sTD(|pq~a`~pseE=Dk`de%-}iyt^8sy`FGWj>kOlOM;+y=w%{8C zgBObwvplaEEXUtyV}Z-mpaGd;1XpmCf7Fh)mT*mE(cMW}8LeJp3j?2MBOymou`YuU zV85Lpz;t4`j`I`+c#g6qk!?(FW1vkt8?9TnA!;UUF@)?ahXGhp5WoQL$3e_`^&~%%ldF@7r3YGy`b8Bv#_MXBj5TbH1GQAx7v7oPvteggApJ&SILZJA+iuSmzu=+^1X_ z(zHrU4_wum?^kEGhsN7+=0iL}*tTXvFcNPvYJ5fJ1IGBAe`HzS^av)8<#FLp@$YJw z#}F>y2o`9ti#?+!JC04_u_c;l)dQBGP7BV=KmD;4q27La0V4Jiflk2guj8|6NUtKf dT@b8Ml<)*5tr~Hy)AJNHI_b1~fmdiC@*mvbd5r)7 diff --git a/out/production/Biblio/Bibliothek/UI.class b/out/production/Biblio/Bibliothek/UI.class index 1dd5dc9a18be8413ec057eab1750ec4f842e8b72..b78f4e4c3a68522daaa6d1d1362c26bf58972c19 100644 GIT binary patch delta 3775 zcmZu!33yc175@L1OlC59lVq|@CJC8ILUu?514tq}NPz@w!Jw#xgglawWU!M-sA!#9 zY^_#{@~Q$ZP?w_C4bTY~L@`w=idwPYQa7riqNSU)_5j}1LLI28uXfP=6Cao>?sly+pmk_Lt=q8Z=_1PYh$CB@9%$_htO|E%D{Et} z8XQa}rpC1Vt9wFinm-s=-Vye0SG8#&nRN_ALt$%eO^;u2bZcD}z8WV}sM_gL znTo@Dktb(Tih;33Gch`tPE^bcX#VCQ;61^1|LT^I7c(j;dRs`L1X^kIaiwRHu84i@VhTyv5}sw`!he$-XI ztb&zxR;jGUhlK00mfn`yo^YVEwyEWEBB5OiJ2;xiHZy$&cfnFixTkC3P)oaC3kaK5 zEm-e&atz1XdA7**#3d&YuMR9< zc{&I?uhNS$@=~tk)rL)kXw;u^m+74u6;rMeqYHxV1G_uJfp*Q>IW3{EY?#NnR>eKM zmdL4S90t(Z5|zyk{!BlZQOcj|-(=J!-k|aq`k2f@-lU(OS&_1iH`{rO%JtOswV8{O zZdG|3Z`a?=9K(%zT2?Oa*in%+K>foUpI(`BuFjkaUCVJRoTGLnV{!xF> zQ^dFQmplcj?>PAUDBU@xSD29h|PbHQoRiyXwKJjqBSS5%@2~=pgoRYsuAiSNwAm1=F z!U5M?h6+kiW(3|bvtWWEYF8C57%}8uDH}v8Bg?=3X<@zaD)CL76vufU9GH!Cd?kj;p1;&IQ1>Q9P!iVn<`QN?eo?8UHp9kPI)+%@VCk>(&z5k9{UtMuaCNZBbNmpvGCp90LkTkZpo|n$ zLFGgIt)z6EWa(i(A_Y-!ljUtv(Gu~tp{P7!c=L-EFlWfyL_TVI^WrQ%#>b&>o2(ni zVv_A5G0LSvIf>CGv4eTy{pOf=Ss5?7MztJOPrx3<=Z3u$NuDvjy~203!8g|`Yn-rd zL2NFbArLnem(;}bJJy0&iDd2=%CB^d(Vn+ihR2E*h+#uX`OG-C$(CW6w6JN2F>vt- z$x4igRwiv5p&*FH~sOl&a=a1fJEjx_m z(NQ`#K{fT$41qXGFxiiXOUCP@>28*$y9Fb#UYbrvIc~*RVQ>y^$GO;mS=fm4a2J|z zH=40H#Kj-ao2iuu541PY~az`a7_KH1av!-K7|vmcOM^C0T+kcl(aP7M~$ zVt7q-6df1)xHF#eh)3{j9?Uss2tVWOxYkPVUit>JUSxm}L>Z4nafvMFM&WCWfi0=t z#c~B^Ee5MF%2Ll{OK2u{^-0}!iDf^QU^iCaX>?(a_}Pmq@C?=n z&b4^XOw(jUl0>P1yCf$GqMFX9*e@GpqBcU3HHLe?po|C9C z_u%o6oegr>z&etF#EYa{f?5gwZ%U^`q3^{5G>X=m)Auuif6puVW#uqxMU~ij8E?8r5BAF zot@})WGDA=X}xVLzA+VBcf7^W%xToE&MW~cPA!!X@rDh37>BkyTGRIO(-l+yU*xoYhD_`1)aU(log_aty3DAH*B0eZOkY1WyD+uhX3nlN+fczmrBP{RgVLld zHQrV`zJjx*9iNwWd_mfApS0tPa**$jpaL(+>Gm=v;sB=O70kt}ScuoL6bI3YH&}o} zEX85g;7v}zTe9um<|4eq#dw#?@E!wrpCNp}tK|!K9gc84KH?qtSdQCIJG9hQIJ@99JBO{8dT8-<2%47UKQtq^;?cOPN0|+BW4zBAt9SC3O-473it<;| zVolp4#&xyHI?CMgQB}kZR__$c1q3>TZnES%1vykv$TZP#p;-QORm)#2lcE&^F$ delta 3677 zcmZ`+d3;pW75=`L%#z8>WSPkflZ0dvLdZq}7{DZgvi1igpn?IS77{Xq(PW}w5*1rh z3$4}GB3`wCD2fYOk+PWpLBvL@qF7hdiW_bfYi(;=TNU-ZH!qV&?LTksJMVnweCK@U z-kWS%w0Du?@Ynkf0+_-RJ00c8YP(}xZLllU(b|7^q$Si5DYw%?lue1OYFyD8YznVj z5$XubhhTl&r&Amw!BAL!nnIE4po2ErZA@~~!DRLCl!-0}cF^U-2D*tNb!mE`rMTY4 zRJF%lP?}CmJulMIf1ougaf34?Ok-0hxV-s8U>&{(K^JYPhL2+#X#Ky0~IWb6YrKXMt*P&9W9cIf_Nk zrMP{`r?Jw;@lHE>~@7d4UzuzahYBf@{%n7ptvl!wcJ_i9^0ljo0L0E8BHS z((e*|I8zBl#GewQ)iHODn&I&zu5t2b>H<#=uTfWeijuG8bvFLe z$zSn$wcWG8y4J}XxK7!1=uF=nK-G15{o#*n^s zjBP=1mTLEvsPVotQY?+SP=s}5C>#w%)HYw6^7(RAz@L*~<5P-GpQ`d-$`{lF{yZL4 zNBr6DR~>wff3op)Cy()s-Jkm{bid``+kD5y`=TGLqngA1-bXiw~MShjAlsm0wxOcPE54H^FK|cqFrO zt{x#%-eYk*;^9RaGQ{RXKKw%>jW8og2HwWoCBkMwB}ha`lw*dRlC_cR)v>I3Svmzh z9dNA))G!i-dg9$PvnOiec2&;2;c=!~;Q&)vneo+$oNB3bWbRqwy*xL!GVYBE(>oQp zyd%yg3EEdEw4uZ%oYt6}_8IUm{xAH_?}uMw!s~*8QoTzKqn{11;e4YjvEuCU;;u9O z*9CtdY+nnGn5MI>ghiec;%p1KMNfwj@bE5KX()k{ck>?UCTii`563B^tMBgzNm8D~-~MiL*4 z_g98RpUPWI;3xU>1UPBL(Ap-Oz(Sc^1BkIQ&)cOdu}aJk8wLuXMcSorfW}w>A3usu zH^Q|G6&`9m7{60i>7VuB0{J|w2f4Mzm&8HCURo!0o7hA6bgsTE9o>VkvU}*<3fEi% zkfw){MvcLI)H4MMMvErEC7IXC^9I>2>tyRGLLZlcCvQ7fm6za*9m8 z1dr|Obp<)}s2v5q?u;G=W=R1>`#BsiYLG2!aL*B8fjfo!7U6!EaKA@3{Jkj0R#f9Y zgJW#mYD^OO2pB?8d|cekJ%f_?CHv;MB-2C?{X|*gAJBw(1DcG`NvN^8-tHcbEZxUq z4bt_xvL{T<%1zBY95Ym-akB>`VqUc+U@0r^;pv7lH3EpsG|4EDn1?Q05tnJUoRPpb zDfK}qb-R?h1G(MUDLU=K>DY}kum>~nkm%7X(0ypYek?~H+HgPuJ%TInFjnCpR^yP- zm&sCI1G4#$^dLbzQ`y5_(R0-h>DI)hyD)Y@Nv7H%gFG$`iT;x)H#X&`9j1g^2AY_- zSo9IvT4bW;#5X;q&U&Y3Z*2gMsOJ7I!tE2amm9?mfgRf)RcG~G~V7>X>qAzwGl zGYo#KZb;J&=cv`AD!bmkl^}Be&XVm_h?4t1ZUc)yD8?n6K4pO-#}1v?cnlx!<0}X)=WUGK7!G5I!zL z_=FtiPj;gSPstf~7*%*0Q}GOD&tVCkM-yIPHeTXLyv%YO8y;Y!0F2WuMrRg-|gMh|MXKynI+}E*_7F@t`c- z!pF-;WR)UB3VBEzQ-z9`kIE_yO+3lpvtKsZ5-ov`iC>}+iJg>k!)g(8yA^3O`M4m6 zDs4RfAS(^CwE{jNs|0RVca&uDNp+y4xI0C^;O-gNZ>L;@Tz$$#NDVe77&V`I@!uDZ zu~Q=I7j&614?iCqtJ>1N{6(EUJY_xnwM9Tr7Y|ryWzQi{L`7+-VyF*s*^Fw}wz_(b3Bh&x@ diff --git a/out/production/Biblio/Bibliothek/User.class b/out/production/Biblio/Bibliothek/User.class index 49bb8c58ea8d9d56c20710938aa0ee26879fdd06..476b15d018bf7faceb09e8bd396e2a8d60f2367f 100644 GIT binary patch delta 178 zcmX>ov{H!c)W2Q(7#J8F8HzS?#js2+W6_a~XJim#RLDpyQBY@8S4b=^PEXCrOwCBm z)8k-BoV=e!jxl-iJs_Dn`7etGUpf~<216!0LlzH%5kvN5W7f+od5jFIljB)c+1MEh z7#ZY%Ou5OyY$l9sn>*ObnXDL?8KQw!GBLz3!~$t41{Q`i21bTBFqr@*lfYyOLk>`$ O3n-V%kk3%aAPE5F{_&BCOuGg+6VosoU=Ru)S}mdWo~W&!|QrUzR9 delta 26 gcmeC+?%>{_&BCOkJz1Bfoso6&Ru)Sj`JQDa09=*_S^xk5