From 8238efc356b12258fdd5b2a7a13c82f984498811 Mon Sep 17 00:00:00 2001 From: Lara Blersch <lb210@hdm-stuttgart.de> Date: Wed, 3 May 2023 14:06:31 +0200 Subject: [PATCH] started to implement ShoppingList --- src/main/java/mi/hdm/mealPlan/MealPlan.java | 1 + .../mi/hdm/shoppingList/ShoppingList.java | 31 +++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/mi/hdm/mealPlan/MealPlan.java b/src/main/java/mi/hdm/mealPlan/MealPlan.java index bf805f6..29ab90f 100644 --- a/src/main/java/mi/hdm/mealPlan/MealPlan.java +++ b/src/main/java/mi/hdm/mealPlan/MealPlan.java @@ -7,6 +7,7 @@ import mi.hdm.recipes.Recipe; * Allow the user to create a meal plan for the week. The user can check out his nutrition scores for the week. */ public class MealPlan { + //TODO: implement class< private static final MealPlan mealPlan = new MealPlan(); public static MealPlan getInstance() { diff --git a/src/main/java/mi/hdm/shoppingList/ShoppingList.java b/src/main/java/mi/hdm/shoppingList/ShoppingList.java index 187fb3f..3f34656 100644 --- a/src/main/java/mi/hdm/shoppingList/ShoppingList.java +++ b/src/main/java/mi/hdm/shoppingList/ShoppingList.java @@ -1,15 +1,23 @@ package mi.hdm.shoppingList; +import mi.hdm.exceptions.InvalidIngredientException; import mi.hdm.recipes.Ingredient; +import mi.hdm.recipes.IngredientManager; +import mi.hdm.recipes.NutritionCalculator; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.util.HashMap; import java.util.Map; +import java.util.Optional; /** * Shopping list that the user can add ingredients to. The elements on the list can be marked as done or undone. */ public class ShoppingList { //TODO: implement class + + private static final Logger log = LogManager.getLogger(ShoppingList.class); private final Map<Ingredient, Boolean> list; private static final ShoppingList shoppingList = new ShoppingList(); @@ -22,13 +30,32 @@ public class ShoppingList { return shoppingList; } - public void clear() {} + public void clear() { + list.clear(); + log.info("ShoppingList cleared successfully."); + } - public void markDone(int id) {} + public void markDone(Ingredient in) { + list.put(in, true); + log.info("Ingredient {} marked as done", in); + } + public void markDone(String name){ + Ingredient in = getIngredientByName(name).orElseThrow(() -> new InvalidIngredientException("No ingredient with name " + name));; + markDone(in); + } public void markUndone(int id) {} public Map<Ingredient, Boolean> getList() { return list; } + + private Optional<Ingredient> getIngredientByName(String name) { + for (final Ingredient i : list.keySet()) { + if (name.equals(i.getName())) { + return Optional.of(i); + } + } + return Optional.empty(); + } } -- GitLab