diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java new file mode 100644 index 0000000000000000000000000000000000000000..803aabed5893b95fef7c93cd1270bf2fa11fdcc0 --- /dev/null +++ b/src/pizzeria/PizzaTestDrive.java @@ -0,0 +1,38 @@ +package pizzeria; + +import pizzeria.pizza.Pizza; +import pizzeria.store.ChicagoPizzaStore; +import pizzeria.store.NYPizzaStore; +import pizzeria.store.PizzaStore; + +public class PizzaTestDrive { + + public static void main(String[] args) { + PizzaStore nyStore = new NYPizzaStore(); + PizzaStore chicagoStore = new ChicagoPizzaStore(); + + Pizza pizza = nyStore.orderPizza("cheese"); + System.out.println("Ethan ordered a " + pizza.getName() + "\n"); + + pizza = chicagoStore.orderPizza("cheese"); + System.out.println("Joel ordered a " + pizza.getName() + "\n"); + + pizza = nyStore.orderPizza("clam"); + System.out.println("Ethan ordered a " + pizza.getName() + "\n"); + + pizza = chicagoStore.orderPizza("clam"); + System.out.println("Joel ordered a " + pizza.getName() + "\n"); + + pizza = nyStore.orderPizza("pepperoni"); + System.out.println("Ethan ordered a " + pizza.getName() + "\n"); + + pizza = chicagoStore.orderPizza("pepperoni"); + System.out.println("Joel ordered a " + pizza.getName() + "\n"); + + pizza = nyStore.orderPizza("veggie"); + System.out.println("Ethan ordered a " + pizza.getName() + "\n"); + + pizza = chicagoStore.orderPizza("veggie"); + System.out.println("Joel ordered a " + pizza.getName() + "\n"); + } +} diff --git a/src/pizzeria/ingredients/BlackOlives.java b/src/pizzeria/ingredients/BlackOlives.java new file mode 100644 index 0000000000000000000000000000000000000000..74d73d8f0b2319b6b3583c600f43ad99e1fc141d --- /dev/null +++ b/src/pizzeria/ingredients/BlackOlives.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class BlackOlives implements Veggies { + + public String toString() { + return "Black Olives"; + } +} diff --git a/src/pizzeria/ingredients/Cheese.java b/src/pizzeria/ingredients/Cheese.java new file mode 100644 index 0000000000000000000000000000000000000000..286d72d7fbad705febf0333cb8949a7fe68a603d --- /dev/null +++ b/src/pizzeria/ingredients/Cheese.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Cheese { + public String toString(); +} diff --git a/src/pizzeria/ingredients/Clams.java b/src/pizzeria/ingredients/Clams.java new file mode 100644 index 0000000000000000000000000000000000000000..1acd9e050dc1e24f1c04148bce258ba39b86f723 --- /dev/null +++ b/src/pizzeria/ingredients/Clams.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Clams { + public String toString(); +} diff --git a/src/pizzeria/ingredients/Dough.java b/src/pizzeria/ingredients/Dough.java new file mode 100644 index 0000000000000000000000000000000000000000..b97771a2215d5398dd2a308096a6c5d89c2dc462 --- /dev/null +++ b/src/pizzeria/ingredients/Dough.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Dough { + public String toString(); +} diff --git a/src/pizzeria/ingredients/Eggplant.java b/src/pizzeria/ingredients/Eggplant.java new file mode 100644 index 0000000000000000000000000000000000000000..c29952384169ad624c4fe2b7c92457aae36ebeb5 --- /dev/null +++ b/src/pizzeria/ingredients/Eggplant.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class Eggplant implements Veggies { + + public String toString() { + return "Eggplant"; + } +} diff --git a/src/pizzeria/ingredients/FreshClams.java b/src/pizzeria/ingredients/FreshClams.java new file mode 100644 index 0000000000000000000000000000000000000000..45f647a620c103b32984f2e06e89a312a7100725 --- /dev/null +++ b/src/pizzeria/ingredients/FreshClams.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class FreshClams implements Clams { + + public String toString() { + return "Fresh Clams from Long Island Sound"; + } +} diff --git a/src/pizzeria/ingredients/FrozenClams.java b/src/pizzeria/ingredients/FrozenClams.java new file mode 100644 index 0000000000000000000000000000000000000000..89459d9549d1a714492ee617510f4217a0ee528b --- /dev/null +++ b/src/pizzeria/ingredients/FrozenClams.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class FrozenClams implements Clams { + + public String toString() { + return "Frozen Clams from Chesapeake Bay"; + } +} diff --git a/src/pizzeria/ingredients/Garlic.java b/src/pizzeria/ingredients/Garlic.java new file mode 100644 index 0000000000000000000000000000000000000000..a6cb0871fe255dac6343f42c59943c708646bf38 --- /dev/null +++ b/src/pizzeria/ingredients/Garlic.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class Garlic implements Veggies { + + public String toString() { + return "Garlic"; + } +} diff --git a/src/pizzeria/ingredients/MarinaraSauce.java b/src/pizzeria/ingredients/MarinaraSauce.java new file mode 100644 index 0000000000000000000000000000000000000000..5e660ed9834c68afa85ecb7f551bd04039708224 --- /dev/null +++ b/src/pizzeria/ingredients/MarinaraSauce.java @@ -0,0 +1,7 @@ +package pizzeria.ingredients; + +public class MarinaraSauce implements Sauce { + public String toString() { + return "Marinara Sauce"; + } +} diff --git a/src/pizzeria/ingredients/MozzarellaCheese.java b/src/pizzeria/ingredients/MozzarellaCheese.java new file mode 100644 index 0000000000000000000000000000000000000000..eb62fa9836d107db1950245fd9818a088df4636a --- /dev/null +++ b/src/pizzeria/ingredients/MozzarellaCheese.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class MozzarellaCheese implements Cheese { + + public String toString() { + return "Shredded Mozzarella"; + } +} diff --git a/src/pizzeria/ingredients/Mushroom.java b/src/pizzeria/ingredients/Mushroom.java new file mode 100644 index 0000000000000000000000000000000000000000..a79a5df775fb7890466577957bf7ca217d8dac3c --- /dev/null +++ b/src/pizzeria/ingredients/Mushroom.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class Mushroom implements Veggies { + + public String toString() { + return "Mushrooms"; + } +} diff --git a/src/pizzeria/ingredients/Onion.java b/src/pizzeria/ingredients/Onion.java new file mode 100644 index 0000000000000000000000000000000000000000..2858be65be9ce9cffdc935ab7977573c8f23ecd6 --- /dev/null +++ b/src/pizzeria/ingredients/Onion.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class Onion implements Veggies { + + public String toString() { + return "Onion"; + } +} diff --git a/src/pizzeria/ingredients/ParmesanCheese.java b/src/pizzeria/ingredients/ParmesanCheese.java new file mode 100644 index 0000000000000000000000000000000000000000..7f67c67dc6beaa39c900c0e886e3606478233f94 --- /dev/null +++ b/src/pizzeria/ingredients/ParmesanCheese.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class ParmesanCheese implements Cheese { + + public String toString() { + return "Shredded Parmesan"; + } +} diff --git a/src/pizzeria/ingredients/Pepperoni.java b/src/pizzeria/ingredients/Pepperoni.java new file mode 100644 index 0000000000000000000000000000000000000000..315d06959debc036007a003105c16b8ead9ad968 --- /dev/null +++ b/src/pizzeria/ingredients/Pepperoni.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Pepperoni { + public String toString(); +} diff --git a/src/pizzeria/ingredients/PepperoniPizza.java b/src/pizzeria/ingredients/PepperoniPizza.java new file mode 100644 index 0000000000000000000000000000000000000000..9345487cefee2590b91409284901679e7265fbd9 --- /dev/null +++ b/src/pizzeria/ingredients/PepperoniPizza.java @@ -0,0 +1,17 @@ +package pizzeria.ingredients; + +public class PepperoniPizza extends Pizza { + + public PepperoniPizza(PizzaIngredientFactory ingredientFactory) { + this.ingredientFactory = ingredientFactory; + } + + void prepare() { + System.out.println("Preparing " + name); + dough = ingredientFactory.createDough(); + sauce = ingredientFactory.createSauce(); + cheese = ingredientFactory.createCheese(); + veggies = ingredientFactory.createVeggies(); + pepperoni = ingredientFactory.createPepperoni(); + } +} diff --git a/src/pizzeria/ingredients/PlumTomatoSauce.java b/src/pizzeria/ingredients/PlumTomatoSauce.java new file mode 100644 index 0000000000000000000000000000000000000000..cf92466493f3352260795ef0cd77a6fa0d1f368e --- /dev/null +++ b/src/pizzeria/ingredients/PlumTomatoSauce.java @@ -0,0 +1,7 @@ +package pizzeria.ingredients; + +public class PlumTomatoSauce implements Sauce { + public String toString() { + return "Tomato sauce with plum tomatoes"; + } +} diff --git a/src/pizzeria/ingredients/RedPepper.java b/src/pizzeria/ingredients/RedPepper.java new file mode 100644 index 0000000000000000000000000000000000000000..0dd71d78ab1c471484d00b531e54f5d5bbf16364 --- /dev/null +++ b/src/pizzeria/ingredients/RedPepper.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class RedPepper implements Veggies { + + public String toString() { + return "Red Pepper"; + } +} diff --git a/src/pizzeria/ingredients/ReggianoCheese.java b/src/pizzeria/ingredients/ReggianoCheese.java new file mode 100644 index 0000000000000000000000000000000000000000..6a9349e9b8ba832f883e7d400dbeff7de25df782 --- /dev/null +++ b/src/pizzeria/ingredients/ReggianoCheese.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class ReggianoCheese implements Cheese { + + public String toString() { + return "Reggiano Cheese"; + } +} diff --git a/src/pizzeria/ingredients/Sauce.java b/src/pizzeria/ingredients/Sauce.java new file mode 100644 index 0000000000000000000000000000000000000000..3e40c09131ca71ebabece48457e2c0e48d072b2a --- /dev/null +++ b/src/pizzeria/ingredients/Sauce.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Sauce { + public String toString(); +} diff --git a/src/pizzeria/ingredients/SlicedPepperoni.java b/src/pizzeria/ingredients/SlicedPepperoni.java new file mode 100644 index 0000000000000000000000000000000000000000..656796db119027db42a42ad60413ea1272aa104b --- /dev/null +++ b/src/pizzeria/ingredients/SlicedPepperoni.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class SlicedPepperoni implements Pepperoni { + + public String toString() { + return "Sliced Pepperoni"; + } +} diff --git a/src/pizzeria/ingredients/Spinach.java b/src/pizzeria/ingredients/Spinach.java new file mode 100644 index 0000000000000000000000000000000000000000..fd44c885aab5135152f125794fc071bce44f41ae --- /dev/null +++ b/src/pizzeria/ingredients/Spinach.java @@ -0,0 +1,8 @@ +package pizzeria.ingredients; + +public class Spinach implements Veggies { + + public String toString() { + return "Spinach"; + } +} diff --git a/src/pizzeria/ingredients/ThickCrustDough.java b/src/pizzeria/ingredients/ThickCrustDough.java new file mode 100644 index 0000000000000000000000000000000000000000..a712a31de437ef7b200c0feaeaa4bb33dbdb323a --- /dev/null +++ b/src/pizzeria/ingredients/ThickCrustDough.java @@ -0,0 +1,7 @@ +package pizzeria.ingredients; + +public class ThickCrustDough implements Dough { + public String toString() { + return "ThickCrust style extra thick crust dough"; + } +} diff --git a/src/pizzeria/ingredients/ThinCrustDough.java b/src/pizzeria/ingredients/ThinCrustDough.java new file mode 100644 index 0000000000000000000000000000000000000000..6fa03a44733d702ae9f2aa3e4f924077d636a06c --- /dev/null +++ b/src/pizzeria/ingredients/ThinCrustDough.java @@ -0,0 +1,7 @@ +package pizzeria.ingredients; + +public class ThinCrustDough implements Dough { + public String toString() { + return "Thin Crust Dough"; + } +} diff --git a/src/pizzeria/ingredients/Veggies.java b/src/pizzeria/ingredients/Veggies.java new file mode 100644 index 0000000000000000000000000000000000000000..a8a45a78316f48ad45ca5d5d6399883a92bc1a7e --- /dev/null +++ b/src/pizzeria/ingredients/Veggies.java @@ -0,0 +1,5 @@ +package pizzeria.ingredients; + +public interface Veggies { + public String toString(); +} diff --git a/src/pizzeria/pizza/ChicagoStyleCheesePizza.java b/src/pizzeria/pizza/ChicagoStyleCheesePizza.java new file mode 100644 index 0000000000000000000000000000000000000000..c37121ca49b2d12575e045b1a07ef4883620067c --- /dev/null +++ b/src/pizzeria/pizza/ChicagoStyleCheesePizza.java @@ -0,0 +1,16 @@ +package pizzeria.pizza; + +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/pizza/ChicagoStyleClamPizza.java b/src/pizzeria/pizza/ChicagoStyleClamPizza.java new file mode 100644 index 0000000000000000000000000000000000000000..c5bae9661bb8c43b51b35ef38663724afabf6e42 --- /dev/null +++ b/src/pizzeria/pizza/ChicagoStyleClamPizza.java @@ -0,0 +1,16 @@ +package pizzeria.pizza; + +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/pizza/ChicagoStylePepperoniPizza.java b/src/pizzeria/pizza/ChicagoStylePepperoniPizza.java new file mode 100644 index 0000000000000000000000000000000000000000..ae37b1f5dac81aa072440510223015b387141680 --- /dev/null +++ b/src/pizzeria/pizza/ChicagoStylePepperoniPizza.java @@ -0,0 +1,19 @@ +package pizzeria.pizza; + +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/pizza/ChicagoStyleVeggiePizza.java b/src/pizzeria/pizza/ChicagoStyleVeggiePizza.java new file mode 100644 index 0000000000000000000000000000000000000000..546b1688bf40591c46782802746c5ae45ec4f27d --- /dev/null +++ b/src/pizzeria/pizza/ChicagoStyleVeggiePizza.java @@ -0,0 +1,18 @@ +package pizzeria.pizza; + +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/pizza/NYStyleCheesePizza.java b/src/pizzeria/pizza/NYStyleCheesePizza.java new file mode 100644 index 0000000000000000000000000000000000000000..ac5055d672f008a25675b3d6ed2dbe10cfdfa11f --- /dev/null +++ b/src/pizzeria/pizza/NYStyleCheesePizza.java @@ -0,0 +1,12 @@ +package pizzeria.pizza; + +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/pizza/NYStyleClamPizza.java b/src/pizzeria/pizza/NYStyleClamPizza.java new file mode 100644 index 0000000000000000000000000000000000000000..b6635b049990cbf728718dc73020e4ab2af40031 --- /dev/null +++ b/src/pizzeria/pizza/NYStyleClamPizza.java @@ -0,0 +1,13 @@ +package pizzeria.pizza; + +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/pizza/NYStylePepperoniPizza.java b/src/pizzeria/pizza/NYStylePepperoniPizza.java new file mode 100644 index 0000000000000000000000000000000000000000..f036f6813cb76c16df31b40cee8cefda6d14522d --- /dev/null +++ b/src/pizzeria/pizza/NYStylePepperoniPizza.java @@ -0,0 +1,17 @@ +package pizzeria.pizza; + +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/pizza/NYStyleVeggiePizza.java b/src/pizzeria/pizza/NYStyleVeggiePizza.java new file mode 100644 index 0000000000000000000000000000000000000000..e3d5247ab4104f2b4efde93b248872fc5342d0c2 --- /dev/null +++ b/src/pizzeria/pizza/NYStyleVeggiePizza.java @@ -0,0 +1,16 @@ +package pizzeria.pizza; + +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/pizza/Pizza.java b/src/pizzeria/pizza/Pizza.java new file mode 100644 index 0000000000000000000000000000000000000000..191fc04ede4cf637bce0cf41d31c6f17b220269e --- /dev/null +++ b/src/pizzeria/pizza/Pizza.java @@ -0,0 +1,50 @@ +package pizzeria.pizza; + +import java.util.ArrayList; + +public abstract class Pizza { + String name; + String dough; + String sauce; + ArrayList<String> toppings = new ArrayList<String>(); + + public void prepare() { + System.out.println("Preparing " + name); + System.out.println("Tossing dough..."); + System.out.println("Adding sauce..."); + System.out.println("Adding toppings: "); + for (int i = 0; i < toppings.size(); i++) { + System.out.println(" " + toppings.get(i)); + } + } + + public void bake() { + System.out.println("Bake for 25 minutes at 350"); + } + + public void cut() { + System.out.println("Cutting the pizza into diagonal slices"); + } + + public void box() { + System.out.println("Place pizza in official PizzaStore box"); + } + + public String getName() { + return name; + } + + public String toString() { + 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/store/ChicagoPizzaStore.java b/src/pizzeria/store/ChicagoPizzaStore.java new file mode 100644 index 0000000000000000000000000000000000000000..b3518a91b6cac78aa29f3564238b9a772c5ad1fc --- /dev/null +++ b/src/pizzeria/store/ChicagoPizzaStore.java @@ -0,0 +1,18 @@ +package pizzeria.store; + +import pizzeria.pizza.*; + +public class ChicagoPizzaStore extends PizzaStore { + + Pizza createPizza(String item) { + if (item.equals("cheese")) { + return new ChicagoStyleCheesePizza(); + } else if (item.equals("veggie")) { + return new ChicagoStyleVeggiePizza(); + } else if (item.equals("clam")) { + return new ChicagoStyleClamPizza(); + } else if (item.equals("pepperoni")) { + return new ChicagoStylePepperoniPizza(); + } else return null; + } +} diff --git a/src/pizzeria/store/NYPizzaStore.java b/src/pizzeria/store/NYPizzaStore.java new file mode 100644 index 0000000000000000000000000000000000000000..301ffcb1dd85e5cfd683a9aaefd951c97925a036 --- /dev/null +++ b/src/pizzeria/store/NYPizzaStore.java @@ -0,0 +1,19 @@ +package pizzeria.store; + +import pizzeria.pizza.*; + +public class NYPizzaStore extends PizzaStore { + + Pizza createPizza(String item) { + if (item.equals("cheese")) { + return new NYStyleCheesePizza(); + } else if (item.equals("veggie")) { + return new NYStyleVeggiePizza(); + } else if (item.equals("clam")) { + return new NYStyleClamPizza(); + } else if (item.equals("pepperoni")) { + return new NYStylePepperoniPizza(); + } else return null; + } + +} diff --git a/src/pizzeria/store/PizzaStore.java b/src/pizzeria/store/PizzaStore.java new file mode 100644 index 0000000000000000000000000000000000000000..c6833293e0798421f275c548a5a2bafe2c68d708 --- /dev/null +++ b/src/pizzeria/store/PizzaStore.java @@ -0,0 +1,18 @@ +package pizzeria.store; + +import pizzeria.pizza.Pizza; + +public abstract class PizzaStore { + + abstract Pizza createPizza(String item); + + public final Pizza orderPizza(String type) { + Pizza pizza = createPizza(type); + System.out.println("--- Making a " + pizza.getName() + " ---"); + pizza.prepare(); + pizza.bake(); + pizza.cut(); + pizza.box(); + return pizza; + } +} diff --git a/src/readme.txt b/src/readme.txt deleted file mode 100644 index 1724e3d8249ad1c619d34f6e4c264d642a4e47d6..0000000000000000000000000000000000000000 --- a/src/readme.txt +++ /dev/null @@ -1 +0,0 @@ -Source Code für die Beispiele und Übungsaufgaben \ No newline at end of file