package pizza.step7;
import org.apache.commons.lang.StringUtils;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class Pizza {
private final String size;
private List toppings;
private static final Map<String, Integer> basePrices;
static {
HashMap prices = new HashMap();
prices.put("small", 10);
prices.put("medium", 15);
prices.put("large", 20);
basePrices = prices;
}
private Pizza(String size) {
this.size = size;
this.toppings = new ArrayList();
}
public static Pizza small() {
return new Pizza("small");
}
public static Pizza medium() {
return new Pizza("medium");
}
public static Pizza large() {
return new Pizza("large");
}
public String getSize() {
return size;
}
public void addTopping(String s) {
toppings.add(s);
}
public Object getToppings() {
return StringUtils.join(toppings, ", ");
}
public int getPrice() {
return getBasePrice() + getToppingPrice();
}
private int getBasePrice() {
return basePrices.get(getSize());
}
private int getToppingPrice() {
return toppings.size();
}
}