diff --git a/src/main/java/mi/hdm/mealPlan/MealPlan.java b/src/main/java/mi/hdm/mealPlan/MealPlan.java index bf805f6a6c3b8a5b365b43c47434376efe2688c8..29ab90f07a747aa2b1f2eb59afeead8a14ffc0fb 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 187fb3f05b176a19bfe924b9bcfa0e93023cb771..3f34656a9a58045a61106ee3dba4c2446f600a4f 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(); + } }