This commit is contained in:
Marc Koch 2020-05-14 11:10:44 +02:00
parent 0c1e1df1f4
commit f9dbc82963
Signed by: marc
GPG Key ID: AC2D4E00990A6767
2 changed files with 18 additions and 7 deletions

View File

@ -3,8 +3,13 @@ package gfn.marc;
import java.util.List; import java.util.List;
public class Cocktail { public class Cocktail {
private List<Zutat> zutaten;
public Cocktail(List<Zutat> zutaten) {
this.zutaten = zutaten;
}
public int getAnzahlZutaten() { public int getAnzahlZutaten() {
return 0; return this.zutaten.size();
} }
} }

View File

@ -1,27 +1,33 @@
package gfn.marc; package gfn.marc;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List;
public class StandardCocktailMixer implements CocktailMixer{ public class StandardCocktailMixer implements CocktailMixer{
List<Zutat> zutaten = new ArrayList<>();
@Override @Override
public void hinzufuegen(Zutat zutat) { public void hinzufuegen(Zutat zutat) {
this.zutaten.add(zutat);
} }
@Override @Override
public Cocktail mixen() throws EkligeZutatenKombinationException { public Cocktail mixen() throws EkligeZutatenKombinationException {
return null; 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 @Override
public int getAnzahlZutaten() { public int getAnzahlZutaten() {
return 0; return this.zutaten.size();
} }
// gegeben
public static <T> boolean enthaelt(Collection<?> collection, Class<T> klasse) { public static <T> boolean enthaelt(Collection<?> collection, Class<T> klasse) {
for (Object o : collection) { for (Object o : collection) {
if (o != null && o.getClass() == klasse) { if (o != null && o.getClass() == klasse) {