diff --git a/commons/src/main/java/commons/FormalIngredient.java b/commons/src/main/java/commons/FormalIngredient.java index 88d713a..317a7d9 100644 --- a/commons/src/main/java/commons/FormalIngredient.java +++ b/commons/src/main/java/commons/FormalIngredient.java @@ -76,4 +76,15 @@ public class FormalIngredient extends RecipeIngredient implements Scalable throw new IllegalStateException("Unexpected value: " + ri); }).toList(); return new Recipe(recipe.getId(), recipe.getName(), recipe.getLocale(), i, recipe.getPreparationSteps()); - + } + public double kcal() { + final double PER = 100; // Gram + return + this.ingredients.stream().mapToDouble(RecipeIngredient::kcal).sum() / + this.ingredients.stream().mapToDouble(RecipeIngredient::amount).sum() * PER; } } \ No newline at end of file diff --git a/commons/src/main/java/commons/RecipeIngredient.java b/commons/src/main/java/commons/RecipeIngredient.java index 33d9b75..d228a70 100644 --- a/commons/src/main/java/commons/RecipeIngredient.java +++ b/commons/src/main/java/commons/RecipeIngredient.java @@ -92,4 +92,6 @@ public abstract class RecipeIngredient { public int hashCode() { return Objects.hash(id, ingredient); } + public abstract double kcal(); + public abstract double amount(); } diff --git a/commons/src/main/java/commons/VagueIngredient.java b/commons/src/main/java/commons/VagueIngredient.java index efa2fc3..0d3056f 100644 --- a/commons/src/main/java/commons/VagueIngredient.java +++ b/commons/src/main/java/commons/VagueIngredient.java @@ -50,4 +50,13 @@ public class VagueIngredient extends RecipeIngredient { public int hashCode() { return Objects.hashCode(description); } + + @Override + public double kcal() { + return 0; + } + @Override + public double amount() { + return 0; + } }