Hellboyandso

PizzaMenu.java

Dec 15th, 2016
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.47 KB | None | 0 0
  1. package domain;
  2.  
  3. import java.math.BigDecimal;
  4. import java.util.Arrays;
  5. import java.util.HashMap;
  6. import java.util.Map;
  7. import java.util.Set;
  8. import java.util.stream.Collectors;
  9.  
  10. public class PizzaMenu {
  11.     private String name;
  12.     private Map<String, Pizza> menu = new HashMap<String, Pizza>();
  13.    
  14.     public PizzaMenu(){
  15.         name = "";
  16.         menu = null;
  17.     }
  18.    
  19.     public PizzaMenu(String name){
  20.         setName(name);
  21.         addStandardPizzas();
  22.     }
  23.  
  24.     private void addStandardPizzas() {
  25.         menu.put("margherita",new Pizza("margherita", 9.00,Arrays.asList("tomaten","kaas","kruiden"),true));
  26.         menu.put("siciliana",new Pizza("siciliana", 8.00,Arrays.asList("tomaten","kaas","salami","uien","olijven"),false));
  27.         menu.put("bolognese",new Pizza("bolognese", 6.00,Arrays.asList("bolognese saus"),false));
  28.         menu.put("elena",new Pizza("elena", 8.00,Arrays.asList("rode kool","tomaten","mozzarella","gorgonzola","look","parmaham"),false));
  29.         menu.put("romana",new Pizza("romana", 9.00,Arrays.asList("tomaten","kaas","parmaham","ansjovis"),false));
  30.         menu.put("calzone",new Pizza("calzone", 10.00,Arrays.asList("tomaten","kaas","ham","champignons"),false));
  31.         menu.put("capricciosa",new Pizza("capricciosa", 9.50,Arrays.asList("tomaten","kaas","parmaham","champignons","ei"),false));
  32.     }
  33.    
  34.     public boolean addPizza(Pizza pizza){
  35.         menu.put(pizza.getName(), pizza);
  36.         return true;
  37.     }
  38.  
  39.  
  40.     public void removePizza(String name) throws UnknownPizzaException {
  41.         Pizza removed = menu.remove(name);
  42.         if (removed == null) throw new UnknownPizzaException(name);
  43.     }
  44.  
  45.     public String getName() {
  46.         return name;
  47.        
  48.     }
  49.    
  50.     public Pizza getPizza(String pizzaName){
  51.         Pizza p = null;
  52.         for(String pizza: menu.keySet()){
  53.             if(menu.get(pizza).getName().equals(pizzaName)) {
  54.                 p = menu.get(pizza);
  55.             }
  56.         }
  57.         return p;
  58.     }
  59.    
  60.     public Map<String, Pizza> getPizzas(){
  61.         return menu;
  62.     }
  63.  
  64.     public Set<Pizza> getPizzas(Double maxPrice, boolean veggieOnly, Ingredient[] containing) {
  65.         return menu.values().stream()
  66.                 .filter(p -> maxPrice==null || maxPrice > p.getPrice())
  67.                 .filter(p -> !veggieOnly || p.isVegetarian())
  68.                 .filter(p -> containing==null || p.isContaining(containing))
  69.                 .collect(Collectors.toSet());
  70.     }
  71.  
  72.     public boolean isOnMenu(Pizza p){
  73.         boolean isOnMenu = false;
  74.         for(String pizza: menu.keySet()){
  75.             if(menu.get(pizza).getName().equals(p.getName())) {
  76.                 isOnMenu = true;
  77.             }
  78.         }
  79.         return isOnMenu;
  80.     }
  81.  
  82.     private void setName(String name) {
  83.         if(name == null || name.equals("")) throw new IllegalArgumentException("Menu name must be at least one character long");
  84.         this.name = name;
  85.     }
  86.    
  87.     public Map<String, Pizza> getPizzasCheaperThan(double price){
  88.         Map<String, Pizza> cheaperPizzas = new HashMap<String, Pizza>();
  89.         for(String pizza: menu.keySet()){
  90.             if(menu.get(pizza).getPrice() <= price) {
  91.                 cheaperPizzas.put(pizza,menu.get(pizza));
  92.             }
  93.         }
  94.         return cheaperPizzas;
  95.     }
  96.    
  97.     public Map<String, Pizza> getPizzasVeggie(boolean isVeggie){
  98.         Map<String, Pizza> VeggiePizzas = new HashMap<String, Pizza>();
  99.         for(String pizza: menu.keySet()){
  100.             if(menu.get(pizza).isVegetarian() == isVeggie) {
  101.                 VeggiePizzas.put(pizza,menu.get(pizza));
  102.             }
  103.         }
  104.         return VeggiePizzas;
  105.     }
  106.    
  107.     @Override
  108.     public String toString(){
  109.         String descr = "Menu: " + name + "\n";
  110.         descr += "----------------------------------------------\n";
  111.         for(String pizza: menu.keySet()){
  112.                 descr += menu.get(pizza).toString() + "\n";
  113.         }
  114.         return descr;
  115.     }
  116.  
  117.  
  118. }
Advertisement
Add Comment
Please, Sign In to add comment