package mi.hdm.recipes; import mi.hdm.exceptions.InvalidRecipeException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.List; import java.util.Optional; public class RecipeManager { private final List<Recipe> recipes; private final CategoryManager categories; private final IngredientManager ingredients; private final NutritionCalculator nutritionCalculator; private static final Logger log = LogManager.getLogger(RecipeManager.class); public RecipeManager(List<Recipe> recipes, CategoryManager categories, IngredientManager ingredients, NutritionCalculator nutritionCalculator) { this.recipes = recipes; this.categories = categories; this.ingredients = ingredients; this.nutritionCalculator = nutritionCalculator; } public void addRecipe(Recipe recipe){ if (getRecipeByName(recipe.getName()).isEmpty()) { recipes.add(recipe); } else { throw new InvalidRecipeException("Recipe name already exists"); } } public Recipe deleteRecipe(int i) { return recipes.remove(i); } public boolean deleteRecipe(String name) { Recipe r = getRecipeByName(name).orElseThrow(); return recipes.remove(r); } private Optional<Recipe> getRecipeByName(String name) { for (final Recipe r : recipes) { if (name.equals(r.getName())) { return Optional.of(r); } } return Optional.empty(); } }