unittests/src/gfn/marc/StandardCocktailMixer.java

42 lines
1.0 KiB
Java

package gfn.marc;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class StandardCocktailMixer implements CocktailMixer{
List<Zutat> 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<Zutat> zutaten = new ArrayList<>(this.zutaten);
this.zutaten.clear();
return new Cocktail(zutaten);
}
@Override
public int getAnzahlZutaten() {
return this.zutaten.size();
}
public static <T> boolean enthaelt(Collection<?> collection, Class<T> klasse) {
for (Object o : collection) {
if (o != null && o.getClass() == klasse) {
return true;
}
}
return false;
}
}