Preparation.java 775 B

123456789101112131415161718192021222324252627
  1. package org.leumasjaffe.recipe.model;
  2. import java.util.Collection;
  3. import java.util.Collections;
  4. import java.util.List;
  5. import java.util.function.Supplier;
  6. import java.util.stream.Collectors;
  7. import org.leumasjaffe.observer.Observable;
  8. import com.fasterxml.jackson.annotation.JsonIgnore;
  9. import lombok.AllArgsConstructor;
  10. import lombok.Data;
  11. import lombok.NoArgsConstructor;
  12. @Data @AllArgsConstructor @NoArgsConstructor
  13. public class Preparation extends Observable.Instance implements RecipeComponent {
  14. Duration duration;
  15. @JsonIgnore Supplier<Collection<Ingredient>> producer = Collections::emptyList;
  16. @JsonIgnore
  17. public List<Ingredient> getIngredients() {
  18. return producer.get().stream().filter(Ingredient::hasPreparation)
  19. .collect(Collectors.toList());
  20. }
  21. }