From aea2b986012159ab97ca2c3b9f14b28a8a24dfe9 Mon Sep 17 00:00:00 2001
From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de>
Date: Fri, 9 Oct 2020 21:26:15 +0200
Subject: [PATCH] Add Chicago and NY pizzeria and pizza

---
 src/pizzeria/CheesePizza.java                | 11 --------
 src/pizzeria/ChicagoPizzaFactory.java        | 21 +++++++++++++++
 src/pizzeria/ChicagoPizzaStore.java          | 22 +++++++++++++++
 src/pizzeria/ChicagoStyleCheesePizza.java    | 16 +++++++++++
 src/pizzeria/ChicagoStyleClamPizza.java      | 16 +++++++++++
 src/pizzeria/ChicagoStylePepperoniPizza.java | 19 +++++++++++++
 src/pizzeria/ChicagoStyleVeggiePizza.java    | 18 +++++++++++++
 src/pizzeria/ClamPizza.java                  | 11 --------
 src/pizzeria/NYPizzaFactory.java             | 21 +++++++++++++++
 src/pizzeria/NYPizzaStore.java               | 28 ++++++++++++++++++++
 src/pizzeria/NYStyleCheesePizza.java         | 12 +++++++++
 src/pizzeria/NYStyleClamPizza.java           | 13 +++++++++
 src/pizzeria/NYStylePepperoniPizza.java      | 17 ++++++++++++
 src/pizzeria/NYStyleVeggiePizza.java         | 16 +++++++++++
 src/pizzeria/PepperoniPizza.java             | 12 ---------
 src/pizzeria/PizzaStore.java                 | 18 -------------
 src/pizzeria/PizzaTestDrive.java             | 10 ++++---
 src/pizzeria/StaticSimplePizzaFactory.java   | 19 -------------
 src/pizzeria/VeggiePizza.java                | 15 -----------
 19 files changed, 226 insertions(+), 89 deletions(-)
 delete mode 100644 src/pizzeria/CheesePizza.java
 create mode 100644 src/pizzeria/ChicagoPizzaFactory.java
 create mode 100644 src/pizzeria/ChicagoPizzaStore.java
 create mode 100644 src/pizzeria/ChicagoStyleCheesePizza.java
 create mode 100644 src/pizzeria/ChicagoStyleClamPizza.java
 create mode 100644 src/pizzeria/ChicagoStylePepperoniPizza.java
 create mode 100644 src/pizzeria/ChicagoStyleVeggiePizza.java
 delete mode 100644 src/pizzeria/ClamPizza.java
 create mode 100644 src/pizzeria/NYPizzaFactory.java
 create mode 100644 src/pizzeria/NYPizzaStore.java
 create mode 100644 src/pizzeria/NYStyleCheesePizza.java
 create mode 100644 src/pizzeria/NYStyleClamPizza.java
 create mode 100644 src/pizzeria/NYStylePepperoniPizza.java
 create mode 100644 src/pizzeria/NYStyleVeggiePizza.java
 delete mode 100644 src/pizzeria/PepperoniPizza.java
 delete mode 100644 src/pizzeria/PizzaStore.java
 delete mode 100644 src/pizzeria/StaticSimplePizzaFactory.java
 delete mode 100644 src/pizzeria/VeggiePizza.java

diff --git a/src/pizzeria/CheesePizza.java b/src/pizzeria/CheesePizza.java
deleted file mode 100644
index ec07ded..0000000
--- a/src/pizzeria/CheesePizza.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package pizzeria;
-
-public class CheesePizza extends Pizza {
-	public CheesePizza() {
-		name = "Cheese Pizza";
-		dough = "Regular Crust";
-		sauce = "Marinara Pizza Sauce";
-		toppings.add("Fresh Mozzarella");
-		toppings.add("Parmesan");
-	}
-}
diff --git a/src/pizzeria/ChicagoPizzaFactory.java b/src/pizzeria/ChicagoPizzaFactory.java
new file mode 100644
index 0000000..7ec9648
--- /dev/null
+++ b/src/pizzeria/ChicagoPizzaFactory.java
@@ -0,0 +1,21 @@
+package pizzeria;
+
+public class ChicagoPizzaFactory {
+
+	public Pizza createPizza(String type) {
+		Pizza pizza = null;
+
+		if (type.equals("cheese")) {
+			pizza = new ChicagoStyleCheesePizza();
+		} else if (type.equals("pepperoni")) {
+			pizza = new ChicagoStylePepperoniPizza();
+		} else if (type.equals("clam")) {
+			pizza = new ChicagoStyleClamPizza();
+		} else if (type.equals("veggie")) {
+			pizza = new ChicagoStyleVeggiePizza();
+		}
+		return pizza;
+	}
+
+}
+
diff --git a/src/pizzeria/ChicagoPizzaStore.java b/src/pizzeria/ChicagoPizzaStore.java
new file mode 100644
index 0000000..2288121
--- /dev/null
+++ b/src/pizzeria/ChicagoPizzaStore.java
@@ -0,0 +1,22 @@
+package pizzeria;
+
+public class ChicagoPizzaStore {
+	ChicagoPizzaFactory factory;
+ 
+	public ChicagoPizzaStore(ChicagoPizzaFactory factory) {
+		this.factory = factory;
+	}
+ 
+	public Pizza orderPizza(String type) {
+		Pizza pizza;
+ 
+		pizza = factory.createPizza(type);
+ 
+		pizza.prepare();
+		pizza.bake();
+		//pizza.cut();
+		pizza.box();
+
+		return pizza;
+	}
+}
diff --git a/src/pizzeria/ChicagoStyleCheesePizza.java b/src/pizzeria/ChicagoStyleCheesePizza.java
new file mode 100644
index 0000000..9708ec5
--- /dev/null
+++ b/src/pizzeria/ChicagoStyleCheesePizza.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+public class ChicagoStyleCheesePizza extends Pizza {
+
+	public ChicagoStyleCheesePizza() { 
+		name = "Chicago Style Deep Dish Cheese Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/ChicagoStyleClamPizza.java b/src/pizzeria/ChicagoStyleClamPizza.java
new file mode 100644
index 0000000..2216bbe
--- /dev/null
+++ b/src/pizzeria/ChicagoStyleClamPizza.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+public class ChicagoStyleClamPizza extends Pizza {
+	public ChicagoStyleClamPizza() {
+		name = "Chicago Style Clam Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Frozen Clams from Chesapeake Bay");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/ChicagoStylePepperoniPizza.java b/src/pizzeria/ChicagoStylePepperoniPizza.java
new file mode 100644
index 0000000..4618e68
--- /dev/null
+++ b/src/pizzeria/ChicagoStylePepperoniPizza.java
@@ -0,0 +1,19 @@
+package pizzeria;
+
+public class ChicagoStylePepperoniPizza extends Pizza {
+	public ChicagoStylePepperoniPizza() {
+		name = "Chicago Style Pepperoni Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Black Olives");
+		toppings.add("Spinach");
+		toppings.add("Eggplant");
+		toppings.add("Sliced Pepperoni");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/ChicagoStyleVeggiePizza.java b/src/pizzeria/ChicagoStyleVeggiePizza.java
new file mode 100644
index 0000000..9f22708
--- /dev/null
+++ b/src/pizzeria/ChicagoStyleVeggiePizza.java
@@ -0,0 +1,18 @@
+package pizzeria;
+
+public class ChicagoStyleVeggiePizza extends Pizza {
+	public ChicagoStyleVeggiePizza() {
+		name = "Chicago Deep Dish Veggie Pizza";
+		dough = "Extra Thick Crust Dough";
+		sauce = "Plum Tomato Sauce";
+ 
+		toppings.add("Shredded Mozzarella Cheese");
+		toppings.add("Black Olives");
+		toppings.add("Spinach");
+		toppings.add("Eggplant");
+	}
+ 
+	public void cut() {
+		System.out.println("Cutting the pizza into square slices");
+	}
+}
diff --git a/src/pizzeria/ClamPizza.java b/src/pizzeria/ClamPizza.java
deleted file mode 100644
index 7159d5e..0000000
--- a/src/pizzeria/ClamPizza.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package pizzeria;
-
-public class ClamPizza extends Pizza {
-	public ClamPizza() {
-		name = "Clam Pizza";
-		dough = "Thin crust";
-		sauce = "White garlic sauce";
-		toppings.add("Clams");
-		toppings.add("Grated parmesan cheese");
-	}
-}
diff --git a/src/pizzeria/NYPizzaFactory.java b/src/pizzeria/NYPizzaFactory.java
new file mode 100644
index 0000000..6d6402a
--- /dev/null
+++ b/src/pizzeria/NYPizzaFactory.java
@@ -0,0 +1,21 @@
+package pizzeria;
+
+public class NYPizzaFactory {
+
+	public Pizza createPizza(String type) {
+		Pizza pizza = null;
+
+		if (type.equals("cheese")) {
+			pizza = new NYStyleCheesePizza();
+		} else if (type.equals("pepperoni")) {
+			pizza = new NYStylePepperoniPizza();
+		} else if (type.equals("clam")) {
+			pizza = new NYStyleClamPizza();
+		} else if (type.equals("veggie")) {
+			pizza = new NYStyleVeggiePizza();
+		}
+		return pizza;
+	}
+
+}
+
diff --git a/src/pizzeria/NYPizzaStore.java b/src/pizzeria/NYPizzaStore.java
new file mode 100644
index 0000000..6b4ce8a
--- /dev/null
+++ b/src/pizzeria/NYPizzaStore.java
@@ -0,0 +1,28 @@
+package pizzeria;
+
+public class NYPizzaStore {
+	NYPizzaFactory factory;
+ 
+	public NYPizzaStore(NYPizzaFactory factory) { 
+		this.factory = factory;
+	}
+ 
+	public Pizza orderPizza(String type) {
+		Pizza pizza;
+ 
+		pizza = factory.createPizza(type);
+ 
+		pizza.prepare();
+		pizza.bake();
+		pizza.cut();
+		//pizza.box();
+		nyBox(pizza);
+		
+		return pizza;
+	}
+	
+	public void nyBox(Pizza pizza) {
+		System.out.println("NY style boxing " + pizza.name);
+	}
+	
+}
diff --git a/src/pizzeria/NYStyleCheesePizza.java b/src/pizzeria/NYStyleCheesePizza.java
new file mode 100644
index 0000000..7ba90a6
--- /dev/null
+++ b/src/pizzeria/NYStyleCheesePizza.java
@@ -0,0 +1,12 @@
+package pizzeria;
+
+public class NYStyleCheesePizza extends Pizza {
+
+	public NYStyleCheesePizza() { 
+		name = "NY Style Sauce and Cheese Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+	}
+}
diff --git a/src/pizzeria/NYStyleClamPizza.java b/src/pizzeria/NYStyleClamPizza.java
new file mode 100644
index 0000000..23935af
--- /dev/null
+++ b/src/pizzeria/NYStyleClamPizza.java
@@ -0,0 +1,13 @@
+package pizzeria;
+
+public class NYStyleClamPizza extends Pizza {
+
+	public NYStyleClamPizza() {
+		name = "NY Style Clam Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Fresh Clams from Long Island Sound");
+	}
+}
diff --git a/src/pizzeria/NYStylePepperoniPizza.java b/src/pizzeria/NYStylePepperoniPizza.java
new file mode 100644
index 0000000..66cde53
--- /dev/null
+++ b/src/pizzeria/NYStylePepperoniPizza.java
@@ -0,0 +1,17 @@
+package pizzeria;
+
+public class NYStylePepperoniPizza extends Pizza {
+
+	public NYStylePepperoniPizza() {
+		name = "NY Style Pepperoni Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Sliced Pepperoni");
+		toppings.add("Garlic");
+		toppings.add("Onion");
+		toppings.add("Mushrooms");
+		toppings.add("Red Pepper");
+	}
+}
diff --git a/src/pizzeria/NYStyleVeggiePizza.java b/src/pizzeria/NYStyleVeggiePizza.java
new file mode 100644
index 0000000..cb66220
--- /dev/null
+++ b/src/pizzeria/NYStyleVeggiePizza.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+public class NYStyleVeggiePizza extends Pizza {
+
+	public NYStyleVeggiePizza() {
+		name = "NY Style Veggie Pizza";
+		dough = "Thin Crust Dough";
+		sauce = "Marinara Sauce";
+ 
+		toppings.add("Grated Reggiano Cheese");
+		toppings.add("Garlic");
+		toppings.add("Onion");
+		toppings.add("Mushrooms");
+		toppings.add("Red Pepper");
+	}
+}
diff --git a/src/pizzeria/PepperoniPizza.java b/src/pizzeria/PepperoniPizza.java
deleted file mode 100644
index 30464f6..0000000
--- a/src/pizzeria/PepperoniPizza.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package pizzeria;
-
-public class PepperoniPizza extends Pizza {
-	public PepperoniPizza() {
-		name = "Pepperoni Pizza";
-		dough = "Crust";
-		sauce = "Marinara sauce";
-		toppings.add("Sliced Pepperoni");
-		toppings.add("Sliced Onion");
-		toppings.add("Grated parmesan cheese");
-	}
-}
diff --git a/src/pizzeria/PizzaStore.java b/src/pizzeria/PizzaStore.java
deleted file mode 100644
index 10c6067..0000000
--- a/src/pizzeria/PizzaStore.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package pizzeria;
-
-public class PizzaStore {
- 
-	public Pizza orderPizza(String type) {
-		Pizza pizza;
- 
-		pizza = StaticSimplePizzaFactory.createPizza(type);
- 
-		pizza.prepare();
-		pizza.bake();
-		pizza.cut();
-		pizza.box();
-
-		return pizza;
-	}
-
-}
diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java
index 80dbd4b..23bb505 100644
--- a/src/pizzeria/PizzaTestDrive.java
+++ b/src/pizzeria/PizzaTestDrive.java
@@ -3,12 +3,16 @@ package pizzeria;
 public class PizzaTestDrive {
  
 	public static void main(String[] args) {
-		PizzaStore store = new PizzaStore();
+		NYPizzaFactory nyFactory = new NYPizzaFactory();
+		NYPizzaStore nyStore = new NYPizzaStore(nyFactory);
 
-		Pizza pizza = store.orderPizza("cheese");
+		Pizza pizza = nyStore.orderPizza("cheese");
 		System.out.println("We ordered a " + pizza.getName() + "\n");
  
-		pizza = store.orderPizza("veggie");
+		ChicagoPizzaFactory chicagoFactory = new ChicagoPizzaFactory();
+		ChicagoPizzaStore chicagoStore = new ChicagoPizzaStore(chicagoFactory);
+		
+		pizza = chicagoStore.orderPizza("veggie");
 		System.out.println("We ordered a " + pizza.getName() + "\n");
 
 	}
diff --git a/src/pizzeria/StaticSimplePizzaFactory.java b/src/pizzeria/StaticSimplePizzaFactory.java
deleted file mode 100644
index 23a6feb..0000000
--- a/src/pizzeria/StaticSimplePizzaFactory.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package pizzeria;
-
-public class StaticSimplePizzaFactory {
-
-	public static Pizza createPizza(String type) {
-		Pizza pizza = null;
-
-		if (type.equals("cheese")) {
-			pizza = new CheesePizza();
-		} else if (type.equals("pepperoni")) {
-			pizza = new PepperoniPizza();
-		} else if (type.equals("clam")) {
-			pizza = new ClamPizza();
-		} else if (type.equals("veggie")) {
-			pizza = new VeggiePizza();
-		}
-		return pizza;
-	}
-}
diff --git a/src/pizzeria/VeggiePizza.java b/src/pizzeria/VeggiePizza.java
deleted file mode 100644
index 63429c1..0000000
--- a/src/pizzeria/VeggiePizza.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package pizzeria;
-
-public class VeggiePizza extends Pizza {
-	public VeggiePizza() {
-		name = "Veggie Pizza";
-		dough = "Crust";
-		sauce = "Marinara sauce";
-		toppings.add("Shredded mozzarella");
-		toppings.add("Grated parmesan");
-		toppings.add("Diced onion");
-		toppings.add("Sliced mushrooms");
-		toppings.add("Sliced red pepper");
-		toppings.add("Sliced black olives");
-	}
-}
-- 
GitLab