diff --git a/src/Cli/Confirm.java b/src/Cli/Confirm.java index abd707b7a1023e4c16f3141cc15bd068da9597c1..4a3448ccce6042574337b7fe87543dc90c0ffc50 100644 --- a/src/Cli/Confirm.java +++ b/src/Cli/Confirm.java @@ -3,11 +3,13 @@ package Cli; import java.util.Scanner; public class Confirm { - static Scanner reader = new Scanner(System.in); + public static boolean text(String str){ + Scanner reader = new Scanner(System.in); System.out.println(str); System.out.println("(Y)es/(N)o : "); String answer = reader.nextLine(); + reader.close(); if(answer=="y" || answer == "Y" || answer == "o" || answer == "O") return true; return false; diff --git a/src/DeliveryStrategy/FairOccupationDelivery.java b/src/DeliveryStrategy/FairOccupationDelivery.java new file mode 100644 index 0000000000000000000000000000000000000000..12618e08f7595cebab051b6fa135f0ef82840057 --- /dev/null +++ b/src/DeliveryStrategy/FairOccupationDelivery.java @@ -0,0 +1,17 @@ +package DeliveryStrategy; + +import java.util.ArrayList; + +import User.Courier; + +public class FairOccupationDelivery implements StrategyDeliveryPolicy { + + @Override + public void chooseCourier(ArrayList<Courier> listOfCourier) { + // TODO Auto-generated method stub + + } + + + +} diff --git a/src/DeliveryStrategy/FastestDelivery.java b/src/DeliveryStrategy/FastestDelivery.java new file mode 100644 index 0000000000000000000000000000000000000000..b6f576ff63749cb3cc26599bd830256eff1934b6 --- /dev/null +++ b/src/DeliveryStrategy/FastestDelivery.java @@ -0,0 +1,18 @@ +package DeliveryStrategy; + +import java.util.ArrayList; + +import User.Courier; + +public class FastestDelivery implements StrategyDeliveryPolicy{ + + + @Override + public void chooseCourier(ArrayList<Courier> listOfCourier) { + + + } + + + +} diff --git a/src/DeliveryStrategy/StrategyDeliveryPolicy.java b/src/DeliveryStrategy/StrategyDeliveryPolicy.java new file mode 100644 index 0000000000000000000000000000000000000000..6ff79f3a4101861f1950ca1f58e0496502eca756 --- /dev/null +++ b/src/DeliveryStrategy/StrategyDeliveryPolicy.java @@ -0,0 +1,12 @@ +package DeliveryStrategy; + +import java.util.ArrayList; + +import User.Courier; + +public interface StrategyDeliveryPolicy { + + + public abstract void chooseCourier(ArrayList<Courier> listOfCourier); + +} diff --git a/src/Offers/MealOfTheWeek.java b/src/Offers/MealOfTheWeek.java new file mode 100644 index 0000000000000000000000000000000000000000..e99b64e55276e883c5194515ecd7b5da3447da7d --- /dev/null +++ b/src/Offers/MealOfTheWeek.java @@ -0,0 +1,64 @@ +package Offers; + +import Item.Meal; + +public class MealOfTheWeek implements ObservableOffer { + + + private boolean state; + private Meal meal; + + + + + public MealOfTheWeek(boolean state, Meal meal) { + super(); + this.state = state; + this.meal = meal; + } + + + + public boolean isState() { + return state; + } + + + + public void setState(boolean state) { + this.state = state; + } + + + + public Meal getMeal() { + return meal; + } + + + + public void setMeal(Meal meal) { + this.meal = meal; + } + + + + @Override + public void attachObserver() { + // TODO Auto-generated method stub + + } + + @Override + public void detachObserver() { + // TODO Auto-generated method stub + + } + + @Override + public void notifyall() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/Offers/ObservableOffer.java b/src/Offers/ObservableOffer.java new file mode 100644 index 0000000000000000000000000000000000000000..6426312b9b5864bb1614acac3e140d516bf73d42 --- /dev/null +++ b/src/Offers/ObservableOffer.java @@ -0,0 +1,10 @@ +package Offers; + +public interface ObservableOffer { + + public abstract void attachObserver(); + public abstract void detachObserver(); + public abstract void notifyall(); + + +} diff --git a/src/Offers/Observer.java b/src/Offers/Observer.java new file mode 100644 index 0000000000000000000000000000000000000000..b98f024f589becd66394cf8bdd9ff167bd43740c --- /dev/null +++ b/src/Offers/Observer.java @@ -0,0 +1,7 @@ +package Offers; + +public interface Observer { + + public abstract void update(); + +} diff --git a/src/User/Customer.java b/src/User/Customer.java index 4ed3b45b885604dc3d635e6156203a151291ea81..e65cb85cce62fd807ce88609c342ca47d4b4968d 100644 --- a/src/User/Customer.java +++ b/src/User/Customer.java @@ -1,5 +1,8 @@ package User; +import java.util.Scanner; +import Cli.Confirm; + import Cards.BasicFidelityCard; import Cards.FidelityCard; import Cards.LotteryFidelityCard; @@ -10,8 +13,13 @@ import Others.Adress; import Others.Historique; import Others.IDCard; import Order.Order; +import Cli.Input; +import Item.FactoryDish; +import Item.Meal; +import Item.MealFactory; +import Offers.Observer; -public class Customer extends HumanUser implements VisiterCard { +public class Customer extends HumanUser implements VisiterCard,Observer { private boolean spamAgree; @@ -38,7 +46,72 @@ public class Customer extends HumanUser implements VisiterCard { return "Customer [spamAgree=" + spamAgree + ", historique=" + historique + ", card=" + card + "]"; } - public void placeOrder(Order order, Restaurant restaurant){ + public void placeOrder(Restaurant restaurant){ + Order order = new Order(); + System.out.println(restaurant.toString()); + do { + if (Confirm.text("Do you want a Meal?")){ + System.out.println("listdesMeal"); // � faire + String choice = Cli.Input.string("Which meal do you want?"); + boolean isIn = false; + for(Meal meal : restaurant.listOfMeal){ + if(meal.toString() == choice){ + isIn = true; + } + } + if (isIn == false){ + System.out.println("This meal isn't propose by this restaurant"); + } + else { + if(choice == "FullMeal"){ + System.out.println("listedesDish"); //� faire + String entry1 = Cli.Input.string("Which entry do you want in your meal?"); + String main1 = Cli.Input.string("Which main do you want in your meal?"); + String dessert1 = Cli.Input.string("Which dessert do you want in your meal?"); + MealFactory factory1 = new MealFactory(); + //Meal newmeal = factory1.createMeal("fullmeal", _name, _typeOfFood) + } + if (choice == "HalfMeal"){ + System.out.println("listedesDish"); //� faire + String typeOfFormule = Cli.Input.string("Which formula do you want? Entry/Main(EM) or Main/Dessert(MD)"); + if(typeOfFormule == "EM"){ + String entry2 = Cli.Input.string("Which entry do you want in your meal?"); + String main2 = Cli.Input.string("Which main do you want in your meal?"); + MealFactory factory2 = new MealFactory(); + //Meal newmeal = factory2.createMeal("halfmeal" + } + else if(typeOfFormule == "MD"){ + String main3 = Cli.Input.string("Which main do you want in your meal?"); + String dessert3 = Cli.Input.string("Which dessert do you want in your meal?"); + MealFactory factory3 = new MealFactory(); + //Meal newmeal = factory3.createMeal("halfmeal" + } + else{ + System.out.println("This type of Meal is not available"); + } + } + + } + + + } + else if (Confirm.text("Do you want a dish?")){ + System.out.println("listOfDish"); + String dish = Cli.Input.string("Which dish do you want ?"); + FactoryDish factory4 = new FactoryDish(); + + + + } + + + } while (Confirm.text("Do you want something else ?")); + System.out.println("Do you want a Meal? (y)es or (n)o"); + Scanner sc = new Scanner(System.in); + String choice = sc.nextLine(); + if (Confirm.text("Do you want a Meal?")){ + + } } @@ -111,6 +184,13 @@ public class Customer extends HumanUser implements VisiterCard { this.spamAgree = false; } } + + + @Override + public void update() { + + + } diff --git a/src/User/Restaurant.java b/src/User/Restaurant.java index 971ba54ceed0342043cd8f7cfc1054c0c77e2da6..2e6815200d304f7ca3d6db6a5133ea490677d2e8 100644 --- a/src/User/Restaurant.java +++ b/src/User/Restaurant.java @@ -1,24 +1,87 @@ package User; +import java.util.ArrayList; + +import Item.Dish; +import Item.Meal; import Others.Adress; public class Restaurant extends MoralUser { - //ArrayList<Meal> listOfMeal; + + + ArrayList<Meal> listOfMeal; + ArrayList<Dish> listOfDish; + + /** CONSTRUCTOR **/ public Restaurant(long phoneNumber, String name, String username, String mail, String password, Adress adress, boolean activated) { super(phoneNumber, name, username, mail, password, adress, activated); - //this.listOfMeal = listOfMeal + this.listOfMeal = new ArrayList<Meal>(); + this.listOfDish = new ArrayList<Dish>(); } - public void addMeal(){ + /** SETTERS**/ + + + + + public void addMeal(Meal m){ + boolean isalready = false; + for (Meal meal : this.listOfMeal) { + if(meal.equals(m)){ + System.out.println("You already have this meal in our menu"); + isalready = true; + } + } + if(isalready == false){ + this.listOfMeal.add(m); + } + } + + + + @Override + public String toString() { + return "Restaurant [listOfMeal=" + listOfMeal + ", listOfDish=" + listOfDish + "]"; + } + + + public ArrayList<Meal> getListOfMeal() { + return listOfMeal; + } + + + public ArrayList<Dish> getListOfDish() { + return listOfDish; + } + + + public void addDish(Dish d){ + boolean isalready = false; + for (Dish dish : this.listOfDish) { + if(dish.equals(d)){ + System.out.println("You already have this dish in our menu"); + isalready = true; + } + } + if(isalready == false){ + this.listOfDish.add(d); + + } } - public void removeItem(){ + + public void removeMeal(Meal m){ + this.listOfMeal.remove(m); } + + public void removeDish(Dish d){ + this.listOfDish.remove(d); + } }