Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package domain;
- import java.math.BigDecimal;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Set;
- import java.util.stream.Collectors;
- public class PizzaMenu {
- private String name;
- private Map<String, Pizza> menu = new HashMap<String, Pizza>();
- public PizzaMenu(){
- name = "";
- menu = null;
- }
- public PizzaMenu(String name){
- setName(name);
- addStandardPizzas();
- }
- private void addStandardPizzas() {
- menu.put("margherita",new Pizza("margherita", 9.00,Arrays.asList("tomaten","kaas","kruiden"),true));
- menu.put("siciliana",new Pizza("siciliana", 8.00,Arrays.asList("tomaten","kaas","salami","uien","olijven"),false));
- menu.put("bolognese",new Pizza("bolognese", 6.00,Arrays.asList("bolognese saus"),false));
- menu.put("elena",new Pizza("elena", 8.00,Arrays.asList("rode kool","tomaten","mozzarella","gorgonzola","look","parmaham"),false));
- menu.put("romana",new Pizza("romana", 9.00,Arrays.asList("tomaten","kaas","parmaham","ansjovis"),false));
- menu.put("calzone",new Pizza("calzone", 10.00,Arrays.asList("tomaten","kaas","ham","champignons"),false));
- menu.put("capricciosa",new Pizza("capricciosa", 9.50,Arrays.asList("tomaten","kaas","parmaham","champignons","ei"),false));
- }
- public boolean addPizza(Pizza pizza){
- menu.put(pizza.getName(), pizza);
- return true;
- }
- public void removePizza(String name) throws UnknownPizzaException {
- Pizza removed = menu.remove(name);
- if (removed == null) throw new UnknownPizzaException(name);
- }
- public String getName() {
- return name;
- }
- public Pizza getPizza(String pizzaName){
- Pizza p = null;
- for(String pizza: menu.keySet()){
- if(menu.get(pizza).getName().equals(pizzaName)) {
- p = menu.get(pizza);
- }
- }
- return p;
- }
- public Map<String, Pizza> getPizzas(){
- return menu;
- }
- public Set<Pizza> getPizzas(Double maxPrice, boolean veggieOnly, Ingredient[] containing) {
- return menu.values().stream()
- .filter(p -> maxPrice==null || maxPrice > p.getPrice())
- .filter(p -> !veggieOnly || p.isVegetarian())
- .filter(p -> containing==null || p.isContaining(containing))
- .collect(Collectors.toSet());
- }
- public boolean isOnMenu(Pizza p){
- boolean isOnMenu = false;
- for(String pizza: menu.keySet()){
- if(menu.get(pizza).getName().equals(p.getName())) {
- isOnMenu = true;
- }
- }
- return isOnMenu;
- }
- private void setName(String name) {
- if(name == null || name.equals("")) throw new IllegalArgumentException("Menu name must be at least one character long");
- this.name = name;
- }
- public Map<String, Pizza> getPizzasCheaperThan(double price){
- Map<String, Pizza> cheaperPizzas = new HashMap<String, Pizza>();
- for(String pizza: menu.keySet()){
- if(menu.get(pizza).getPrice() <= price) {
- cheaperPizzas.put(pizza,menu.get(pizza));
- }
- }
- return cheaperPizzas;
- }
- public Map<String, Pizza> getPizzasVeggie(boolean isVeggie){
- Map<String, Pizza> VeggiePizzas = new HashMap<String, Pizza>();
- for(String pizza: menu.keySet()){
- if(menu.get(pizza).isVegetarian() == isVeggie) {
- VeggiePizzas.put(pizza,menu.get(pizza));
- }
- }
- return VeggiePizzas;
- }
- @Override
- public String toString(){
- String descr = "Menu: " + name + "\n";
- descr += "----------------------------------------------\n";
- for(String pizza: menu.keySet()){
- descr += menu.get(pizza).toString() + "\n";
- }
- return descr;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment