Hendrik Jungnitsch
2022-09-28 6e6d835460000277b0a860f83a0419acec1b5d74
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package de.gedoplan.seminar.sbt.di.exercise.service;
 
import de.gedoplan.seminar.sbt.di.exercise.domain.Beverage;
import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail;
import de.gedoplan.seminar.sbt.di.exercise.exception.OutOfStockException;
import org.springframework.stereotype.Component;
 
import java.util.List;
import java.util.Map;
 
import static java.util.function.Predicate.not;
 
@Component
public class IngredientService {
 
  public List<Beverage> beveragesNotAvailable(Cocktail cocktail) {
    return cocktail.getIngredients().entrySet().stream()
            .filter(not(e -> isAvailable(e.getKey(), e.getValue())))
            .map(Map.Entry::getKey)
            .toList();
  }
 
  public boolean isAvailable(Beverage beverage, double amount) {
    // Dummy check: Anything but rum is available
    return !"RUM".equals(beverage.getId());
  }
}