From 418c564d60d5c18891af8c0cbe51455bb3b3744b Mon Sep 17 00:00:00 2001
From: Nicolas Fley <nicolas.fley@student.ecp.fr>
Date: Wed, 5 Apr 2017 00:26:00 +0200
Subject: [PATCH] 05/04/17 work

---
 src/Cards/BasicFidelityCard.java   |   7 +-
 src/Cards/FidelityCard.java        |   2 +-
 src/Cards/LotteryFidelityCard.java |   8 +-
 src/Cards/PointFidelityCard.java   |   8 +-
 src/Cards/VisitableCard.java       |   7 ++
 src/Cards/VisiterCard.java         |   7 ++
 src/Cli/Confirm.java               |  15 ++++
 src/Item/Dish.java                 |  14 ++++
 src/Item/Item.java                 |  33 +++++++++
 src/Item/Meal.java                 |  91 +++++++++++++++++++++++
 src/Item/VisitablePrice.java       |   5 ++
 src/Item/VisitorPrice.java         |   5 ++
 src/Others/Historique.java         |   2 +-
 src/Others/IDCard.java             |  31 ++++----
 src/Others/Position.java           |  36 +++++++++
 src/Trash/UserFactory.java         |  48 ------------
 src/User/Courrier.java             |  59 +++++++++++++++
 src/User/Customer.java             | 113 +++++++++++++++++++++--------
 src/User/HumanUser.java            |   8 +-
 src/User/HumanUserFactory.java     |   4 +-
 src/User/IDUser.java               |  24 ++++++
 src/User/Manager.java              |   7 +-
 src/User/MoralUser.java            |   4 +-
 src/User/MoralUserFactory.java     |   2 +-
 src/User/Restaurant.java           |   4 +-
 src/User/User.java                 |  28 +++----
 src/User/UserFactory.java          |   2 +-
 27 files changed, 443 insertions(+), 131 deletions(-)
 create mode 100644 src/Cards/VisitableCard.java
 create mode 100644 src/Cards/VisiterCard.java
 create mode 100644 src/Cli/Confirm.java
 create mode 100644 src/Item/Dish.java
 create mode 100644 src/Item/Item.java
 create mode 100644 src/Item/Meal.java
 create mode 100644 src/Item/VisitablePrice.java
 create mode 100644 src/Item/VisitorPrice.java
 create mode 100644 src/Others/Position.java
 delete mode 100644 src/Trash/UserFactory.java
 create mode 100644 src/User/Courrier.java
 create mode 100644 src/User/IDUser.java

diff --git a/src/Cards/BasicFidelityCard.java b/src/Cards/BasicFidelityCard.java
index 7ab7bb9..b8661be 100644
--- a/src/Cards/BasicFidelityCard.java
+++ b/src/Cards/BasicFidelityCard.java
@@ -1,6 +1,6 @@
 package Cards;
 
-public class BasicFidelityCard extends FidelityCard {
+public class BasicFidelityCard extends FidelityCard implements VisitableCard {
 
 	public BasicFidelityCard(long id) {
 		super(id);
@@ -12,4 +12,9 @@ public class BasicFidelityCard extends FidelityCard {
 		return "Basic";
 	}
 
+	@Override
+	public long accept() {
+		return 0;
+	}
+
 }
diff --git a/src/Cards/FidelityCard.java b/src/Cards/FidelityCard.java
index 4a8fee5..700adba 100644
--- a/src/Cards/FidelityCard.java
+++ b/src/Cards/FidelityCard.java
@@ -1,6 +1,6 @@
 package Cards;
 
-public abstract class FidelityCard {
+public abstract class FidelityCard implements VisitableCard {
 	
 	private long id;
 
diff --git a/src/Cards/LotteryFidelityCard.java b/src/Cards/LotteryFidelityCard.java
index dfd1594..97669c2 100644
--- a/src/Cards/LotteryFidelityCard.java
+++ b/src/Cards/LotteryFidelityCard.java
@@ -1,6 +1,6 @@
 package Cards;
 
-public class LotteryFidelityCard extends FidelityCard {
+public class LotteryFidelityCard extends FidelityCard implements VisitableCard {
 	
 	private double percentage;
 	
@@ -18,4 +18,10 @@ public class LotteryFidelityCard extends FidelityCard {
 		return "Lottery";
 	}
 
+
+	@Override
+	public long accept() {
+		return 0;
+	}
+
 }
diff --git a/src/Cards/PointFidelityCard.java b/src/Cards/PointFidelityCard.java
index d455631..2c8a3ef 100644
--- a/src/Cards/PointFidelityCard.java
+++ b/src/Cards/PointFidelityCard.java
@@ -1,6 +1,6 @@
 package Cards;
 
-public class PointFidelityCard extends FidelityCard {
+public class PointFidelityCard extends FidelityCard implements VisitableCard {
 	
 	
 	private long nbOfPoint;
@@ -16,4 +16,10 @@ public class PointFidelityCard extends FidelityCard {
 		return "Point";
 	}
 
+	@Override
+	public long accept() {
+		return this.nbOfPoint;
+		
+	}
+
 }
diff --git a/src/Cards/VisitableCard.java b/src/Cards/VisitableCard.java
new file mode 100644
index 0000000..61084e7
--- /dev/null
+++ b/src/Cards/VisitableCard.java
@@ -0,0 +1,7 @@
+package Cards;
+
+public interface VisitableCard {
+	
+	public abstract long accept();
+
+}
diff --git a/src/Cards/VisiterCard.java b/src/Cards/VisiterCard.java
new file mode 100644
index 0000000..3a6ebc9
--- /dev/null
+++ b/src/Cards/VisiterCard.java
@@ -0,0 +1,7 @@
+package Cards;
+
+public interface VisiterCard {
+	
+	public abstract long visit(VisitableCard card);
+
+}
diff --git a/src/Cli/Confirm.java b/src/Cli/Confirm.java
new file mode 100644
index 0000000..3911b1d
--- /dev/null
+++ b/src/Cli/Confirm.java
@@ -0,0 +1,15 @@
+package Cli;
+
+import java.util.Scanner;
+
+public class Confirm {
+	Scanner reader = new Scanner(System.in);
+	public static boolean text(String str){
+		System.out.println(str);
+		System.out.println("(Y)es/(N)o : ");
+		String answer = reader.nextLine();
+		if(answer=="y" || answer == "Y" || answer == "o" || answer == "O")
+			return true;
+		return false;
+	}
+}
diff --git a/src/Item/Dish.java b/src/Item/Dish.java
new file mode 100644
index 0000000..5df2a48
--- /dev/null
+++ b/src/Item/Dish.java
@@ -0,0 +1,14 @@
+package Item;
+
+public class Dish extends Item implements VisitablePrice{
+	
+	public Dish(String name, String type) {
+		super(name, type);
+	}
+
+	private double price;
+	
+	public double acceptPrice(VisitorPrice v) {
+		return v.visitPrice(this);
+	}
+}
diff --git a/src/Item/Item.java b/src/Item/Item.java
new file mode 100644
index 0000000..9c2b111
--- /dev/null
+++ b/src/Item/Item.java
@@ -0,0 +1,33 @@
+package Item;
+
+public abstract class Item implements VisitablePrice {
+	
+	String type;
+	String name;
+	
+	/** CONSTRUCTOR **/
+	
+	public Item(String name,String type) {
+		super();
+		this.type = type;
+		this.name = name;
+	}
+	
+	/** METHODS **/
+	
+	
+	/** GETTER & SETTER **/
+	
+	public String getType() {
+		return type;
+	}
+	public void setType(String type) {
+		this.type = type;
+	}
+	public String getName() {
+		return name;
+	}
+	public void setName(String name) {
+		this.name = name;
+	}
+}
diff --git a/src/Item/Meal.java b/src/Item/Meal.java
new file mode 100644
index 0000000..eabbafe
--- /dev/null
+++ b/src/Item/Meal.java
@@ -0,0 +1,91 @@
+package Item;
+
+import java.util.ArrayList;
+
+public class Meal extends Item implements VisitorPrice{
+	
+	ArrayList<Dish> listDish = new ArrayList<Dish>();
+	
+	private double price=0;
+	
+	public Meal(String name,String type) {
+		super(name,type);
+	}
+	
+	public void addDish(ArrayList<Dish> listDishRestaurant, String name){
+		for(Dish dish: listDishRestaurant){
+			if(dish.getName()==name)
+				System.out.println("Adding "+dish.toString()+" to meal : "+this.getName());
+				if(!listDish.contains(dish)){
+					listDish.add(dish);
+					System.out.println("Dish added.");
+				}
+				else{
+					System.out.println("This dish is in this menu.");
+					if(Cli.Confirm.text("Do you really want to add "+dish.toString()+" ?")){
+						listDish.add(dish);
+						System.out.println("Dish added.");
+					}
+				}
+		}
+	}
+	public void addDish(ArrayList<Dish> listDishRestaurant, int num){
+		Dish dish = listDishRestaurant.get(num);
+		System.out.println("Adding "+dish.toString()+" to meal : "+this.getName());
+		if(dish.getName()==name)
+			if(!listDish.contains(dish)){
+				listDish.add(dish);
+				System.out.println("Dish added.");
+			}
+			else{
+				System.out.println("This dish is in this menu.");
+				if(Cli.Confirm.text("Do you really want to add "+dish.toString()+" ?")){
+					listDish.add(dish);
+					System.out.println("Dish added.");
+				}
+			}
+	}
+	
+	public void removeDish(String name){
+		boolean itemRemoved = false;
+		for(Dish dish: listDish){
+			if(dish.getName()==name){
+				listDish.remove(dish);
+				itemRemoved=true;
+			}
+		}
+		if(itemRemoved)
+			System.out.println("Dish removed !");
+	}
+	public void removeDish(int num){
+		Dish dish = listDish.get(num);
+		if(dish.getName()==name)
+			if(!listDish.contains(dish))
+				listDish.add(dish);
+			else{
+				System.out.println("This dish is in this menu.");
+				if(Cli.Confirm.text("Do you really want to add it ?"))
+					listDish.add(dish);
+			}
+	}
+	
+	public double getPrice(){
+		return price;
+	}
+
+	/** VISIT LOGIC **/
+
+	@Override	
+	public double acceptPrice(VisitorPrice v){
+		price=0;
+		for(Dish item: listDish){
+			item.acceptPrice(this);
+		}
+		return this.getPrice();
+	}
+
+	@Override
+	public double visitPrice(VisitablePrice v) {
+		return v.acceptPrice(this);
+	}
+}
diff --git a/src/Item/VisitablePrice.java b/src/Item/VisitablePrice.java
new file mode 100644
index 0000000..0628659
--- /dev/null
+++ b/src/Item/VisitablePrice.java
@@ -0,0 +1,5 @@
+package Item;
+
+public interface VisitablePrice {
+	public double acceptPrice(VisitorPrice v);
+}
diff --git a/src/Item/VisitorPrice.java b/src/Item/VisitorPrice.java
new file mode 100644
index 0000000..fd8f4f1
--- /dev/null
+++ b/src/Item/VisitorPrice.java
@@ -0,0 +1,5 @@
+package Item;
+
+public interface VisitorPrice {
+	public double visitPrice(VisitablePrice v);
+}
diff --git a/src/Others/Historique.java b/src/Others/Historique.java
index 3ff35b5..e515b03 100644
--- a/src/Others/Historique.java
+++ b/src/Others/Historique.java
@@ -6,7 +6,7 @@ import provisoire.Order;
 
 public class Historique {
 	
-	ArrayList<Order> listOfOrder;
+	private ArrayList<Order> listOfOrder;
 
 	public Historique(ArrayList<Order> listOfOrder) {
 		super();
diff --git a/src/Others/IDCard.java b/src/Others/IDCard.java
index fde40ba..e3cf941 100644
--- a/src/Others/IDCard.java
+++ b/src/Others/IDCard.java
@@ -2,21 +2,22 @@ package Others;
 
 public class IDCard {
 	
-
-		/** Constructeur priv� */
-		private IDCard()
-		{}
-	 
-		/** Instance unique non pr�initialis�e */
-		private static IDCard INSTANCE = null;
-	 
-		/** Point d'acc�s pour l'instance unique du singleton */
-		public static IDCard getInstance()
-		{			
-			if (INSTANCE == null)
-			{ 	INSTANCE = new IDCard();	
+	
+	private static IDCard instance = null;
+	
+	private static long num;
+	
+	private IDCard(){}
+	
+	public static IDCard getInstance() { 
+		if (instance==null) { 
+			instance = new IDCard();
 			}
-			return INSTANCE;
-		}
+		return instance;
+	}
+	public long getNextSerialNumber(){ 
+		return num++;
+	}
+	
 	}
 	
diff --git a/src/Others/Position.java b/src/Others/Position.java
new file mode 100644
index 0000000..ba80d49
--- /dev/null
+++ b/src/Others/Position.java
@@ -0,0 +1,36 @@
+package Others;
+
+public class Position {
+	
+	private double x,y;
+
+	public Position(double x, double y) {
+		super();
+		this.x = x;
+		this.y = y;
+	}
+
+	@Override
+	public String toString() {
+		return "Position [x=" + x + ", y=" + y + "]";
+	}
+
+	public double getX() {
+		return x;
+	}
+
+	public void setX(double x) {
+		this.x = x;
+	}
+
+	public double getY() {
+		return y;
+	}
+
+	public void setY(double y) {
+		this.y = y;
+	};
+	
+	
+
+}
diff --git a/src/Trash/UserFactory.java b/src/Trash/UserFactory.java
deleted file mode 100644
index 4d1600a..0000000
--- a/src/Trash/UserFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package Trash;
-
-
-import java.io.*;
-import java.lang.*;
-import java.util.*;
-
-import javax.management.RuntimeErrorException;
-
-import Others.Adress;
-
-public class UserFactory {
-	
-	private ArrayList<User> listOfUser;
-
-	public UserFactory(ArrayList<User> listOfUser) {
-		super();
-		this.listOfUser = listOfUser;
-	}
-
-	public ArrayList<User> getListOfUser() {
-		return listOfUser;
-	}
-
-	public void setListOfUser(ArrayList<User> listOfUser) {
-		this.listOfUser = listOfUser;
-	}
-
-	@Override
-	public String toString() {
-		return "UserFactory [listOfUser=" + listOfUser + "]";
-	}
-	
-	public void createRestaurant(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
-			boolean activated, String typeOfHumanUser){
-		if(typeOfUser == "Restaurant"){
-		try{
-		User newUser = new Restaurant(id,phoneNumber,name,username,mail,password,adress,activated);
-		listOfUser.add(newUser);
-		}
-		catch (Exception e) {
-			
-			} // faire le try/catch � l'ajout d'un User pour �viter les doublons.
-		}
-		}
-	}
-
-
diff --git a/src/User/Courrier.java b/src/User/Courrier.java
new file mode 100644
index 0000000..068aabe
--- /dev/null
+++ b/src/User/Courrier.java
@@ -0,0 +1,59 @@
+package User;
+
+import Core.MyFoodora;
+import Others.Adress;
+import Others.Position;
+
+public class Courrier extends HumanUser {
+	
+	private Position position;
+	private long nbOfLivraison;
+	private boolean available;
+	
+	
+	public Courrier(long phoneNumber, String name, String username, String mail, String password,
+			Adress adress, boolean activated, String birthdayDate, String surname,Position position, boolean available) {
+		super(phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
+		this.position = position;
+		this.nbOfLivraison = 0;
+		this.available = available;
+	}
+
+
+	public Position getPosition() {
+		return position;
+	}
+
+
+	public void setPosition(Position position) {
+		this.position = position;
+	}
+
+
+	public long getNbOfLivraison() {
+		return nbOfLivraison;
+	}
+	
+
+	public void setAvailable(boolean available) {
+		this.available = available;
+	}
+	
+	public void register(MyFoodora foodora){
+		
+	}
+	
+	public void unregister(MyFoodora foodora){
+		
+	}
+	
+	public void acceptDelivery(){
+		
+	}
+	
+	public void refuseDelivery(){
+		
+	}
+	
+
+}
diff --git a/src/User/Customer.java b/src/User/Customer.java
index ea66fbd..fc5eced 100644
--- a/src/User/Customer.java
+++ b/src/User/Customer.java
@@ -2,49 +2,36 @@ package User;
 
 import Cards.BasicFidelityCard;
 import Cards.FidelityCard;
+import Cards.LotteryFidelityCard;
+import Cards.PointFidelityCard;
+import Cards.VisitableCard;
+import Cards.VisiterCard;
 import Others.Adress;
 import Others.Historique;
 import Others.IDCard;
 import provisoire.Order;
 
-public class Customer extends HumanUser {
+public class Customer extends HumanUser implements VisiterCard {
 
 	
-	boolean spamAgree;
-	Historique historique;
-	FidelityCard card;
+	private boolean spamAgree;
+	private Historique historique;
+	private FidelityCard card;
+	private IDCard idCard;
 	
-	public Customer(long id, long phoneNumber, String name, String username, String mail, String password,
+	public Customer(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated, String birthdayDate, String surname,boolean spamAgree,Historique historique,FidelityCard card ) {
-		super(id, phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
+		super(phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
 		this.spamAgree = spamAgree;
 		this.historique = historique;
 		this.card = card;
 	}
-
-	public boolean isSpamAgree() {
-		return spamAgree;
-	}
-
-	public void setSpamAgree(boolean spamAgree) {
-		this.spamAgree = spamAgree;
-	}
-
-	public Historique getHistorique() {
-		return historique;
-	}
-
-	public void setHistorique(Historique historique) {
-		this.historique = historique;
-	}
+	
 
 	public FidelityCard getCard() {
 		return card;
 	}
 
-	public void setCard(FidelityCard card) {
-		this.card = card;
-	}
 
 	@Override
 	public String toString() {
@@ -57,18 +44,82 @@ public class Customer extends HumanUser {
 	
 	public void registerFidelityPlan(String newTypeOfFidelityCard){
 		if(newTypeOfFidelityCard == this.card.returnType()){
-			System.out.println("You have already this card");
-		if ((newTypeOfFidelityCard != "Basic") &(newTypeOfFidelityCard != "Lottery")&(newTypeOfFidelityCard != "Point")){
-			System.out.println("You have to choose between Point, Lottery or Basic card");
+			System.out.println("You already have this card");}
+		else if ((newTypeOfFidelityCard != "Basic")&(newTypeOfFidelityCard != "Lottery")&(newTypeOfFidelityCard != "Point")){
+			System.out.println("You have to choose between Point, Lottery card");
+		}
+		else if (newTypeOfFidelityCard == "Basic"){
+			System.out.println("You have to choose between Point, Lottery card");
 		}
 		else {
-			if (newTypeOfFidelityCard == "Basic"){
-				this.card = new BasicFidelityCard(new IDCard().getId);
+			if (newTypeOfFidelityCard == "Point"){
+				idCard=IDCard.getInstance();
+				this.card = new PointFidelityCard(idCard.getNextSerialNumber(),0);
+			}
+			
+			if (newTypeOfFidelityCard == "Lottery"){
+				idCard=IDCard.getInstance();
+				this.card = new LotteryFidelityCard(idCard.getNextSerialNumber(),10);
+
 			}
 		}
 		}
+	
+	public void unregisterFidelityPlan(String newTypeOfFidelityCard){
+		if(this.card.returnType() == "Basic"){
+			System.out.println("You already have this card");}
+	
+		else {
+			idCard=IDCard.getInstance();
+			this.card = new BasicFidelityCard(idCard.getNextSerialNumber());
+		}
 	}
 	
+	public Historique getHistorique() {
+		return historique;
+	}
 	
+	public long getPointInTheCard(){
+		if((this.card.returnType() == "Basic") || (this.card.returnType() == "Lottery")){
+			System.out.println("You don't have the right type of Card");
+			return 0;
+		}
+		else {
+			return visit(card);
+		}
+	}
+
+	@Override
+	public long visit(VisitableCard card) {
+		return card.accept();
+	}
+	
+	public void acceptSpam (){
+		if (spamAgree == true){
+			System.out.println("You've already accept to receive notifications");
+		}
+		else {
+			this.spamAgree = true;
+		}
+	}
+	
+	public void refuseSpam(){
+		if (spamAgree == false){
+			System.out.println("You've already refuse to receive notifications");
+		}
+		else {
+			this.spamAgree = false;
+		}
+	}
+	
+	
+	
+	
+	
+	
+	
+	}
+	
+	
+
 
-}
diff --git a/src/User/HumanUser.java b/src/User/HumanUser.java
index 76182c0..e0a2d09 100644
--- a/src/User/HumanUser.java
+++ b/src/User/HumanUser.java
@@ -4,11 +4,11 @@ import Others.Adress;
 
 public class HumanUser extends User {
 	
-	String birthdayDate, surname;
+	private String birthdayDate, surname;
 
-	public HumanUser(long id, long phoneNumber, String name, String username, String mail, String password,
-			Adress adress, boolean activated , String birthdayDate, String surname) {
-		super(id, phoneNumber, name, username, mail, password, adress, activated);
+	public HumanUser(long phoneNumber, String name, String username, String mail, String password, Adress adress,
+			boolean activated , String birthdayDate, String surname) {
+		super(phoneNumber, name, username, mail, password, adress, activated);
 		this.birthdayDate = birthdayDate;
 		this.surname = surname;
 	}
diff --git a/src/User/HumanUserFactory.java b/src/User/HumanUserFactory.java
index 348b050..91ed5eb 100644
--- a/src/User/HumanUserFactory.java
+++ b/src/User/HumanUserFactory.java
@@ -5,10 +5,10 @@ import Others.Adress;
 public class HumanUserFactory extends UserFactory {
 	
 	@Override
-	public void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+	public void createUser(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated) {
 		try{
-		User newUser = new Restaurant(id,phoneNumber,name,username,mail,password,adress,activated);
+		User newUser = new Restaurant(phoneNumber,name,username,mail,password,adress,activated);
 		}
 		catch (Exception e) {} // faire le try/catch � l'ajout d'un User pour �viter les doublons.
 		
diff --git a/src/User/IDUser.java b/src/User/IDUser.java
new file mode 100644
index 0000000..45fce25
--- /dev/null
+++ b/src/User/IDUser.java
@@ -0,0 +1,24 @@
+package User;
+
+
+
+public class IDUser {
+
+	
+	private static IDUser instance = null;
+	
+	private static long num;
+	
+	private IDUser(){}
+	
+	public static IDUser getInstance() { 
+		if (instance==null) { 
+			instance = new IDUser();
+			}
+		return instance;
+	}
+	public long getNextSerialNumber(){ 
+		return num++;
+	}
+	
+}
diff --git a/src/User/Manager.java b/src/User/Manager.java
index 96ee82a..92f20d3 100644
--- a/src/User/Manager.java
+++ b/src/User/Manager.java
@@ -1,15 +1,16 @@
 package User;
+import Core.MyFoodora;
 
 import java.util.ArrayList;
 
 import Others.Adress;
-import provisoire.MyFoodora;
+
 
 public class Manager extends HumanUser {
 
-	public Manager(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
+	public Manager(long phoneNumber, String name, String username, String mail, String password, Adress adress,
 			boolean activated, String birthdayDate, String surname) {
-		super(id, phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
+		super(phoneNumber, name, username, mail, password, adress, activated, birthdayDate, surname);
 
 	}
 	
diff --git a/src/User/MoralUser.java b/src/User/MoralUser.java
index 7ce03c7..4cade1f 100644
--- a/src/User/MoralUser.java
+++ b/src/User/MoralUser.java
@@ -4,9 +4,9 @@ import Others.Adress;
 
 public class MoralUser extends User {
 
-	public MoralUser(long id, long phoneNumber, String name, String username, String mail, String password,
+	public MoralUser(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated) {
-		super(id, phoneNumber, name, username, mail, password, adress, activated);
+		super(phoneNumber, name, username, mail, password, adress, activated);
 		// TODO Auto-generated constructor stub
 	}
 
diff --git a/src/User/MoralUserFactory.java b/src/User/MoralUserFactory.java
index f73a8b6..0c4dbb5 100644
--- a/src/User/MoralUserFactory.java
+++ b/src/User/MoralUserFactory.java
@@ -5,7 +5,7 @@ import Others.Adress;
 public class MoralUserFactory extends UserFactory {
 
 	@Override
-	public void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+	public void createUser(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated) {
 		// TODO Auto-generated method stub
 
diff --git a/src/User/Restaurant.java b/src/User/Restaurant.java
index fe7cdc5..971ba54 100644
--- a/src/User/Restaurant.java
+++ b/src/User/Restaurant.java
@@ -6,9 +6,9 @@ public class Restaurant extends MoralUser {
 	
 	//ArrayList<Meal> listOfMeal;
 	
-	public Restaurant(long id, long phoneNumber, String name, String username, String mail, String password,
+	public Restaurant(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated) {
-		super(id, phoneNumber, name, username, mail, password, adress, activated);
+		super(phoneNumber, name, username, mail, password, adress, activated);
 		//this.listOfMeal = listOfMeal
 	}
 	
diff --git a/src/User/User.java b/src/User/User.java
index 1fa1fb6..d0f6817 100644
--- a/src/User/User.java
+++ b/src/User/User.java
@@ -5,18 +5,23 @@ import java.io.*;
 import java.lang.*;
 import java.util.*;
 
-public abstract class User {
+import Core.MyFoodora;
 
-	private long id,phoneNumber;
+public abstract class User {
+	
+	
+	protected long id;
+	private long phoneNumber;
 	private String name,username,mail,password;
 	private Adress adress;
 	private boolean activated;
+
 	
-	
-	public User(long id, long phoneNumber, String name, String username, String mail, String password, Adress adress,
+	public User(long phoneNumber, String name, String username, String mail, String password, Adress adress,
 			boolean activated) {
 		super();
-		this.id = id;
+		IDUser idUser = IDUser.getInstance();
+		this.id = idUser.getNextSerialNumber();
 		this.phoneNumber = phoneNumber;
 		this.name = name;
 		this.username = username;
@@ -32,10 +37,6 @@ public abstract class User {
 	}
 
 
-	public void setId(long id) {
-		this.id = id;
-	}
-
 
 	public long getPhoneNumber() {
 		return phoneNumber;
@@ -77,11 +78,6 @@ public abstract class User {
 	}
 
 
-	public String getPassword() {
-		return password;
-	}
-
-
 	public void setpassword(String password) {
 		this.password = password;
 	}
@@ -113,14 +109,12 @@ public abstract class User {
 				+ ", mail=" + mail + ", password=" + password + ", adress=" + adress + ", activated=" + activated + "]";
 	}
 	
-	public void register(){
+	public void register(MyFoodora foodora){
 		System.out.println("Please writte your username");
 		Scanner sc = new Scanner(System.in);
 		String usernametest = sc.nextLine();
 		System.out.println("Please enter your password");
 		String passwordtest = sc.nextLine();
-		// faire un if sur la condition d'appartenance � MyFoodora core + try/catch
-		
 		
 	}
 	
diff --git a/src/User/UserFactory.java b/src/User/UserFactory.java
index 2e620b3..262ef3b 100644
--- a/src/User/UserFactory.java
+++ b/src/User/UserFactory.java
@@ -12,7 +12,7 @@ import Others.Adress;
 public abstract class UserFactory {
 	
 	
-	public abstract void createUser(long id, long phoneNumber, String name, String username, String mail, String password,
+	public abstract void createUser(long phoneNumber, String name, String username, String mail, String password,
 			Adress adress, boolean activated);
 
 
-- 
GitLab