From 5f8d36b99496c9543e987c53b1ecd3f4b914a6b4 Mon Sep 17 00:00:00 2001
From: Peter Hertkorn <peter.hertkorn@reutlingen-university.de>
Date: Thu, 12 Nov 2020 20:40:31 +0100
Subject: [PATCH] Add pizza classes

---
 src/pizzeria/CheesePizza.java    | 11 ++++++++
 src/pizzeria/ClamPizza.java      | 11 ++++++++
 src/pizzeria/PepperoniPizza.java | 12 +++++++++
 src/pizzeria/Pizza.java          | 43 ++++++++++++++++++++++++++++++++
 src/pizzeria/PizzaStore.java     | 28 +++++++++++++++++++++
 src/pizzeria/PizzaTestDrive.java | 16 ++++++++++++
 src/pizzeria/VeggiePizza.java    | 15 +++++++++++
 src/readme.txt                   |  1 -
 8 files changed, 136 insertions(+), 1 deletion(-)
 create mode 100644 src/pizzeria/CheesePizza.java
 create mode 100644 src/pizzeria/ClamPizza.java
 create mode 100644 src/pizzeria/PepperoniPizza.java
 create mode 100644 src/pizzeria/Pizza.java
 create mode 100644 src/pizzeria/PizzaStore.java
 create mode 100644 src/pizzeria/PizzaTestDrive.java
 create mode 100644 src/pizzeria/VeggiePizza.java
 delete mode 100644 src/readme.txt

diff --git a/src/pizzeria/CheesePizza.java b/src/pizzeria/CheesePizza.java
new file mode 100644
index 0000000..ec07ded
--- /dev/null
+++ b/src/pizzeria/CheesePizza.java
@@ -0,0 +1,11 @@
+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/ClamPizza.java b/src/pizzeria/ClamPizza.java
new file mode 100644
index 0000000..7159d5e
--- /dev/null
+++ b/src/pizzeria/ClamPizza.java
@@ -0,0 +1,11 @@
+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/PepperoniPizza.java b/src/pizzeria/PepperoniPizza.java
new file mode 100644
index 0000000..30464f6
--- /dev/null
+++ b/src/pizzeria/PepperoniPizza.java
@@ -0,0 +1,12 @@
+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/Pizza.java b/src/pizzeria/Pizza.java
new file mode 100644
index 0000000..1d25eb2
--- /dev/null
+++ b/src/pizzeria/Pizza.java
@@ -0,0 +1,43 @@
+package pizzeria;
+
+import java.util.ArrayList;
+
+abstract public class Pizza {
+	String name;
+	String dough;
+	String sauce;
+	ArrayList<String> toppings = new ArrayList<String>();
+
+	public String getName() {
+		return name;
+	}
+
+	public void prepare() {
+		System.out.println("Preparing " + name);
+	}
+
+	public void bake() {
+		System.out.println("Baking " + name);
+	}
+
+	public void cut() {
+		System.out.println("Cutting " + name);
+	}
+
+	public void box() {
+		System.out.println("Boxing " + name);
+	}
+
+	public String toString() {
+		// code to display pizza name and ingredients
+		StringBuffer display = new StringBuffer();
+		display.append("---- " + name + " ----\n");
+		display.append(dough + "\n");
+		display.append(sauce + "\n");
+		for (int i = 0; i < toppings.size(); i++) {
+			display.append((String )toppings.get(i) + "\n");
+		}
+		return display.toString();
+	}
+}
+
diff --git a/src/pizzeria/PizzaStore.java b/src/pizzeria/PizzaStore.java
new file mode 100644
index 0000000..4aa035e
--- /dev/null
+++ b/src/pizzeria/PizzaStore.java
@@ -0,0 +1,28 @@
+package pizzeria;
+
+public class PizzaStore {
+ 
+	public Pizza orderPizza(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();
+		} else {
+			return pizza;
+		}
+ 
+		pizza.prepare();
+		pizza.bake();
+		pizza.cut();
+		pizza.box();
+
+		return pizza;
+	}
+
+}
diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java
new file mode 100644
index 0000000..6dae385
--- /dev/null
+++ b/src/pizzeria/PizzaTestDrive.java
@@ -0,0 +1,16 @@
+package pizzeria;
+
+public class PizzaTestDrive {
+ 
+	public static void main(String[] args) {
+		PizzaStore store = new PizzaStore();
+
+		Pizza pizza = store.orderPizza("cheese");
+		System.out.println("We ordered a " + pizza.getName() + "\n");
+ 
+		pizza = store.orderPizza("veggie");
+		System.out.println("We ordered a " + pizza.getName() + "\n");
+
+		System.out.println(new PizzaStore().orderPizza("pepperoni").toString());
+	}
+}
diff --git a/src/pizzeria/VeggiePizza.java b/src/pizzeria/VeggiePizza.java
new file mode 100644
index 0000000..63429c1
--- /dev/null
+++ b/src/pizzeria/VeggiePizza.java
@@ -0,0 +1,15 @@
+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");
+	}
+}
diff --git a/src/readme.txt b/src/readme.txt
deleted file mode 100644
index 1724e3d..0000000
--- a/src/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Source Code für die Beispiele und Übungsaufgaben
\ No newline at end of file
-- 
GitLab