| 1234567891011121314151617181920212223242526272829303132333435 |
- package org.leumasjaffe.recipe.model;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Optional;
- import java.util.stream.Stream;
- import org.leumasjaffe.observer.Observable;
- import lombok.Data;
- import lombok.EqualsAndHashCode;
- import lombok.NonNull;
- @Data @EqualsAndHashCode(callSuper=false)
- public class Phase extends Observable.Instance implements CompoundRecipeComponent {
- int id = 0; // TODO Fix this
- int[] dependsOn = {}; // decltype(id)[]
- String vessel = "";
- Optional<Preparation> preparation = Optional.empty();
- List<Step> cooking = new ArrayList<>();
- Optional<Rest> rest = Optional.empty();
-
- public Stream<Ingredient> getIngredientsAsStream() {
- return cooking.stream().flatMap(RecipeComponent::getIngredientsAsStream);
- }
-
- // TODO Include Rest and Preparation
- public Stream<? extends RecipeComponent> getComponents() {
- return cooking.stream();
- }
-
- public void setPreparation(final @NonNull Preparation p) {
- preparation = Optional.of(new Preparation(p.duration, this::getIngredients));
- }
- }
|