Hellboyandso

Pizza.java

Dec 15th, 2016
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.51 KB | None | 0 0
  1. package domain;
  2.  
  3. import java.util.Collection;
  4. import java.util.HashSet;
  5. import java.util.List;
  6. import java.util.Set;
  7. import java.util.stream.Collectors;
  8.  
  9. public class Pizza {
  10.     private String name;
  11.     private double price;
  12.     private Set<Ingredient> ingredients;
  13.     private boolean vegetarian;
  14.    
  15.     public Pizza(){
  16.         name = "";
  17.         price = 0;
  18.         ingredients = null;
  19.         vegetarian = false;
  20.     }
  21.  
  22.     public Pizza(String name, double price, Collection<String> ingredients, boolean vegetarian) {
  23.         this(name, price, ingredients.stream().map(Ingredient::new).collect(Collectors.toSet()), vegetarian);
  24.     }
  25.  
  26.     public Pizza(String name, double price, Set<Ingredient> ingredients, boolean vegetarian) {
  27.         setName(name);
  28.         setPrice(price);
  29.         setIngredients(new HashSet<>(ingredients));
  30.         setVegetarian(vegetarian);
  31.     }
  32.  
  33.    
  34.     public String getName() {
  35.         return name;
  36.     }
  37.  
  38.     public void addIngredient(String ingredientName){
  39.         addIngredient(new Ingredient(ingredientName));
  40.     }
  41.  
  42.     public void addIngredient(Ingredient ingredient){
  43.         if(ingredient == null) throw new IllegalArgumentException("Ingredient must be at least one character long");
  44.         ingredients.add(ingredient);
  45.     }
  46.    
  47.     public boolean isContaining(Ingredient someIngredient){
  48.         if (ingredients.contains(someIngredient)) return true;
  49.         else return false;
  50.     }
  51.  
  52.     /**
  53.      * @param ingredients list with the ingredients
  54.      * @return whether this pizza contains all of the given ingredients
  55.      */
  56.     public boolean isContaining(Ingredient[] ingredients) {
  57.         for (Ingredient ingredient:ingredients){
  58.             if (!isContaining(ingredient))
  59.                 return false;
  60.         }
  61.         return true;
  62.     }
  63.  
  64.     private void setName(String name) {
  65.         if(name.trim().equals("") || name == null)throw new IllegalArgumentException("name must contain at least one character");
  66.         this.name = name;
  67.     }
  68.  
  69.  
  70.     public double getPrice() {
  71.         return price;
  72.     }
  73.  
  74.  
  75.     void setPrice(double price) {
  76.         if(price <1)throw new IllegalArgumentException("price must be > 1");
  77.         this.price = price;
  78.     }
  79.  
  80.  
  81.     public Set<Ingredient> getIngredients() {
  82.         return ingredients;
  83.     }
  84.  
  85.  
  86.     void setIngredients(Set<Ingredient> ingredients) {
  87.         if(ingredients == null) throw new IllegalArgumentException("list of ingredients must at least contain one ingredient");
  88.         this.ingredients = ingredients;
  89.     }
  90.  
  91.  
  92.     public boolean isVegetarian() {
  93.         return vegetarian;
  94.     }
  95.  
  96.  
  97.     private void setVegetarian(boolean vegetarian) {
  98.         this.vegetarian = vegetarian;
  99.     }
  100.  
  101.     @Override
  102.     public String toString(){
  103.         return "Pizza " + name + " for: " + price;
  104.     }
  105.  
  106.  
  107. }
Advertisement
Add Comment
Please, Sign In to add comment