forked from code-differently/code-differently-24-q1
/
Librarian.java
23 lines (19 loc) · 771 Bytes
/
Librarian.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.codedifferently.lesson10.library;
import com.codedifferently.lesson10.library.exceptions.BookCheckedOutException;
public class Librarian {
public void checkOutBook(Book book, Patron patron) throws BookCheckedOutException {
if (book.isCheckedOut()) {
throw new BookCheckedOutException("Book is already checked out.");
}
book.setLibrary(null);
book.setLibrary(patron.getLibrary());
patron.getLibrary().checkOutBook(book, patron);
}
public void checkInBook(Book book, Patron patron) throws BookCheckedOutException {
if (!patron.getLibrary().isCheckedOut(book)) {
throw new BookCheckedOutException("Book is not checked out.");
}
patron.getLibrary().checkInBook(book, patron);
book.setLibrary(null);
}
}