From fb4334efb5fe92f451f5263f7455bf59de583bba Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 20 May 2025 16:03:41 +0330 Subject: [PATCH 1/5] Library is finished(without getBooksByCategor function --- src/model/Library.java | 138 +++++++++++++++++++++++++++++------------ 1 file changed, 99 insertions(+), 39 deletions(-) diff --git a/src/model/Library.java b/src/model/Library.java index 29f2c60..6736c05 100644 --- a/src/model/Library.java +++ b/src/model/Library.java @@ -1,5 +1,7 @@ package model; - +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; public class Library { @@ -7,74 +9,132 @@ public class Library { private List students; private List categories; private List loans; +//Constructor + public Library(){ + books=new ArrayList<>(); + students=new ArrayList<>(); + categories=new ArrayList<>(); + loans=new ArrayList<>(); + } public void addBook(Book book) { - // TODO: Implement method 'addBook'. - throw new UnsupportedOperationException("Unimplemented method 'addBook'"); + books.add(book); } public void removeBook(String isbn) { - // TODO: Implement method 'removeBook'. - throw new UnsupportedOperationException("Unimplemented method 'removeBook'"); + for (Book book : books) { + if(book.getIsbn().equals(isbn)){ + books.remove(book); + } + } } - public void searchBookByTitle(String title) { - // TODO: Implement method 'searchBookByTitle'. - throw new UnsupportedOperationException("Unimplemented method 'searchBookByTitle'"); + public Book searchBookByTitle(String title) { + for(Book book : books){ + if(book.getTitle().equals(title)){ + return book; + } + } + return null; } - public void searchBookByISBN(String isbn) { - // TODO: Implement method 'searchBookByISBN'. - throw new UnsupportedOperationException("Unimplemented method 'searchBookByISBN'"); + public Book searchBookByISBN(String isbn) { + for(Book book : books){ + if(book.getTitle().equals(isbn)){ + return book; + } + } + return null; } - public void getAvailableBooks() { - // TODO: Implement method 'getAvailableBooks'. - throw new UnsupportedOperationException("Unimplemented method 'getAvailableBooks'"); + public List getAvailableBooks() { + List AvailableBooks=new ArrayList<>(); + for(Book book : books){ + if(!book.getIsBorrowed()){ + AvailableBooks.add(book); + } + } + return AvailableBooks; } public void addStudent(Student student) { - // TODO: Implement method 'addStudent'. - throw new UnsupportedOperationException("Unimplemented method 'addStudent'"); + students.add(student); } public void removeStudent(String studentId) { - // TODO: Implement method 'removeStudent'. - throw new UnsupportedOperationException("Unimplemented method 'removeStudent'"); + for(Student student : students){ + if(student.getStudentId().equals(studentId)){ + students.remove(student); + } + } } - public void searchStudentById(String studentId) { - // TODO: Implement method 'searchStudentById'. - throw new UnsupportedOperationException("Unimplemented method 'searchStudentById'"); + public Student searchStudentById(String studentId) { + for(Student student : students){ + if(student.getStudentId().equals(studentId)){ + return student; + } + } + return null; } - public void getAllStudents() { - // TODO: Implement method 'getAllStudents'. - throw new UnsupportedOperationException("Unimplemented method 'getAllStudents'"); + public List getAllStudents() { + return students; } - public void borrowBook(Book book, Student student) { - // TODO: Implement method 'borrowBook'. - throw new UnsupportedOperationException("Unimplemented method 'borrowBook'"); + public boolean borrowBook(Book book, Student student) { + if(book.getIsBorrowed()){ + return false; + } + + Date loanDate=new Date(); + Calendar calendar= Calendar.getInstance(); + calendar.setTime(loanDate); + calendar.add(Calendar.DAY_OF_MONTH,10); + Date dueDate = calendar.getTime(); + book.borrowBook(); + Loan loan=new Loan(book,student,loanDate,dueDate); + loans.add(loan); + return true; } - public void returnBook(Book book) { - // TODO: Implement method 'returnBook'. - throw new UnsupportedOperationException("Unimplemented method 'returnBook'"); - } - public void getBorrowedBooksByStudent(String studentId) { - // TODO: Implement method 'getBorrowedBooksByStudent'. - throw new UnsupportedOperationException("Unimplemented method 'getBorrowedBooksByStudent'"); + public boolean returnBook(Book book) { + for(Loan loan :loans){ + if(loan.getBook().equals(book)){ + loans.remove(loan); + return true; + } + } + return false; } - public void getBooksByCategory(String categoryName) { - // TODO: Implement method 'getBooksByCategory'. - throw new UnsupportedOperationException("Unimplemented method 'getBooksByCategory'"); + public Book getBorrowedBooksByStudent(String studentId) { + for(Loan loan : loans){ + if(loan.getStudent().studentId.equals(studentId)){ + return loan.getBook(); + } + } + return null; } - public void getStudentsByMajor(String major) { - // TODO: Implement method 'getStudentsByMajor'. + public void getBooksByCategory(String categoryName) { + /*for(Category category : categories){ + if(category.getName().equals(categoryName)){ + + } + } */ + // TODO: Implement method 'getStudentsByMajor'. throw new UnsupportedOperationException("Unimplemented method 'getStudentsByMajor'"); + + } + + public Student getStudentsByMajor(String major) { + for(Student student :students){ + if(student.getMajor().equals(major)){ + return student; + } + } + return null; } } From 0852d93b91c19ffc1bbcb5ec0333c9119ee6f5cd Mon Sep 17 00:00:00 2001 From: mh <157417087+fndrmh@users.noreply.github.com> Date: Tue, 20 May 2025 16:42:35 +0330 Subject: [PATCH 2/5] Update src/model/Library.java Co-authored-by: Reza <108628946+rzr8i@users.noreply.github.com> --- src/model/Library.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/model/Library.java b/src/model/Library.java index 6736c05..6135d14 100644 --- a/src/model/Library.java +++ b/src/model/Library.java @@ -103,6 +103,7 @@ public boolean returnBook(Book book) { for(Loan loan :loans){ if(loan.getBook().equals(book)){ loans.remove(loan); + loan.getBook().returnBook(); return true; } } From 4bf567a89e415cbb6ea934e6656999187df0bc1d Mon Sep 17 00:00:00 2001 From: mh <157417087+fndrmh@users.noreply.github.com> Date: Tue, 20 May 2025 16:42:45 +0330 Subject: [PATCH 3/5] Update src/model/Library.java Co-authored-by: Reza <108628946+rzr8i@users.noreply.github.com> --- src/model/Library.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/model/Library.java b/src/model/Library.java index 6135d14..a3e7e93 100644 --- a/src/model/Library.java +++ b/src/model/Library.java @@ -110,7 +110,7 @@ public boolean returnBook(Book book) { return false; } - public Book getBorrowedBooksByStudent(String studentId) { + public List getBorrowedBooksByStudent(String studentId) { for(Loan loan : loans){ if(loan.getStudent().studentId.equals(studentId)){ return loan.getBook(); From cdec9c810b3a843fb25976d7d8bc6115e1b5ef7e Mon Sep 17 00:00:00 2001 From: mh <157417087+fndrmh@users.noreply.github.com> Date: Tue, 20 May 2025 16:42:51 +0330 Subject: [PATCH 4/5] Update src/model/Library.java Co-authored-by: Reza <108628946+rzr8i@users.noreply.github.com> --- src/model/Library.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/model/Library.java b/src/model/Library.java index a3e7e93..dc1ad88 100644 --- a/src/model/Library.java +++ b/src/model/Library.java @@ -130,7 +130,7 @@ public void getBooksByCategory(String categoryName) { } - public Student getStudentsByMajor(String major) { + public List getStudentsByMajor(String major) { for(Student student :students){ if(student.getMajor().equals(major)){ return student; From c208af3723a36122b7ca534e428159da52e16809 Mon Sep 17 00:00:00 2001 From: mh Date: Wed, 21 May 2025 20:24:52 +0330 Subject: [PATCH 5/5] Library fixed (try 2) --- src/model/Library.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/model/Library.java b/src/model/Library.java index dc1ad88..867f4f6 100644 --- a/src/model/Library.java +++ b/src/model/Library.java @@ -40,7 +40,7 @@ public Book searchBookByTitle(String title) { public Book searchBookByISBN(String isbn) { for(Book book : books){ - if(book.getTitle().equals(isbn)){ + if(book.getIsbn().equals(isbn)){ return book; } } @@ -111,12 +111,13 @@ public boolean returnBook(Book book) { } public List getBorrowedBooksByStudent(String studentId) { + List borrowedBooks=new ArrayList<>(); for(Loan loan : loans){ if(loan.getStudent().studentId.equals(studentId)){ - return loan.getBook(); + borrowedBooks.add(loan.getBook()); } } - return null; + return borrowedBooks; } public void getBooksByCategory(String categoryName) { @@ -131,11 +132,12 @@ public void getBooksByCategory(String categoryName) { } public List getStudentsByMajor(String major) { + List studentsByMajor=new ArrayList<>(); for(Student student :students){ if(student.getMajor().equals(major)){ - return student; + studentsByMajor.add(student); } } - return null; + return studentsByMajor; } }