Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package domain;
- import java.util.Collection;
- import java.util.HashSet;
- import java.util.List;
- import java.util.Set;
- import java.util.stream.Collectors;
- public class Pizza {
- private String name;
- private double price;
- private Set<Ingredient> ingredients;
- private boolean vegetarian;
- public Pizza(){
- name = "";
- price = 0;
- ingredients = null;
- vegetarian = false;
- }
- public Pizza(String name, double price, Collection<String> ingredients, boolean vegetarian) {
- this(name, price, ingredients.stream().map(Ingredient::new).collect(Collectors.toSet()), vegetarian);
- }
- public Pizza(String name, double price, Set<Ingredient> ingredients, boolean vegetarian) {
- setName(name);
- setPrice(price);
- setIngredients(new HashSet<>(ingredients));
- setVegetarian(vegetarian);
- }
- public String getName() {
- return name;
- }
- public void addIngredient(String ingredientName){
- addIngredient(new Ingredient(ingredientName));
- }
- public void addIngredient(Ingredient ingredient){
- if(ingredient == null) throw new IllegalArgumentException("Ingredient must be at least one character long");
- ingredients.add(ingredient);
- }
- public boolean isContaining(Ingredient someIngredient){
- if (ingredients.contains(someIngredient)) return true;
- else return false;
- }
- /**
- * @param ingredients list with the ingredients
- * @return whether this pizza contains all of the given ingredients
- */
- public boolean isContaining(Ingredient[] ingredients) {
- for (Ingredient ingredient:ingredients){
- if (!isContaining(ingredient))
- return false;
- }
- return true;
- }
- private void setName(String name) {
- if(name.trim().equals("") || name == null)throw new IllegalArgumentException("name must contain at least one character");
- this.name = name;
- }
- public double getPrice() {
- return price;
- }
- void setPrice(double price) {
- if(price <1)throw new IllegalArgumentException("price must be > 1");
- this.price = price;
- }
- public Set<Ingredient> getIngredients() {
- return ingredients;
- }
- void setIngredients(Set<Ingredient> ingredients) {
- if(ingredients == null) throw new IllegalArgumentException("list of ingredients must at least contain one ingredient");
- this.ingredients = ingredients;
- }
- public boolean isVegetarian() {
- return vegetarian;
- }
- private void setVegetarian(boolean vegetarian) {
- this.vegetarian = vegetarian;
- }
- @Override
- public String toString(){
- return "Pizza " + name + " for: " + price;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment