From 5c048376363ba0e79b28f16ae46fbf2d44776a8e Mon Sep 17 00:00:00 2001 From: Batuhan-Karacan Date: Tue, 28 Jan 2025 01:59:05 +0300 Subject: [PATCH 1/2] last --- .idea/misc.xml | 3 + .idea/vcs.xml | 6 ++ out/production/s16-Challenge/Author.class | Bin 0 -> 430 bytes out/production/s16-Challenge/Book.class | Bin 0 -> 1197 bytes .../s16-Challenge/BookManager.class | Bin 0 -> 2334 bytes out/production/s16-Challenge/Category.class | Bin 0 -> 436 bytes out/production/s16-Challenge/ILoanable.class | Bin 0 -> 157 bytes out/production/s16-Challenge/Invoice.class | Bin 0 -> 504 bytes out/production/s16-Challenge/Library.class | Bin 0 -> 4048 bytes .../s16-Challenge/LibrarySystem.class | Bin 0 -> 382 bytes out/production/s16-Challenge/Loan.class | Bin 0 -> 713 bytes out/production/s16-Challenge/User.class | Bin 0 -> 830 bytes .../s16-Challenge/UserManager.class | Bin 0 -> 1159 bytes src/Author.java | 10 +++ src/Book.java | 28 +++++++ src/BookManager.java | 23 ++++++ src/Category.java | 10 +++ src/ILoanable.java | 4 + src/Invoice.java | 14 ++++ src/Library.java | 70 ++++++++++++++++++ src/LibrarySystem.java | 12 +++ src/Loan.java | 18 +++++ src/Main.java | 5 -- src/User.java | 19 +++++ src/UserManager.java | 12 +++ 25 files changed, 229 insertions(+), 5 deletions(-) create mode 100644 .idea/vcs.xml create mode 100644 out/production/s16-Challenge/Author.class create mode 100644 out/production/s16-Challenge/Book.class create mode 100644 out/production/s16-Challenge/BookManager.class create mode 100644 out/production/s16-Challenge/Category.class create mode 100644 out/production/s16-Challenge/ILoanable.class create mode 100644 out/production/s16-Challenge/Invoice.class create mode 100644 out/production/s16-Challenge/Library.class create mode 100644 out/production/s16-Challenge/LibrarySystem.class create mode 100644 out/production/s16-Challenge/Loan.class create mode 100644 out/production/s16-Challenge/User.class create mode 100644 out/production/s16-Challenge/UserManager.class create mode 100644 src/Author.java create mode 100644 src/Book.java create mode 100644 src/BookManager.java create mode 100644 src/Category.java create mode 100644 src/ILoanable.java create mode 100644 src/Invoice.java create mode 100644 src/Library.java create mode 100644 src/LibrarySystem.java create mode 100644 src/Loan.java delete mode 100644 src/Main.java create mode 100644 src/User.java create mode 100644 src/UserManager.java diff --git a/.idea/misc.xml b/.idea/misc.xml index 07115cdf..9595f6fa 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,8 @@ + + diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/out/production/s16-Challenge/Author.class b/out/production/s16-Challenge/Author.class new file mode 100644 index 0000000000000000000000000000000000000000..a65d005267f3c7a9be2f10f76bb90f65c5436445 GIT binary patch literal 430 zcmZXQ&rX9t5XQgdZ=u-MTI-p^U>q z;-MiK=9`)CH@o}u`}Gar24^lb=r#-wCM<^8j=%7z$~A6Sa|UP`%TSEDNdkMH0U$oz`~5wvY*B==A_7{sElYQSPaaF d{)~EN_zwG(5)B>BQbk8$ynbN7(95Z*hu`Z#h zzzs%@oNSmVqe5bP8eDq5LbiLXJsn>&QO6A)4(z}gdj3a+eD@^sbwtC&7Pb}E+{y8^ z?T+mJ$Wc(|3eQ@r8e&eOYzx+QkENV=7o=J5x?|_<^h4kA&qCsI*BjWQp6$D`j}DFC z(w(q`t~B6~)eW8C4VzGHwO13e7+#-A{R%m{p#T=f=tvC9;l;d81(R3v9r@XN)@M$L zU6gFJ&P92SBb#?2%ZMmZEv6X~o2s9|@F78FLIvc4hn zg-(LxKw2Me=p<$s5G7H#9}6xlgUhkt2Y5(2X~@5sOUvL&Ecg*xG2rSlxEc%ILOTY$ z`FW}4S}fSYZUlbL4oO?n*7kqn3OiQU=z16tbxgXs#}^@u-p4`2bM%*oZ=tXlyZqyT TUvP>D8SyHY3|6>0TKVHYk(aDU literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/BookManager.class b/out/production/s16-Challenge/BookManager.class new file mode 100644 index 0000000000000000000000000000000000000000..b9eef74997876a3b08a77a9e41b3033b8d500d18 GIT binary patch literal 2334 zcmcIlTT>iG7(ERO1Iuh!mrEpI0t6Bk5{SfWHaCM}Fbj!-5Q(?m-3BJi&TMviN#f;y zm|x(FFR>I09xTg8OaG8%si$WK*cFmDYpZ6vzy2=gobQ{S-~QhH8Nd~MokSCwEhKET zpj9A!Uv9}MS9)EG+*VD*pp796 z3naYI+`X5(PLZ625jq&`Nu0(R8)q>l&_X_QC4t6}MO}5gb*eCq2@B_JoX2E?%8>(A zRu5{@r5HV9krwq8v#X}k1sgA8n%o1WmmKY?|2W6BOp{*0s}^3f@jBjUtoAt2s!Y0m zjih^`N{&BuhbT4Ul`Q8n9E?jga=0vTyev1>jPDhtUUBpWSAmwECd@PSF!w6gA&*T- zT*WmD*KNFIpm&8`Xe`J!R7`o-Yr~8{rxAA0^Y!4GU-L?n83?>%V;1jHbgcs7o_==i zaDvuqUQs)~M_Q`n5W5QJY0k!bxJCV{s_bv6xix{IIMcJjva4;F7f6MeO3GDQmDoRf zY=6G9%Y-%Km)MNXyyK~bTDhRAOR`|vlgax<=`PEvWA?Ezp*I`~n97@^@w<}~NY*MP zA~i;VvqvyIEN)o45C*h{*_fuu;S6RD`;xY&9>!ynTGX=0+LahmGNKmM?s8?hP?94D zwvh`0{YN1(0lDld!7uu?YEjKPhIQJQV`7u0;gLxPx+*L4N^kh3ptBXlBuY>g*37J} z3yg%b5stm%ZTXvODw?5a{AOj5Z#%D+Z|Z@>j#1K^(krgbMZY@4{}Dj?jmoaTpOId>5W=hx-=-rledJ6vIWnEkBY$XA)fhAaFUQ~ zdn`N3^}FByf6mVpq~S16FGKRSA;(l4u*B;L|j=_{A8DCfH1qJ?D9< zI^)V9P=N(Dee{rKN44C-mjWlB@5-Atnhy*TKojpezBA@y##Msr7A)|2o4Z-s&3SVC zCy4QhA7MS^t_gSeJcedI6a2NH9j$nuyWYqfA7GI?#)Vl0vn}DnIOnhQY2jIZ{0CUu zNbR6YVB!1@`UIZf0vD$Qe!=NWiN3@(MkltBeS+S;#JO!ueUFRhcJU^#jVn*T{pSzv zGdIkd`Iag}!JF*;67zGKNKWornwyDn9Gn1Bux!Vu)g4xfeopF{FL b!^i@y8@SJt2dJWkhqNbYdxS6W75e@K4YN;` literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/Category.class b/out/production/s16-Challenge/Category.class new file mode 100644 index 0000000000000000000000000000000000000000..2eac7f1a6985122d2aa2df5592d791af40737618 GIT binary patch literal 436 zcmZXQ%TB{E5Jj)^Y(n~=l(J=+1c`hAk4>ensK9 z=)rU02RK5&(3^23in@7WuqwV04CBQ=VWk>b6;}+W;bApOsb^L{P|t87E3w>eGSS@g ztkje`=Vi(p+3K!nsYm(5;4k(=iR>0aE%o3@7#$8F_p07DxtPlq+uwIywwJ^?J;tDK zU=-;&lo^!U=u;e!nv-tN{rD3szW9LqraeQ71DF&oS~fg57?GOp+&IRV6!mE;Biacj g9W$Yw(U~2;!+oX1K#Oy9(bJe$cXw<4%E-V6H&_p3 hCL03-BLg$gVg?2#pgpV%Kmj1l4x)iF93XK9P5|{0BK`mX literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/Invoice.class b/out/production/s16-Challenge/Invoice.class new file mode 100644 index 0000000000000000000000000000000000000000..4ea400aa98315b5ae764149b91e4f4f9fa713a28 GIT binary patch literal 504 zcmXX?+fKqz5S&v=E49c~yk8!n8u!sIDNyS6#ucog zV#2bq4qL#yix)}g2LgIN4^omx&%}YGZP=)x&We{LZ?bYtRF$TU7TQd?vm}oxA%;}$ zu3A^LVQ-!q))CFG1D9+z8j6*G?a0X)U(%cE>Ia2I}PYhg6yi$ z;PzCp9+N!vgWFJ!u?yyzJQ~N`S>sbmv^BWC{HTOZQAlxR1(<3exclF dMY77yCmQc`G)O5!C97)mYD~EpEpVV%hyRqyOPT-x literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/Library.class b/out/production/s16-Challenge/Library.class new file mode 100644 index 0000000000000000000000000000000000000000..f6a735dfd14c1dcbd65345ba74e0921584f054b3 GIT binary patch literal 4048 zcmcIn`*$0~8NDmXURmB?M^5b6n4qMNk!&Rf5(15avEvY;RtXRrr!jr7k~a3n@~+uk zIha0Zp@qIn-=yzC+q8wYK*6b#meTj*^!NTR?djvr%*t9Pj@#37`h%^VnQy+i_kMRi zt^WMa%WnX<8-Ge6hPaM|fflrC=sagGnIkpRnH{;me9o!_8d?wAjvb6@h-Y)tI+7Z? zWKcb@Ya`>HXD*j)KS)7GybbLzbZjwj13EP5CA;jI-m-?4vg^+KOkZkl6}t*z$5sPr z5#CbwEzcJ-+YD@%Gd0(A{C4zUhmKwYeYjD>4eL`7mszc9*q&9nBiIYMnG|lqP8~NJ z$Y7U-#1Z1q&~E$VOQu~j%QZ{#V%%FWpkt4LLEOT)hX{pmXRY9f>v`^Zt15Pq!Paap z!eP=13hl^YNXM{&JoakX(uBuVrtnSh-rg|MdT_MOqJUa+uBvGx>vR$)G#n5@WNbg< zxIu=VRmIG>UPibmGiUl4QmxEc)l4vFWoq_<9qbbV-*4anVWVWlbpq2C_R8Uufk`ph z>RAi!l9h&rhYU>PG)oa!K84J$FF?ctXX{QSuw91=TUDFVShPeB&KQ`%!#qc&ES}Y{ zD-=oIoDH_+X41Tk6G^;V!!1*DBv%$B&y$N_Sq`0;DKAS-f+#8V;1L5R$~?*rEYA#F zI=8z~N_kc>oF}jaN=r%s0Ja;v|zx2 z%Zo)bO;CYZSKNAoAQ~fv#qg*BPs(gPS~qLHuwh`JjwKCk+&Nwk<^=c@_o-*@+KDgi&P9_2tnCMDj zlVk#&jZ86U%Qh}L(+U&NnrcQxDH#|gapk5NRhJ#BRn1TXiY0RKh&1JB7FxDl4Sm;4 zM))U1-&IJqOa^9U{)D+0!cKV>#>SIt}~ zSIvQ@S_8MrekKd1N?DT5$<45MLT^!GIl~Ju>DIl9b<7rB*$54?Pt=eyQSZPHJah4c z#p_b_J6iFh6n>1K=y+N5=~pxi$a2fZYdcHsyfvblr)u5D%nEx1@8@&TrX2>Vq{mIC zTC@Ct5*<`uEGYX#8+l}A-Nq@_XoK*FBk^I|h<-bSDJINXZIV5#ki<{%(D%W?F-S-U;h7;H`Qa^qEb03*Sck?y;QylYsZ*BZxwDFnm zqx}C7?s$Y5G=2^aU4k}r1^SswXnP&0=3{5`vFjCi#?$=Y%^YB^1X9f2&eul+d$0x1 zaMn;6@lkw?BMl$NC&JT?5=~4*484Zb@G81vINi)CzQ%w~X4@+BbgS4fkI4H;e2SSg zd>WtGAY!;<<56M!b`S@N1UQb*^BK{KBmF?9<%tu_( zFTKG4^oJcnJYB^1Lv>pa>l@>*HvE7gG5ioO@^c5rFA>12ysL3s!O!taIsO%O2Ai6O L-{SZ9BYOW0;qlJ@ literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/LibrarySystem.class b/out/production/s16-Challenge/LibrarySystem.class new file mode 100644 index 0000000000000000000000000000000000000000..322f9d5c61712e96b450ac121b8321b498d95c46 GIT binary patch literal 382 zcmZut!A`!H#@VRU+*6PZg3jGgC8R3qlGr%cqv{)TnSyq^L!}_OK4v!t?VtqpG>n5 z9l{_{xe;cQZdO*-gy61ul7wNRw0v0CxikxrS6mq-O(CjG80GSxVql-u%BlZ!nQ@z1 zC`~w@7397<(b0g99%Fwe;5gu{iz5uV;>?$Po$jBpw`b&E#mQDUV)QWn2H3hui2wiq literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/Loan.class b/out/production/s16-Challenge/Loan.class new file mode 100644 index 0000000000000000000000000000000000000000..f757ce11b43205339794ae56c878a167ff5a071f GIT binary patch literal 713 zcmZuuNlxQH6n$lzm>83ZH1pIy@atfuJ;2~(lLHDY0+P(=psY32|)Q!@8 z1+!LfQ*cp4iIaAc+{)yDwP~ZGP|z0rG>RKX zK^i(J!xYL77qggCn2f0@6Q=P$W19-aT4s_7)?2hVO#TvE^rLQg(!Xnmz4M?Qvs3Yt zP7t?(UL@yH(@L+SdkG}Tsb^n>sidZFt)59|O$nSeb##R(B88Mis}TJyoO71+d!6t& z68pS>e+dTbyq>}LHo5ZMxHIH=bmg5{Ehzqgd9DjQT@z`tE_y>KZ+8IO+Z$lodqw$j zh?xPZPnx^Pb(TC(-$I_Bg905E=&{7^dZvP9tnfrV?XL7r{0;i8Vr}HwV3pZ~_YC`y t8-oNOr<+AB=w^VCprXM~b|msg^7L17X)JjIn`6k;ujKMr@|MoG{U31*YjOYp literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/User.class b/out/production/s16-Challenge/User.class new file mode 100644 index 0000000000000000000000000000000000000000..caf9eff1c626e1ad59e1aeeebfc15e8b6002d60c GIT binary patch literal 830 zcmZuu+iuf96r8n_7`sk$X(^=K%C(7$$OokKp-2cMt2_iE_0dUI$(GcX90z`jN{uQN zi4WkT5VPwd(j+fu&z_x`Gw1B@Ki9tiyv4o;3$}xTk0MF})wAeZ)Sg7~sQsybCI^{7 z=}^TgI})&)t)7cJa26fOsN~v)LwrZT?W$26WwTTY+`IjH z7;0AMh^YPMs;SjVtH(*+B|}P8LKVxC*?C{4pQHYSm3o*AqDe1GmA>B;3)xuFRw>l; zvrlm(vya@tcC)oAFW~U`gyVC+%#Lr*R{O_Un69y0TbRk~CbM)P-z)9T)dt?^g<_BU zv-qhtBR_|kr8jR*E*0F9$?v1Uyod(lE-Pa)Y@WNp6-00_hZDS>qa6H1_4Eq$Ikqkg z?*Zcud4Nj=k8uN=)Ni1Shpg`9DtLs)yiw1%5GK<;EcSasRNl4CQ@<61OE^E6SkMhh trdTzCeh#=16nMIpTwW&E){>v$Ia}y?7dvk)lk029`PyF4%}e9+)n9bTksSa4 literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/UserManager.class b/out/production/s16-Challenge/UserManager.class new file mode 100644 index 0000000000000000000000000000000000000000..9e9f3bae0fc2a02839deaae6a2ce4b9a5fd307f3 GIT binary patch literal 1159 zcmaJ>+iuf95IviuapJlc(p$=<1ZYc=Lc{%1mlhhS0?92%3FU#OO|nY2b?nIARO+Ab z8z3lBANT-13Nag-lF|r8Sz}_)e*k!as)+=W22vJAkY<=X;77dTa<5%^ z+c*$S#gJZ?o>UtQ$zo|Qiwv>`Obes17)IZRBG};`Z;ODzaAhOl!7)SDaU#<;F^&lX zlNK%^N02y97H_q5Hi3(dHf+s4jTr;87UqyY*G%m=RH8#Y_&sWA#_6{y{mQ#Qda9-Z z!8=syGOif7YT+6d7*Y|t(H3f#cLc+9u@vR?$D<_awe1|qP_S?VHyP$S{7_VVugTR1 zsrJbV757xguw1;DIfTr_B9;s+TeyuP!_<&2Y4EP@+4X3QVXS)$R`E=}61l0W-=g*> z9O;SOUZ){~I&ZiX$vJ+LyL&v4+K+=NwJ)jTvA(A9*4V@uh_)mRgGiNBuP=Q%Ql7!A z`Msbiwx#Bs)R;JRRnI`7E#Ft63V3%%sC~Z`PNea~#8W&o@LbEc#<2MJ>`3p(KNOWn z<4DnM-c-Im8=nTJj)4*BYwopN5iUBuf7t8V7bPEvoJ*`9cf}C+#{qnFn(e_&iz%wy zb!$=yJA-xFGd+8u@JB7tS}QP8?~Uh)pz8846rq7lhNTO`4x7QiD~5&tL+OS^1EWBf zD?#Ux(Ms2gtOVI3DA8IbZ<~Dm-YkCyE3bTm@wty#p>-TdT2u5JK^AG;A#XN9<1SXo zqr5&VBen{1F=svI%$L8ySUJJi7fjJ({uI}N6Wsc@g8l%QbUjB0D&)^9 book.getId().equals(id)); // getBooks() metodu kullanıldı + System.out.println("Book deleted."); + } +} \ No newline at end of file diff --git a/src/Category.java b/src/Category.java new file mode 100644 index 00000000..22ed9f09 --- /dev/null +++ b/src/Category.java @@ -0,0 +1,10 @@ +class Category { + private String name; + + public Category(String name) { + this.name = name; + } + + // Getters + public String getName() { return name; } +} \ No newline at end of file diff --git a/src/ILoanable.java b/src/ILoanable.java new file mode 100644 index 00000000..1a7bb5a7 --- /dev/null +++ b/src/ILoanable.java @@ -0,0 +1,4 @@ +interface ILoanable { + void loanBook(User user, Book book); + void returnBook(User user, Book book); +} \ No newline at end of file diff --git a/src/Invoice.java b/src/Invoice.java new file mode 100644 index 00000000..1d9a877b --- /dev/null +++ b/src/Invoice.java @@ -0,0 +1,14 @@ +class Invoice { + private User user; + private Book book; + private double amount; + + public Invoice(User user, Book book, double amount) { + this.user = user; + this.book = book; + this.amount = amount; + } + + // Getters + public double getAmount() { return amount; } +} \ No newline at end of file diff --git a/src/Library.java b/src/Library.java new file mode 100644 index 00000000..443939ea --- /dev/null +++ b/src/Library.java @@ -0,0 +1,70 @@ +import java.util.ArrayList; +import java.util.List; + +class Library implements ILoanable { + protected List books; // protected olarak değiştirildi + private List users; + private List loans; + + public Library() { + this.books = new ArrayList<>(); + this.users = new ArrayList<>(); + this.loans = new ArrayList<>(); + } + + public void addBook(Book book) { + books.add(book); + } + + public void addUser (User user) { + users.add(user); + } + + public List getBooks() { // Erişim için bir metot ekledik + return books; + } + + @Override + public void loanBook(User user, Book book) { + if (book.isAvailable() && user.getBorrowedBooks().size() < 5) { + book.setAvailable(false); + user.getBorrowedBooks().add(book); + loans.add(new Loan(user, book)); + System.out.println("Book loaned: " + book.getTitle()); + } else { + System.out.println("Book is not available or user has reached the limit."); + } + } + + @Override + public void returnBook(User user, Book book) { + if (user.getBorrowedBooks().contains(book)) { + book.setAvailable(true); + user.getBorrowedBooks().remove(book); + loans.removeIf(loan -> loan.getUser ().equals(user) && loan.getBook().equals(book)); + System.out.println("Book returned: " + book.getTitle()); + } else { + System.out.println("This book was not borrowed by the user."); + } + } + + public List listBooksByCategory(Category category) { + List categorizedBooks = new ArrayList<>(); + for (Book book : books) { + if (book.getCategory().equals(category)) { + categorizedBooks.add(book); + } + } + return categorizedBooks; + } + + public List listBooksByAuthor(Author author) { + List authoredBooks = new ArrayList<>(); + for (Book book : books) { + if (book.getAuthor().equals(author)) { + authoredBooks.add(book); + } + } + return authoredBooks; + } +} \ No newline at end of file diff --git a/src/LibrarySystem.java b/src/LibrarySystem.java new file mode 100644 index 00000000..a0cac952 --- /dev/null +++ b/src/LibrarySystem.java @@ -0,0 +1,12 @@ +import java.util.Scanner; + +public class LibrarySystem { + public static void main(String[] args) { + /** Library library = new Library(); + BookManager bookManager = new BookManager(library); + UserManager userManager = new UserManager(library); + + Scanner scanner = new Scanner(System.in); + **/ + } +} diff --git a/src/Loan.java b/src/Loan.java new file mode 100644 index 00000000..b973b268 --- /dev/null +++ b/src/Loan.java @@ -0,0 +1,18 @@ +import java.util.Date; + +class Loan { + private User user; + private Book book; + private Date loanDate; + + public Loan(User user, Book book) { + this.user = user; + this.book = book; + this.loanDate = new Date(); + } + + // Getters + public User getUser () { return user; } + public Book getBook() { return book; } + public Date getLoanDate() { return loanDate; } +} \ No newline at end of file diff --git a/src/Main.java b/src/Main.java deleted file mode 100644 index 3e59c38f..00000000 --- a/src/Main.java +++ /dev/null @@ -1,5 +0,0 @@ -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/src/User.java b/src/User.java new file mode 100644 index 00000000..e09d3f35 --- /dev/null +++ b/src/User.java @@ -0,0 +1,19 @@ +import java.util.HashSet; +import java.util.Set; + +class User { + private String id; + private String name; + private Set borrowedBooks; + + public User(String id, String name) { + this.id = id; + this.name = name; + this.borrowedBooks = new HashSet<>(); + } + + // Getters and Setters + public String getId() { return id; } + public String getName() { return name; } + public Set getBorrowedBooks() { return borrowedBooks; } +} \ No newline at end of file diff --git a/src/UserManager.java b/src/UserManager.java new file mode 100644 index 00000000..9bcc0a8b --- /dev/null +++ b/src/UserManager.java @@ -0,0 +1,12 @@ +class UserManager { + private Library library; + + public UserManager(Library library) { + this.library = library; + } + + public void registerUser (User user) { + library.addUser (user); + System.out.println("User registered: " + user.getName()); + } +} \ No newline at end of file From f661955a544569bc647992751103b0d8086cdb89 Mon Sep 17 00:00:00 2001 From: Batuhan-Karacan Date: Tue, 28 Jan 2025 11:50:42 +0300 Subject: [PATCH 2/2] deneme --- out/production/s16-Challenge/Author.class | Bin 430 -> 0 bytes out/production/s16-Challenge/Book.class | Bin 1197 -> 0 bytes .../s16-Challenge/BookManager.class | Bin 2334 -> 0 bytes out/production/s16-Challenge/Category.class | Bin 436 -> 0 bytes out/production/s16-Challenge/ILoanable.class | Bin 157 -> 0 bytes out/production/s16-Challenge/Invoice.class | Bin 504 -> 0 bytes out/production/s16-Challenge/Library.class | Bin 4048 -> 0 bytes .../s16-Challenge/LibrarySystem.class | Bin 382 -> 0 bytes out/production/s16-Challenge/Loan.class | Bin 713 -> 0 bytes out/production/s16-Challenge/User.class | Bin 830 -> 0 bytes .../s16-Challenge/UserManager.class | Bin 1159 -> 0 bytes .../librarysystem/main/LibrarySystem.class | Bin 0 -> 1898 bytes .../librarysystem/manager/BookManager.class | Bin 0 -> 648 bytes .../librarysystem/manager/UserManager.class | Bin 0 -> 648 bytes .../com/librarysystem/model/Author.class | Bin 0 -> 478 bytes .../com/librarysystem/model/Book.class | Bin 0 -> 1385 bytes .../com/librarysystem/model/Category.class | Bin 0 -> 484 bytes .../com/librarysystem/model/Invoice.class | Bin 0 -> 648 bytes .../com/librarysystem/model/Library.class | Bin 0 -> 3980 bytes .../com/librarysystem/model/Loan.class | Bin 0 -> 905 bytes .../com/librarysystem/model/User.class | Bin 0 -> 926 bytes .../com/librarysystem/service/ILoanable.class | Bin 0 -> 231 bytes .../service/LibraryService.class | Bin 0 -> 852 bytes src/BookManager.java | 23 ------ src/ILoanable.java | 4 - src/Library.java | 70 ------------------ src/LibrarySystem.java | 12 --- src/UserManager.java | 12 --- src/com/librarysystem/main/LibrarySystem.java | 25 +++++++ .../librarysystem/manager/BookManager.java | 16 ++++ .../librarysystem/manager/UserManager.java | 16 ++++ src/{ => com/librarysystem/model}/Author.java | 4 +- src/{ => com/librarysystem/model}/Book.java | 10 +-- .../librarysystem/model}/Category.java | 4 +- .../librarysystem/model}/Invoice.java | 4 +- src/com/librarysystem/model/Library.java | 56 ++++++++++++++ src/{ => com/librarysystem/model}/Loan.java | 4 +- src/{ => com/librarysystem/model}/User.java | 4 +- src/com/librarysystem/service/ILoanable.java | 9 +++ .../librarysystem/service/LibraryService.java | 21 ++++++ 40 files changed, 162 insertions(+), 132 deletions(-) delete mode 100644 out/production/s16-Challenge/Author.class delete mode 100644 out/production/s16-Challenge/Book.class delete mode 100644 out/production/s16-Challenge/BookManager.class delete mode 100644 out/production/s16-Challenge/Category.class delete mode 100644 out/production/s16-Challenge/ILoanable.class delete mode 100644 out/production/s16-Challenge/Invoice.class delete mode 100644 out/production/s16-Challenge/Library.class delete mode 100644 out/production/s16-Challenge/LibrarySystem.class delete mode 100644 out/production/s16-Challenge/Loan.class delete mode 100644 out/production/s16-Challenge/User.class delete mode 100644 out/production/s16-Challenge/UserManager.class create mode 100644 out/production/s16-Challenge/com/librarysystem/main/LibrarySystem.class create mode 100644 out/production/s16-Challenge/com/librarysystem/manager/BookManager.class create mode 100644 out/production/s16-Challenge/com/librarysystem/manager/UserManager.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Author.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Book.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Category.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Invoice.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Library.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/Loan.class create mode 100644 out/production/s16-Challenge/com/librarysystem/model/User.class create mode 100644 out/production/s16-Challenge/com/librarysystem/service/ILoanable.class create mode 100644 out/production/s16-Challenge/com/librarysystem/service/LibraryService.class delete mode 100644 src/BookManager.java delete mode 100644 src/ILoanable.java delete mode 100644 src/Library.java delete mode 100644 src/LibrarySystem.java delete mode 100644 src/UserManager.java create mode 100644 src/com/librarysystem/main/LibrarySystem.java create mode 100644 src/com/librarysystem/manager/BookManager.java create mode 100644 src/com/librarysystem/manager/UserManager.java rename src/{ => com/librarysystem/model}/Author.java (73%) rename src/{ => com/librarysystem/model}/Book.java (85%) rename src/{ => com/librarysystem/model}/Category.java (72%) rename src/{ => com/librarysystem/model}/Invoice.java (83%) create mode 100644 src/com/librarysystem/model/Library.java rename src/{ => com/librarysystem/model}/Loan.java (87%) rename src/{ => com/librarysystem/model}/User.java (89%) create mode 100644 src/com/librarysystem/service/ILoanable.java create mode 100644 src/com/librarysystem/service/LibraryService.java diff --git a/out/production/s16-Challenge/Author.class b/out/production/s16-Challenge/Author.class deleted file mode 100644 index a65d005267f3c7a9be2f10f76bb90f65c5436445..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmZXQ&rX9t5XQgdZ=u-MTI-p^U>q z;-MiK=9`)CH@o}u`}Gar24^lb=r#-wCM<^8j=%7z$~A6Sa|UP`%TSEDNdkMH0U$oz`~5wvY*B==A_7{sElYQSPaaF d{)~EN_zwG(5)B>BQbk8$ynbN7(95Z*hu`Z#h zzzs%@oNSmVqe5bP8eDq5LbiLXJsn>&QO6A)4(z}gdj3a+eD@^sbwtC&7Pb}E+{y8^ z?T+mJ$Wc(|3eQ@r8e&eOYzx+QkENV=7o=J5x?|_<^h4kA&qCsI*BjWQp6$D`j}DFC z(w(q`t~B6~)eW8C4VzGHwO13e7+#-A{R%m{p#T=f=tvC9;l;d81(R3v9r@XN)@M$L zU6gFJ&P92SBb#?2%ZMmZEv6X~o2s9|@F78FLIvc4hn zg-(LxKw2Me=p<$s5G7H#9}6xlgUhkt2Y5(2X~@5sOUvL&Ecg*xG2rSlxEc%ILOTY$ z`FW}4S}fSYZUlbL4oO?n*7kqn3OiQU=z16tbxgXs#}^@u-p4`2bM%*oZ=tXlyZqyT TUvP>D8SyHY3|6>0TKVHYk(aDU diff --git a/out/production/s16-Challenge/BookManager.class b/out/production/s16-Challenge/BookManager.class deleted file mode 100644 index b9eef74997876a3b08a77a9e41b3033b8d500d18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2334 zcmcIlTT>iG7(ERO1Iuh!mrEpI0t6Bk5{SfWHaCM}Fbj!-5Q(?m-3BJi&TMviN#f;y zm|x(FFR>I09xTg8OaG8%si$WK*cFmDYpZ6vzy2=gobQ{S-~QhH8Nd~MokSCwEhKET zpj9A!Uv9}MS9)EG+*VD*pp796 z3naYI+`X5(PLZ625jq&`Nu0(R8)q>l&_X_QC4t6}MO}5gb*eCq2@B_JoX2E?%8>(A zRu5{@r5HV9krwq8v#X}k1sgA8n%o1WmmKY?|2W6BOp{*0s}^3f@jBjUtoAt2s!Y0m zjih^`N{&BuhbT4Ul`Q8n9E?jga=0vTyev1>jPDhtUUBpWSAmwECd@PSF!w6gA&*T- zT*WmD*KNFIpm&8`Xe`J!R7`o-Yr~8{rxAA0^Y!4GU-L?n83?>%V;1jHbgcs7o_==i zaDvuqUQs)~M_Q`n5W5QJY0k!bxJCV{s_bv6xix{IIMcJjva4;F7f6MeO3GDQmDoRf zY=6G9%Y-%Km)MNXyyK~bTDhRAOR`|vlgax<=`PEvWA?Ezp*I`~n97@^@w<}~NY*MP zA~i;VvqvyIEN)o45C*h{*_fuu;S6RD`;xY&9>!ynTGX=0+LahmGNKmM?s8?hP?94D zwvh`0{YN1(0lDld!7uu?YEjKPhIQJQV`7u0;gLxPx+*L4N^kh3ptBXlBuY>g*37J} z3yg%b5stm%ZTXvODw?5a{AOj5Z#%D+Z|Z@>j#1K^(krgbMZY@4{}Dj?jmoaTpOId>5W=hx-=-rledJ6vIWnEkBY$XA)fhAaFUQ~ zdn`N3^}FByf6mVpq~S16FGKRSA;(l4u*B;L|j=_{A8DCfH1qJ?D9< zI^)V9P=N(Dee{rKN44C-mjWlB@5-Atnhy*TKojpezBA@y##Msr7A)|2o4Z-s&3SVC zCy4QhA7MS^t_gSeJcedI6a2NH9j$nuyWYqfA7GI?#)Vl0vn}DnIOnhQY2jIZ{0CUu zNbR6YVB!1@`UIZf0vD$Qe!=NWiN3@(MkltBeS+S;#JO!ueUFRhcJU^#jVn*T{pSzv zGdIkd`Iag}!JF*;67zGKNKWornwyDn9Gn1Bux!Vu)g4xfeopF{FL b!^i@y8@SJt2dJWkhqNbYdxS6W75e@K4YN;` diff --git a/out/production/s16-Challenge/Category.class b/out/production/s16-Challenge/Category.class deleted file mode 100644 index 2eac7f1a6985122d2aa2df5592d791af40737618..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 436 zcmZXQ%TB{E5Jj)^Y(n~=l(J=+1c`hAk4>ensK9 z=)rU02RK5&(3^23in@7WuqwV04CBQ=VWk>b6;}+W;bApOsb^L{P|t87E3w>eGSS@g ztkje`=Vi(p+3K!nsYm(5;4k(=iR>0aE%o3@7#$8F_p07DxtPlq+uwIywwJ^?J;tDK zU=-;&lo^!U=u;e!nv-tN{rD3szW9LqraeQ71DF&oS~fg57?GOp+&IRV6!mE;Biacj g9W$Yw(U~2;!+oX1K#Oy9(bJe$cXw<4%E-V6H&_p3 hCL03-BLg$gVg?2#pgpV%Kmj1l4x)iF93XK9P5|{0BK`mX diff --git a/out/production/s16-Challenge/Invoice.class b/out/production/s16-Challenge/Invoice.class deleted file mode 100644 index 4ea400aa98315b5ae764149b91e4f4f9fa713a28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmXX?+fKqz5S&v=E49c~yk8!n8u!sIDNyS6#ucog zV#2bq4qL#yix)}g2LgIN4^omx&%}YGZP=)x&We{LZ?bYtRF$TU7TQd?vm}oxA%;}$ zu3A^LVQ-!q))CFG1D9+z8j6*G?a0X)U(%cE>Ia2I}PYhg6yi$ z;PzCp9+N!vgWFJ!u?yyzJQ~N`S>sbmv^BWC{HTOZQAlxR1(<3exclF dMY77yCmQc`G)O5!C97)mYD~EpEpVV%hyRqyOPT-x diff --git a/out/production/s16-Challenge/Library.class b/out/production/s16-Challenge/Library.class deleted file mode 100644 index f6a735dfd14c1dcbd65345ba74e0921584f054b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4048 zcmcIn`*$0~8NDmXURmB?M^5b6n4qMNk!&Rf5(15avEvY;RtXRrr!jr7k~a3n@~+uk zIha0Zp@qIn-=yzC+q8wYK*6b#meTj*^!NTR?djvr%*t9Pj@#37`h%^VnQy+i_kMRi zt^WMa%WnX<8-Ge6hPaM|fflrC=sagGnIkpRnH{;me9o!_8d?wAjvb6@h-Y)tI+7Z? zWKcb@Ya`>HXD*j)KS)7GybbLzbZjwj13EP5CA;jI-m-?4vg^+KOkZkl6}t*z$5sPr z5#CbwEzcJ-+YD@%Gd0(A{C4zUhmKwYeYjD>4eL`7mszc9*q&9nBiIYMnG|lqP8~NJ z$Y7U-#1Z1q&~E$VOQu~j%QZ{#V%%FWpkt4LLEOT)hX{pmXRY9f>v`^Zt15Pq!Paap z!eP=13hl^YNXM{&JoakX(uBuVrtnSh-rg|MdT_MOqJUa+uBvGx>vR$)G#n5@WNbg< zxIu=VRmIG>UPibmGiUl4QmxEc)l4vFWoq_<9qbbV-*4anVWVWlbpq2C_R8Uufk`ph z>RAi!l9h&rhYU>PG)oa!K84J$FF?ctXX{QSuw91=TUDFVShPeB&KQ`%!#qc&ES}Y{ zD-=oIoDH_+X41Tk6G^;V!!1*DBv%$B&y$N_Sq`0;DKAS-f+#8V;1L5R$~?*rEYA#F zI=8z~N_kc>oF}jaN=r%s0Ja;v|zx2 z%Zo)bO;CYZSKNAoAQ~fv#qg*BPs(gPS~qLHuwh`JjwKCk+&Nwk<^=c@_o-*@+KDgi&P9_2tnCMDj zlVk#&jZ86U%Qh}L(+U&NnrcQxDH#|gapk5NRhJ#BRn1TXiY0RKh&1JB7FxDl4Sm;4 zM))U1-&IJqOa^9U{)D+0!cKV>#>SIt}~ zSIvQ@S_8MrekKd1N?DT5$<45MLT^!GIl~Ju>DIl9b<7rB*$54?Pt=eyQSZPHJah4c z#p_b_J6iFh6n>1K=y+N5=~pxi$a2fZYdcHsyfvblr)u5D%nEx1@8@&TrX2>Vq{mIC zTC@Ct5*<`uEGYX#8+l}A-Nq@_XoK*FBk^I|h<-bSDJINXZIV5#ki<{%(D%W?F-S-U;h7;H`Qa^qEb03*Sck?y;QylYsZ*BZxwDFnm zqx}C7?s$Y5G=2^aU4k}r1^SswXnP&0=3{5`vFjCi#?$=Y%^YB^1X9f2&eul+d$0x1 zaMn;6@lkw?BMl$NC&JT?5=~4*484Zb@G81vINi)CzQ%w~X4@+BbgS4fkI4H;e2SSg zd>WtGAY!;<<56M!b`S@N1UQb*^BK{KBmF?9<%tu_( zFTKG4^oJcnJYB^1Lv>pa>l@>*HvE7gG5ioO@^c5rFA>12ysL3s!O!taIsO%O2Ai6O L-{SZ9BYOW0;qlJ@ diff --git a/out/production/s16-Challenge/LibrarySystem.class b/out/production/s16-Challenge/LibrarySystem.class deleted file mode 100644 index 322f9d5c61712e96b450ac121b8321b498d95c46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 382 zcmZut!A`!H#@VRU+*6PZg3jGgC8R3qlGr%cqv{)TnSyq^L!}_OK4v!t?VtqpG>n5 z9l{_{xe;cQZdO*-gy61ul7wNRw0v0CxikxrS6mq-O(CjG80GSxVql-u%BlZ!nQ@z1 zC`~w@7397<(b0g99%Fwe;5gu{iz5uV;>?$Po$jBpw`b&E#mQDUV)QWn2H3hui2wiq diff --git a/out/production/s16-Challenge/Loan.class b/out/production/s16-Challenge/Loan.class deleted file mode 100644 index f757ce11b43205339794ae56c878a167ff5a071f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 zcmZuuNlxQH6n$lzm>83ZH1pIy@atfuJ;2~(lLHDY0+P(=psY32|)Q!@8 z1+!LfQ*cp4iIaAc+{)yDwP~ZGP|z0rG>RKX zK^i(J!xYL77qggCn2f0@6Q=P$W19-aT4s_7)?2hVO#TvE^rLQg(!Xnmz4M?Qvs3Yt zP7t?(UL@yH(@L+SdkG}Tsb^n>sidZFt)59|O$nSeb##R(B88Mis}TJyoO71+d!6t& z68pS>e+dTbyq>}LHo5ZMxHIH=bmg5{Ehzqgd9DjQT@z`tE_y>KZ+8IO+Z$lodqw$j zh?xPZPnx^Pb(TC(-$I_Bg905E=&{7^dZvP9tnfrV?XL7r{0;i8Vr}HwV3pZ~_YC`y t8-oNOr<+AB=w^VCprXM~b|msg^7L17X)JjIn`6k;ujKMr@|MoG{U31*YjOYp diff --git a/out/production/s16-Challenge/User.class b/out/production/s16-Challenge/User.class deleted file mode 100644 index caf9eff1c626e1ad59e1aeeebfc15e8b6002d60c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmZuu+iuf96r8n_7`sk$X(^=K%C(7$$OokKp-2cMt2_iE_0dUI$(GcX90z`jN{uQN zi4WkT5VPwd(j+fu&z_x`Gw1B@Ki9tiyv4o;3$}xTk0MF})wAeZ)Sg7~sQsybCI^{7 z=}^TgI})&)t)7cJa26fOsN~v)LwrZT?W$26WwTTY+`IjH z7;0AMh^YPMs;SjVtH(*+B|}P8LKVxC*?C{4pQHYSm3o*AqDe1GmA>B;3)xuFRw>l; zvrlm(vya@tcC)oAFW~U`gyVC+%#Lr*R{O_Un69y0TbRk~CbM)P-z)9T)dt?^g<_BU zv-qhtBR_|kr8jR*E*0F9$?v1Uyod(lE-Pa)Y@WNp6-00_hZDS>qa6H1_4Eq$Ikqkg z?*Zcud4Nj=k8uN=)Ni1Shpg`9DtLs)yiw1%5GK<;EcSasRNl4CQ@<61OE^E6SkMhh trdTzCeh#=16nMIpTwW&E){>v$Ia}y?7dvk)lk029`PyF4%}e9+)n9bTksSa4 diff --git a/out/production/s16-Challenge/UserManager.class b/out/production/s16-Challenge/UserManager.class deleted file mode 100644 index 9e9f3bae0fc2a02839deaae6a2ce4b9a5fd307f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1159 zcmaJ>+iuf95IviuapJlc(p$=<1ZYc=Lc{%1mlhhS0?92%3FU#OO|nY2b?nIARO+Ab z8z3lBANT-13Nag-lF|r8Sz}_)e*k!as)+=W22vJAkY<=X;77dTa<5%^ z+c*$S#gJZ?o>UtQ$zo|Qiwv>`Obes17)IZRBG};`Z;ODzaAhOl!7)SDaU#<;F^&lX zlNK%^N02y97H_q5Hi3(dHf+s4jTr;87UqyY*G%m=RH8#Y_&sWA#_6{y{mQ#Qda9-Z z!8=syGOif7YT+6d7*Y|t(H3f#cLc+9u@vR?$D<_awe1|qP_S?VHyP$S{7_VVugTR1 zsrJbV757xguw1;DIfTr_B9;s+TeyuP!_<&2Y4EP@+4X3QVXS)$R`E=}61l0W-=g*> z9O;SOUZ){~I&ZiX$vJ+LyL&v4+K+=NwJ)jTvA(A9*4V@uh_)mRgGiNBuP=Q%Ql7!A z`Msbiwx#Bs)R;JRRnI`7E#Ft63V3%%sC~Z`PNea~#8W&o@LbEc#<2MJ>`3p(KNOWn z<4DnM-c-Im8=nTJj)4*BYwopN5iUBuf7t8V7bPEvoJ*`9cf}C+#{qnFn(e_&iz%wy zb!$=yJA-xFGd+8u@JB7tS}QP8?~Uh)pz8846rq7lhNTO`4x7QiD~5&tL+OS^1EWBf zD?#Ux(Ms2gtOVI3DA8IbZ<~Dm-YkCyE3bTm@wty#p>-TdT2u5JK^AG;A#XN9<1SXo zqr5&VBen{1F=svI%$L8ySUJJi7fjJ({uI}N6Wsc@g8l%QbUjB0D&)^9)KL5-HcFKoXd(gb5E%)l`d` zomjW5&%5qgfr2(cpq(%tPkF@rjlL{cbTq_1IMM7&>1A(HbGUf=uHG_+$U>0|U zv<1S=|B@z%MQ}fi2Uv883CM=Tgo7g}iewnecu0^9OEq0ZtNx0dK;K+l>gBE)_b8~U zo0oUe=`Swl2KN9VlG06W@3fTD?AL0}U`sS*uI$aq~I$DGO9DBw(b{qLXNCA8+Q8lNlY6;VGSm}2WG*P_EKWQ3XI2a%o&_sB?ZwjsZX<;Fy~?`;e~G`r=?dtZ zbNra!;ut*2*Z3WF9k7lK-nHNfp0b65shj;;*k)ECWh-b&RiR{ODhTgZ5fO{dy(*$& z(VYxb(UXl{t00yPRxyx`4puOn3{^3bjgCbpV!>Fbf}2U{R!sVi=_+Q0`A!A%N%?k6 z{*HUGKui{AOIIxCnVVoF^U&!;EBbjqj&>FmK@uIbtoIjV_~UL%EFG&9~d_OOotqpsow;{_Re0k4o|^*b12&jZfXA^$If NH;hJj%cxDr{sB4k4O9RC literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/manager/BookManager.class b/out/production/s16-Challenge/com/librarysystem/manager/BookManager.class new file mode 100644 index 0000000000000000000000000000000000000000..5d61b8632bbb2f7af3d857140809cee74cf9c8bd GIT binary patch literal 648 zcmaiy*-FDu5QhJgrcIN^rdF-HQc&yy<^igL3cZSYq4fSF4K+0jq^Z!y5?sIwAHata z=cI7~Tf7-&=KS-`Fmv8NUf%#5V_SoSoB~-#9tDQVkl%CD=i$J-vWKpdFcglw&`VAj za*bwBMG>k3O-Bhj!@d&*rtjG?k0+zaC~*Tb;2|Hlv3V9ncNbHiLCG`>b!$dR)OUT; znqoQ{$}kjEbS$FEu=|gm;Jn`#-3Z>8OBaGpv&XPEU-LDAkjdvX6oX-Tp?f(FY&X8) zwojR=6*=7R@z@h_mXwoQZ^UpgtNq`7bO>*!1Mkc#NVk#B%b;CHG z;!vp5IV3tHBTEM%Pa;2$C9=yDbtx9_TI&U@)qaBVkZM-QmXRZ?LWV}Rgc?P)sT!+T vqloHKDkB=*B4eIrOttk0rTvVBAEfw90$hag3#WeLRIFozFbtcdld$y(y$O_s literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/manager/UserManager.class b/out/production/s16-Challenge/com/librarysystem/manager/UserManager.class new file mode 100644 index 0000000000000000000000000000000000000000..f15512026a166a684ce39849fb3757e3e626c478 GIT binary patch literal 648 zcmaiy+e*Vg5QhIv)22zItySw;DJb>;<^igL2)&AWq4s{0E;S_wNLrzfC3pZYd;lLx zoK52aZ1HB8nf>RRVP@YyUf%$mV8?)hoCeiI9tDQVkl%C5=i$J*a)!bkF%*uy&>NjH zI$DWL{q&m9u5{AQB?f>qhL-=tz@b0XFbQ|fs490adj$P69Wb2AdW;;ES zheDmsq0k{2Svm-L3i){~lU<>xOR;=6S}$O&_7k*+RI^HU5jnCtR2XDSs8Lj#sH4KT3};74LiI1xNxxNqwQmh>Z8782e{6OD-nAHat) zP8SjnBwl9cKRffAkMEz)F95eV4d9^S!wpe|M`$g?T12VHXVGK4kclC9H!4@=j!^0K zr!^d)<|7DEM@TqJiY!W1tcBhzH%lY4C@Y?28r`qVywC(U7nvlqM}ORj(JG%^6Ha>j z(f*Wc9vDGrj#Mtkt1OoKNyMq86p2WuLaS2mg07jXCEz^~4vq_6+u?%|TV9+!hy5xJ*)~`WS(pF8-~%+ce24#PbDC@$sIc|m z!bf?&7OU APXGV_ literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/model/Book.class b/out/production/s16-Challenge/com/librarysystem/model/Book.class new file mode 100644 index 0000000000000000000000000000000000000000..2e2c56f5e09a26f43f37d13792d52237d7da8372 GIT binary patch literal 1385 zcmah{&2G~`7@SR=-#Te%)3j+zQp#WA{um@q6p%_KB&3KQTJ_MIlUnH(Czc$yQXheL z;Q$g55(gfDheFJ*9R*T{`mnoRe>2~BzWMe0$4>yS@w|W(=CUwMq>&LQUpm*0?Ky*< zebl*hyP-hll^n?Mjlf*9b(%*G`78=1=3xqKbp5{V$xh$|H^ZA@==SZtf9`trTi^dE zkdo&Di|q;LaTv%!Z(p&LOe`phbSOj5RX6ucEMkcbovZM|4+J*bv*-_Wh2~i{QN@Zt zuIq$u&kt?{wr1iE;~I^unOMWRz`PtDTszWpI-V;a&IDxhw&sMJJJj8+qID`@9MUj> zg|-~HAFlcxH#mueEVliwo>?4)t5zT>B87Xf1*1s?qeGOnT?W{19-L-v|jZ8Xo619?Vn?0$|Fv9RTYA*k}g zv40hG-FH%}SO2@G0)_{SP>P{Wb7eSrN~whDow?FGlcIOdoqG;63L9MS^X(Js)7%@@ zcL-~HgsinQLebhCp={NR5h@m!)vubM&b5v#*8&W-%d=4lMYbuS#@lZLN}xeOTX-1Dvbn4JwDk?yFFd434rKJ@l5S!~1#uJ3BoSPk z23HcnkMV?b%8gTC{UP%O7*p9(3>5#HDW3B%) quE?=fjjl!&v17{39VS8!sraz~ literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/model/Category.class b/out/production/s16-Challenge/com/librarysystem/model/Category.class new file mode 100644 index 0000000000000000000000000000000000000000..03be281175934c2dc606b8d2d68de8c2edaf6bbc GIT binary patch literal 484 zcmaiw%TB^j5QhJ0ODm;ZM8vJS0!-`!c-fG!BDlb?KdmSAkY18b zIPg#%vBRpr&Bh_RthmlliD^gZ?U*6I#DBHXE4*iREL1qx1RDkuY!h}EzN*RU{{T?3 BV734N literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/model/Invoice.class b/out/production/s16-Challenge/com/librarysystem/model/Invoice.class new file mode 100644 index 0000000000000000000000000000000000000000..3928b46cc81c3574856fc5730dd82002797e871a GIT binary patch literal 648 zcmaJ;+e*Vg5Ixg-YwX>6Z|Peb#e6_jyc9tw`k?kbiAzn*1(LMTuM)u`_}~ZlQR3{H z*OrBy*_kuv%+CD$etiQtL#Kok(s^VwWRW9Or{>%=T+^Qz_tsR{F(G&A_)dIINcZ~V zA_^$xQPQvhjnJ_J&u|?pG{Z%-h+^RxUhphjxN#)CmLN~$642$D zquXytOS5TKsYunPuD5KSBD@5_$c2iA}w~MD1OnxA|@2DJsTqPA|51y(k@xVyp9ckTQA zZq>e@w$uL5c3K>Drhh=E|50Z;J@?)fHbOFGoc>_AdmrEV&Uel|=lbVA*Z%;p8$U!5 zLRdjWMHQ+UVrR8UEoExfXzEDzte*22s&^Td;dL{FTa!ZyY8V>CrlMzlm8LG2Ku680rjn-=t=kTGrHs4&wX<6)o7vpt`yjSdO#~bDcISC^jL< zRc~Y1)0!zq;28OyF1yO$o>!9J8dYp1C ztzs8;Gb}G?<9d&6MA^)$<)B-j~@ln*!8z`Qp1V6TFGD)yu2W_p%7NxUbx z%cgZpM)-D;Lp8XUp=oeTPw<>f7;eI{y#(C`8TL+|ZTG1-h(5X!u27C))lCV+WstKe zg5wL+}VJ3&;R38p;--lEj=eRYFUa%+izL7Y>NY`MPVe{Y^$t7ev zuSwmqw&U36^?V{bmGDSYeuX=E%AZnk8V}1fk_nX{4J&3pFHvVyX#A2_>*tD^>2jo; ziaaO{c|yu-S_w(q6a}LU8|E4#a+5|*PxbMODKB~LfH7)mUeO^7T>;^Fb=p;yudvdc zUdRz~!54OfvrO|Nksd0i4D}hq(hnC4S=||w?Bf|brGc z6)K%lQ_7IJddVs-oJ|f9jjX7WYbx)Qs50giP=y`>wJ7RMc~r4eRvAu(T#J`nN6|=?>RD|S*Poy(5eOLV|4IywD-!JDD#Cru|WH`IE_XOHTQ zHqozpV|L!Hug0rUyoT2myumxbn+z?YGKqd{Sd;d+&MPMM4%rkAXgSYzrWh^;+kwAP zf*#bYys5h_8H##wB0aZ91ZGMO4o*$z^K3sE*e_o_>0p=fA$l~^95ATR*5GY&lqJTf z*3Hy8MvlH4#d~;P!3Qcn#77M4=Qx@X(Izjnk(+MT6@p)X{r^r^RHS54>KqiTWLc6L>l&dIyg3_VS`JpdVJc|o8_-aOOc}=LTFv`3>%hH`5 zQ*&M2Rq!pt#yNV=moEygQ0iCSN{vP)7uFGv5Owkq>UJUitflc7J!e8N=pVgLXTHzU zH@!}0zQ<8ZV|rE7uSqA)5CWsWo7%2|wcUVn;wox?M|5@=n;ka%B5V}scNt*-ix3gk z>*=u@!$vHDMYF0zgpCRMVmJrKx7JH+LVQQtZ-};E!?F;L&tmeH3M?hx8U@ZWx!1?x zxGp?GVklyA9>iD~#1(|NvJB#RJSq^U@EBR+iloFhP{ld^OcNn+hq+)tbHKqWpO_T> zaaw<3UXa+WAc?XdPZG#eXro`wUMJqk7+vq=B9fDCpTAR_k z8&Vx&Ae0Z`X*wT4XuCoTpPAwLBc0hF&6`!Hxj!{u$c+Gqn2yw5t*N8@);_%5SePuuie% z#G6UFlWo&@La1pk zBa>8RZo_2Pf=v?R7s-AIFX3hSyPksf3K4h<@6gIc3dtw_=rbDel`ru%?Tgar8+?cF GvGQL%=?G&0 literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/model/Loan.class b/out/production/s16-Challenge/com/librarysystem/model/Loan.class new file mode 100644 index 0000000000000000000000000000000000000000..1ae5cf2189d2a4bfb667de736d47f42567b4be09 GIT binary patch literal 905 zcmaJ<+iuf96r8owxN)2`NlSs!8*M>}LHGj#RHBF{i#`-0^>H0mty3qK90#d?1rkvu zkoW*T3NgFRLur$|?AhIOX3m`1{qy(dZvb!b+=T_(LCM1k$^wmn{3?S)jxK`JXrTJJ zK>2k%iu1PucDvK7U=!$^>@9 zMP;9v?`qDvhcz^ah|=_G8R8xDT?Z|Jx{*4`<0N=5bLFB5TT?you!)BPs|hve45teJ zuk8vPx0j1rm^A`AJxV>{qylSUJW?Mg!$@VHWR&ox6{dZe^kf$6^X#&eU&iBQgK5X8 z%ehdwc12*n-B~EY_*N8aJb)JYBNVX58{`Ap93oIR48iYW^=Y&u_3k#m0Ao-Qv1Q z9N?0niVC^wsF9;eru?PUl=CWxB ky`o@7NZUACA^A4Ab{E{53qHW%9Pq|n@cLZvknIACNo$j!L8>qObdbkOXVSALuK_o-P)me6yzcwzcr08r7#gN-mdhx3%d_b~*BVDTi9Tzg{e~MXE8oZ)6N(JT&y`oP18 zGR=NE;?a;Rsm~WlC!b2PyK}7r-7nHFO+@~Vde-iAmt`4Tx;~N zDIsjyxBPQ3|JfX_|9p;`{{!{ob2R5@eKokdv~Ca%#O@Gp1vRYEw@E77lzmXJ;2w79 zM0~~tGm-XTk=}i(DpUj7^9E=lP3 VURG``g4-*=McW>enT3vdrXEeNUhK#Jt3$ zoK$uO7Dfhvti-ZJ{hY+SbbbG%tkmQZMh1=?paQ4-{A@-Bdkr5W(y49q|;FfcFy-Nnkl R#sG33JBS9#aDc=aI02tlK#l+a literal 0 HcmV?d00001 diff --git a/out/production/s16-Challenge/com/librarysystem/service/LibraryService.class b/out/production/s16-Challenge/com/librarysystem/service/LibraryService.class new file mode 100644 index 0000000000000000000000000000000000000000..4b9506c48172f7bd972b98f7e30436b1db64ecb2 GIT binary patch literal 852 zcma))+fLg+5QhIr0w%5@flw&N5X40i5PpF4AQg!#t6T(fZ<`f0bz;eJBIU7=pq04b z0eC3Xe;ro{h()#1YUl8Ov$M00PxlW1zF^-(0Yw8P3v-wkRIlB!YlrUO%0Bb1m7fUa zKL>*#`6?(jTfH(CP&Qy%_y9}L^rOBV243vOli_5TsJ=Z^@i_36?M%JhsVOkBG(p38 ztLjIWD*UJEm{>x^K-I!BRs{8T@&yZFDsFnKI+0| ztddcjfe-S*S+7(JN+)bZP;r8R`Z4NzDn56;ke(GM^4+lK#(}moXDRs^3q?n}&N1SKlV)NasPn`UDZTeNgkQ-zE3&X^8$sj__w y book.getId().equals(id)); // getBooks() metodu kullanıldı - System.out.println("Book deleted."); - } -} \ No newline at end of file diff --git a/src/ILoanable.java b/src/ILoanable.java deleted file mode 100644 index 1a7bb5a7..00000000 --- a/src/ILoanable.java +++ /dev/null @@ -1,4 +0,0 @@ -interface ILoanable { - void loanBook(User user, Book book); - void returnBook(User user, Book book); -} \ No newline at end of file diff --git a/src/Library.java b/src/Library.java deleted file mode 100644 index 443939ea..00000000 --- a/src/Library.java +++ /dev/null @@ -1,70 +0,0 @@ -import java.util.ArrayList; -import java.util.List; - -class Library implements ILoanable { - protected List books; // protected olarak değiştirildi - private List users; - private List loans; - - public Library() { - this.books = new ArrayList<>(); - this.users = new ArrayList<>(); - this.loans = new ArrayList<>(); - } - - public void addBook(Book book) { - books.add(book); - } - - public void addUser (User user) { - users.add(user); - } - - public List getBooks() { // Erişim için bir metot ekledik - return books; - } - - @Override - public void loanBook(User user, Book book) { - if (book.isAvailable() && user.getBorrowedBooks().size() < 5) { - book.setAvailable(false); - user.getBorrowedBooks().add(book); - loans.add(new Loan(user, book)); - System.out.println("Book loaned: " + book.getTitle()); - } else { - System.out.println("Book is not available or user has reached the limit."); - } - } - - @Override - public void returnBook(User user, Book book) { - if (user.getBorrowedBooks().contains(book)) { - book.setAvailable(true); - user.getBorrowedBooks().remove(book); - loans.removeIf(loan -> loan.getUser ().equals(user) && loan.getBook().equals(book)); - System.out.println("Book returned: " + book.getTitle()); - } else { - System.out.println("This book was not borrowed by the user."); - } - } - - public List listBooksByCategory(Category category) { - List categorizedBooks = new ArrayList<>(); - for (Book book : books) { - if (book.getCategory().equals(category)) { - categorizedBooks.add(book); - } - } - return categorizedBooks; - } - - public List listBooksByAuthor(Author author) { - List authoredBooks = new ArrayList<>(); - for (Book book : books) { - if (book.getAuthor().equals(author)) { - authoredBooks.add(book); - } - } - return authoredBooks; - } -} \ No newline at end of file diff --git a/src/LibrarySystem.java b/src/LibrarySystem.java deleted file mode 100644 index a0cac952..00000000 --- a/src/LibrarySystem.java +++ /dev/null @@ -1,12 +0,0 @@ -import java.util.Scanner; - -public class LibrarySystem { - public static void main(String[] args) { - /** Library library = new Library(); - BookManager bookManager = new BookManager(library); - UserManager userManager = new UserManager(library); - - Scanner scanner = new Scanner(System.in); - **/ - } -} diff --git a/src/UserManager.java b/src/UserManager.java deleted file mode 100644 index 9bcc0a8b..00000000 --- a/src/UserManager.java +++ /dev/null @@ -1,12 +0,0 @@ -class UserManager { - private Library library; - - public UserManager(Library library) { - this.library = library; - } - - public void registerUser (User user) { - library.addUser (user); - System.out.println("User registered: " + user.getName()); - } -} \ No newline at end of file diff --git a/src/com/librarysystem/main/LibrarySystem.java b/src/com/librarysystem/main/LibrarySystem.java new file mode 100644 index 00000000..8be87e23 --- /dev/null +++ b/src/com/librarysystem/main/LibrarySystem.java @@ -0,0 +1,25 @@ +package com.librarysystem.main; + +import com.librarysystem.model.*; +import com.librarysystem.manager.*; +import com.librarysystem.service.*; + +public class LibrarySystem { + public static void main(String[] args) { + Library library = new Library(); + BookManager bookManager = new BookManager(library); + UserManager userManager = new UserManager(library); + LibraryService libraryService = new LibraryService(library); + + Author author = new Author("George Orwell"); + Category category = new Category("Dystopian"); + Book book = new Book("1", "1984", author, category); + bookManager.addBook(book); + + User user = new User("1", "Alice"); + userManager.addUser (user); + + libraryService.loanBook(user, book); + + } +} \ No newline at end of file diff --git a/src/com/librarysystem/manager/BookManager.java b/src/com/librarysystem/manager/BookManager.java new file mode 100644 index 00000000..678b35c2 --- /dev/null +++ b/src/com/librarysystem/manager/BookManager.java @@ -0,0 +1,16 @@ +package com.librarysystem.manager; + +import com.librarysystem.model.Book; +import com.librarysystem.model.Library; + +public class BookManager { + private Library library; + + public BookManager(Library library) { + this.library = library; + } + + public void addBook(Book book) { + library.addBook(book); + } +} \ No newline at end of file diff --git a/src/com/librarysystem/manager/UserManager.java b/src/com/librarysystem/manager/UserManager.java new file mode 100644 index 00000000..11193169 --- /dev/null +++ b/src/com/librarysystem/manager/UserManager.java @@ -0,0 +1,16 @@ +package com.librarysystem.manager; + +import com.librarysystem.model.User; +import com.librarysystem.model.Library; + +public class UserManager { + private Library library; + + public UserManager(Library library) { + this.library = library; + } + + public void addUser (User user) { + library.addUser (user); + } +} \ No newline at end of file diff --git a/src/Author.java b/src/com/librarysystem/model/Author.java similarity index 73% rename from src/Author.java rename to src/com/librarysystem/model/Author.java index 2c5e7ad4..d6157358 100644 --- a/src/Author.java +++ b/src/com/librarysystem/model/Author.java @@ -1,4 +1,6 @@ -class Author { +package com.librarysystem.model; + +public class Author { private String name; public Author(String name) { diff --git a/src/Book.java b/src/com/librarysystem/model/Book.java similarity index 85% rename from src/Book.java rename to src/com/librarysystem/model/Book.java index fbe0297f..f32ba921 100644 --- a/src/Book.java +++ b/src/com/librarysystem/model/Book.java @@ -1,4 +1,6 @@ -class Book { +package com.librarysystem.model; + +public class Book { private String id; private String title; private Author author; @@ -20,9 +22,5 @@ public Book(String id, String title, Author author, Category category) { public Category getCategory() { return category; } public boolean isAvailable() { return isAvailable; } public void setAvailable(boolean available) { isAvailable = available; } - - // setTitle metodu eklendi - public void setTitle(String title) { - this.title = title; - } + public void setTitle(String title) { this.title = title; } } \ No newline at end of file diff --git a/src/Category.java b/src/com/librarysystem/model/Category.java similarity index 72% rename from src/Category.java rename to src/com/librarysystem/model/Category.java index 22ed9f09..74903663 100644 --- a/src/Category.java +++ b/src/com/librarysystem/model/Category.java @@ -1,4 +1,6 @@ -class Category { +package com.librarysystem.model; + +public class Category { private String name; public Category(String name) { diff --git a/src/Invoice.java b/src/com/librarysystem/model/Invoice.java similarity index 83% rename from src/Invoice.java rename to src/com/librarysystem/model/Invoice.java index 1d9a877b..3de8e4ab 100644 --- a/src/Invoice.java +++ b/src/com/librarysystem/model/Invoice.java @@ -1,4 +1,6 @@ -class Invoice { +package com.librarysystem.model; + +public class Invoice { private User user; private Book book; private double amount; diff --git a/src/com/librarysystem/model/Library.java b/src/com/librarysystem/model/Library.java new file mode 100644 index 00000000..8b91a8c5 --- /dev/null +++ b/src/com/librarysystem/model/Library.java @@ -0,0 +1,56 @@ +package com.librarysystem.model; + +import com.librarysystem.service.ILoanable; + +import java.util.ArrayList; +import java.util.List; + +public class Library implements ILoanable { + private List books; + private List users; + private List loans; + + public Library() { + this.books = new ArrayList<>(); + this.users = new ArrayList<>(); + this.loans = new ArrayList<>(); + } + + public void addBook(Book book) { + books.add(book); + } + + public void addUser (User user) { + users.add(user); + } + + public List getBooks() { + return books; + } + + public List getUsers() { + return users; + } + + @Override + public void loanBook(User user, Book book) { + if (book.isAvailable()) { + book.setAvailable(false); + loans.add(new Loan(user, book)); + System.out.println(user.getName() + " has borrowed " + book.getTitle()); + } else { + System.out.println("The book is not available."); + } + } + + @Override + public void returnBook(User user, Book book) { + if (loans.stream().anyMatch(loan -> loan.getUser ().equals(user) && loan.getBook().equals(book))) { + book.setAvailable(true); + loans.removeIf(loan -> loan.getUser ().equals(user) && loan.getBook().equals(book)); + System.out.println(user.getName() + " has returned " + book.getTitle()); + } else { + System.out.println("This book was not borrowed by the user."); + } + } +} \ No newline at end of file diff --git a/src/Loan.java b/src/com/librarysystem/model/Loan.java similarity index 87% rename from src/Loan.java rename to src/com/librarysystem/model/Loan.java index b973b268..4515c5f7 100644 --- a/src/Loan.java +++ b/src/com/librarysystem/model/Loan.java @@ -1,6 +1,8 @@ +package com.librarysystem.model; + import java.util.Date; -class Loan { +public class Loan { private User user; private Book book; private Date loanDate; diff --git a/src/User.java b/src/com/librarysystem/model/User.java similarity index 89% rename from src/User.java rename to src/com/librarysystem/model/User.java index e09d3f35..8221f611 100644 --- a/src/User.java +++ b/src/com/librarysystem/model/User.java @@ -1,7 +1,9 @@ +package com.librarysystem.model; + import java.util.HashSet; import java.util.Set; -class User { +public class User { private String id; private String name; private Set borrowedBooks; diff --git a/src/com/librarysystem/service/ILoanable.java b/src/com/librarysystem/service/ILoanable.java new file mode 100644 index 00000000..4d4834f1 --- /dev/null +++ b/src/com/librarysystem/service/ILoanable.java @@ -0,0 +1,9 @@ +package com.librarysystem.service; + +import com.librarysystem.model.User; +import com.librarysystem.model.Book; + +public interface ILoanable { + void loanBook(User user, Book book); + void returnBook(User user, Book book); +} \ No newline at end of file diff --git a/src/com/librarysystem/service/LibraryService.java b/src/com/librarysystem/service/LibraryService.java new file mode 100644 index 00000000..9c62931f --- /dev/null +++ b/src/com/librarysystem/service/LibraryService.java @@ -0,0 +1,21 @@ +package com.librarysystem.service; + +import com.librarysystem.model.Library; +import com.librarysystem.model.User; +import com.librarysystem.model.Book; + +public class LibraryService { + private Library library; + + public LibraryService(Library library) { + this.library = library; + } + + public void loanBook(User user, Book book) { + library.loanBook(user, book); + } + + public void returnBook(User user, Book book) { + library.returnBook(user, book); + } +} \ No newline at end of file