42 lines
1.0 KiB
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;
|
|
}
|
|
|
|
}
|
|
|