Skip to content
Snippets Groups Projects
Ingredient.java 1.45 KiB
Newer Older
package mi.hdm.recipes;

import mi.hdm.exceptions.InvalidIngredientException;

public class Ingredient implements RecipeComponent {
Karsch Lukas's avatar
Karsch Lukas committed
    private final Measurement unit;
    private final String name;
    private final NutritionTable nutritionTable;
Karsch Lukas's avatar
Karsch Lukas committed

    public Ingredient(Measurement unit, String name, NutritionTable nutritionTable) {
        if (name == null || name.equals("")) {
            throw new InvalidIngredientException("Can not add ingredient with name " + name);
        }
        if (nutritionTable == null) {
            throw new InvalidIngredientException("Can not add ingredient without Nutrition Table");
        }

        this.unit = unit;
        this.name = name;
        this.nutritionTable = nutritionTable;
    }
    public NutritionTable getNutritionTable() {
        return nutritionTable;

    @Override
    public Measurement getMeasurement() {
        return unit;
    }

    @Override
    public boolean equals(Object o) {
        if (o instanceof Ingredient in) {
            return this.name.equals(in.getName()) && this.unit.equals(in.getMeasurement()) && this.nutritionTable.equals(in.getNutritionTable());
        }
        return false;
    }

    @Override
    public String toString() {
        return "Ingredient{" +
                "unit=" + unit +
                ", name='" + name + '\'' +
                ", nutritionTable=" + nutritionTable +
                '}';
    }