@Override public boolean checkoutBook(String memberId, String isbn) throws LibrarySystemException { Book currentBook = searchBook(isbn); BookCopy[] book = currentBook.getCopies(); for (BookCopy bc : book) { if (computeStatus(bc)) { DataAccessFacade dc = new DataAccessFacade(); LocalDate currentDate = LocalDate.now(); LocalDate dueDate = currentDate.plusDays(bc.getBook().getMaxCheckoutLength()); CheckoutRecordEntry newCheckoutRecordEntry = new CheckoutRecordEntry(currentDate, dueDate, bc); LibraryMember member = search(memberId); CheckoutRecord rc = member.getCheckoutRecord(); if (rc.getCheckoutRecordEntries() == null) { List<CheckoutRecordEntry> entries = new ArrayList<>(); entries.add(newCheckoutRecordEntry); member.getCheckoutRecord().setCheckoutRecordEntries(entries); } else { member.getCheckoutRecord().getCheckoutRecordEntries().add(newCheckoutRecordEntry); } bc.changeAvailability(); dc.updateMember(member); dc.saveNewBook(currentBook); return true; } } return false; }