Skip to the content.
package com.bookshop.behavioral.observer;

import com.bookshop.domain.Book;
import java.util.ArrayList;
import java.util.List;

/** One concrete observer: queues back-in-stock emails. */
public class EmailAlerts implements StockListener {

    private final List<String> outbox = new ArrayList<>();

    @Override
    public void onBackInStock(Book book) {
        outbox.add("To waitlist: \"" + book.title() + "\" is back in stock!");
    }

    public List<String> outbox() {
        return List.copyOf(outbox);
    }
}

Raw file