package observer; /** Updates portfolio value whenever a held stock changes price */ public class PortfolioObserver implements StockObserver { private final String ownerName; private final int sharesHeld; public PortfolioObserver(String ownerName, int sharesHeld) { this.ownerName = ownerName; this.sharesHeld = sharesHeld; } @Override public void onPriceChanged(String ticker, double oldPrice, double newPrice) { double gain = (newPrice - oldPrice) * sharesHeld; System.out.printf(" [Portfolio:%s] %s×%d P&L change: %+.2f%n", ownerName, ticker, sharesHeld, gain); } }