package de.stoermer.xxx.domain.aufgaben;

import java.util.ArrayList;
import java.util.List;

import de.stoermer.xxx.domain.Toy;

public class Schablone {

	private final List<Toy> benoetigteToys;
	
	public Schablone(List<Toy> benoetigteToys) {
		this.benoetigteToys = benoetigteToys;
	}
	
	public boolean moeglich(List<Toy> verfuegbareToys) {
		return benoetigteToys.stream().allMatch(toy -> verfuegbareToys.contains(toy));
	}
	
	protected static List<Toy> getBenoetigteToys(List<de.stoermer.xxx.domain.xml.Toy> alle, List<String> benoetigteToyIds) {
		List<Toy> benoetigt = new ArrayList<>();
		if (benoetigteToyIds != null) {
			benoetigteToyIds.forEach(id -> benoetigt.add(Toy.fromXml(alle.stream().filter(toy -> toy.getId().equals(id)).findFirst().get())));
		}
		return benoetigt;
	}
}
