Hendrik Jungnitsch
2023-09-18 be053d7d5140b267dfc252d1c82161b6f9a593ca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package de.gedoplan.seminar.sbt.di.exercise.service;
 
import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
import de.gedoplan.seminar.sbt.di.exercise.exception.OutOfStockException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
 
import static java.util.function.Predicate.not;
 
@Component
public class CocktailSelectChecker {
 
    @Autowired
    IngredientService ingredientService;
 
    @EventListener
    public void select(Cocktail cocktail) {
        ingredientService.beveragesNotAvailable(cocktail)
                        .stream().findFirst().ifPresent(beverage -> {
                    throw new OutOfStockException(beverage);
                });
    }
}