Preparation.java 844 B

12345678910111213141516171819202122232425262728
  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.EqualsAndHashCode;
  12. import lombok.NoArgsConstructor;
  13. @Data @AllArgsConstructor @NoArgsConstructor @EqualsAndHashCode(callSuper=false)
  14. public class Preparation extends Observable.Instance implements RecipeComponent {
  15. Duration duration;
  16. @JsonIgnore Supplier<Collection<Ingredient>> producer = Collections::emptyList;
  17. @JsonIgnore
  18. public List<Ingredient> getIngredients() {
  19. return producer.get().stream().filter(Ingredient::hasPreparation)
  20. .collect(Collectors.toList());
  21. }
  22. }