package gfn.marc; import java.util.ArrayList; import java.util.Collection; import java.util.List; public class StandardCocktailMixer implements CocktailMixer{ List zutaten = new ArrayList<>(); @Override public void hinzufuegen(Zutat zutat) { this.zutaten.add(zutat); } @Override public Cocktail mixen() throws EkligeZutatenKombinationException { if (enthaelt(this.zutaten, Banane.class) && enthaelt(this.zutaten, Apfelsaft.class)) { throw new EkligeZutatenKombinationException(); } List zutaten = new ArrayList<>(this.zutaten); this.zutaten.clear(); return new Cocktail(zutaten); } @Override public int getAnzahlZutaten() { return this.zutaten.size(); } public static boolean enthaelt(Collection collection, Class klasse) { for (Object o : collection) { if (o != null && o.getClass() == klasse) { return true; } } return false; } }