Sequence Diagram
===
**Search Book: Use Case**
**- Main scenario -**
The Customer specifies an author on the Search Page and then presses the Search button.
The system validates the Customer's search criteria.
if author is entered, the System searches the Catalog for books associated with the specified author.
When the search is complete, the system displays the search results on the Search Results page.
**- Alternate path -**
if the Customer did not enter the name of an author before pressing the Search button, the System displays an error message
```mermaid
sequenceDiagram
participant Customer
participant Search Page
participant Search Results Page
participant Catalog
participant Search Results
activate Customer
Customer ->> Search Page: 1: onSearch(author)
activate Search Page
Search Page ->> Search Page: 1.1: validateSearchCriteria()
alt author entered
Search Page ->> Catalog: 1.2: searchByAuthor(author)
activate Catalog
Catalog ->> Search Results: 1.2.1: create()
activate Search Results
Search Results ->> Search Results Page: 1.2.1.1: display()
activate Search Results Page
deactivate Search Results Page
deactivate Search Results
else author not entered
deactivate Catalog
Search Page ->> Search Page: 1.3: displayErrorMessage()
end
deactivate Search Page
deactivate Customer
```