package edu.learn.spring.dependencyinjection.vanilla; import java.util.List; public class OrderProcessor { private final List warehouses; private final CustomerWallet customerWallet; public OrderProcessor(List warehouses, CustomerWallet customerWallet) { this.warehouses = warehouses; this.customerWallet = customerWallet; } public void process(CustomerOrder order) { warehouses.stream() .filter(warehouse -> warehouse.isInStock(order.getItemId())) .findFirst() .ifPresent(warehouse -> { customerWallet.chargeCustomer(order.getCustomerId(), order.getItemId()); warehouse.dispatchOrder(order.getCustomerId(), order.getItemId()); }); } }