diff --git a/lib/guava-21.0.jar b/lib/guava-21.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..0618195945f19848b80cbdcc56d7f05d913c6f64 Binary files /dev/null and b/lib/guava-21.0.jar differ diff --git a/lib/guice-4.1.0-no_aop.jar b/lib/guice-4.1.0-no_aop.jar new file mode 100644 index 0000000000000000000000000000000000000000..5d19a30dd234b53193d68bf7b69862919c5024ff Binary files /dev/null and b/lib/guice-4.1.0-no_aop.jar differ diff --git a/lib/javax.inject-1.jar b/lib/javax.inject-1.jar new file mode 100644 index 0000000000000000000000000000000000000000..b2a9d0bf7bd463a6361898b36f010edd05c0cf6e Binary files /dev/null and b/lib/javax.inject-1.jar differ diff --git a/src/pizzeria/PizzaFranchise.java b/src/pizzeria/PizzaFranchise.java index cb9896818431b40b1dd4aaf583ca2397435cadc5..54c9384425af22f7d1cdbd67cb9673704cd80c92 100644 --- a/src/pizzeria/PizzaFranchise.java +++ b/src/pizzeria/PizzaFranchise.java @@ -1,8 +1,11 @@ package pizzeria; +import com.google.inject.Inject; + public class PizzaFranchise { private PizzaStore store; + @Inject public PizzaFranchise(PizzaStore store) { this.store = store; } diff --git a/src/pizzeria/PizzaStoreModule.java b/src/pizzeria/PizzaStoreModule.java new file mode 100644 index 0000000000000000000000000000000000000000..28eaec935e34be92f52594f77a49418fe628a3c9 --- /dev/null +++ b/src/pizzeria/PizzaStoreModule.java @@ -0,0 +1,13 @@ +package pizzeria; + +import com.google.inject.AbstractModule; + +public class PizzaStoreModule extends AbstractModule { + + @Override + protected void configure() { + bind(PizzaStore.class) + //.to(ChicagoPizzaStore.class); + .to(NYPizzaStore.class); + } +} diff --git a/src/pizzeria/PizzaTestDrive.java b/src/pizzeria/PizzaTestDrive.java index 575749aee7f93f8970c6b16fd4127723a82fd9ba..3698d99ee50b058783200bb7cd25bc1419881cd8 100644 --- a/src/pizzeria/PizzaTestDrive.java +++ b/src/pizzeria/PizzaTestDrive.java @@ -1,19 +1,19 @@ package pizzeria; +import com.google.inject.Guice; +import com.google.inject.Injector; + public class PizzaTestDrive { - + public static void main(String[] args) { - PizzaStore[] storeList = {new TestPizzaStore(), new NYPizzaStore(), new ChicagoPizzaStore()}; - String[] customerList = {"Ethan", "Joel", "Martha"}; - String[] pizzaType = {"cheese", "veggie"}; - - for (int i=0; i<storeList.length; i++) { - PizzaFranchise franchise = new PizzaFranchise(storeList[i]); - - for (int j=0; j<pizzaType.length; j++) { - Pizza pizza = franchise.orderPizza(pizzaType[j]); - System.out.println(customerList[i] + " ordered a " + pizza.getName() + "\n"); - } + String[] pizzaType = { "cheese", "clam", "pepperoni", "veggie" }; + + Injector i = Guice.createInjector(new PizzaStoreModule()); + PizzaFranchise franchise = i.getInstance(PizzaFranchise.class); + + for (int j = 0; j < pizzaType.length; j++) { + Pizza pizza = franchise.orderPizza(pizzaType[j]); + System.out.println("Customer ordered a " + pizza.getName() + "\n"); } } }