From 1d7eee6da5ebbdaa1a9c07b80c999c2eb550cd3b Mon Sep 17 00:00:00 2001
From: "benjamin.sitbon" <benjamin.sitbon@etu.hesge.ch>
Date: Tue, 1 Jun 2021 14:49:12 +0200
Subject: [PATCH] Lab3-Task3 fait!

---
 Sitbon-Benjamin-Lab3-Task3/Calories.java      |  11 +++
 .../CaloriesEnrichi.java                      |  42 ++++++++++++
 .../CaloriesNormal.java                       |  39 +++++++++++
 .../CaloriesPauvre.java                       |  41 ++++++++++++
 Sitbon-Benjamin-Lab3-Task3/Client.java        |  26 ++++++++
 Sitbon-Benjamin-Lab3-Task3/Fruit.java         |  49 ++++++++++++++
 Sitbon-Benjamin-Lab3-Task3/Fruits.java        |   9 +++
 Sitbon-Benjamin-Lab3-Task3/PanierFruit.java   |  63 ++++++++++++++++++
 .../Sitbon-Benjamin-Lab3-Task3.zip            | Bin 0 -> 3837 bytes
 9 files changed, 280 insertions(+)
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/Calories.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/Client.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/Fruit.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/Fruits.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/PanierFruit.java
 create mode 100644 Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip

diff --git a/Sitbon-Benjamin-Lab3-Task3/Calories.java b/Sitbon-Benjamin-Lab3-Task3/Calories.java
new file mode 100644
index 0000000..9600e84
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/Calories.java
@@ -0,0 +1,11 @@
+public interface Calories {
+
+    public static int caloriesValueOf(Fruits f){
+        return f.getCalories();
+    }
+
+    public void connect(Fruit f);
+    public void setQuotient(int q);
+    public int getQuotient();
+    public int value(Fruits f);
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java
new file mode 100644
index 0000000..95fb533
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesEnrichi.java
@@ -0,0 +1,42 @@
+import java.util.ArrayList;
+
+import java.util.ArrayList;
+
+public class CaloriesEnrichi implements Calories{
+
+    private String[] fruits = {"Avocat","Banane","Mangue"};
+    private int quotient = 100;
+    private ArrayList<Fruit> observer = new ArrayList<>();
+
+
+    public int getQuotient(){
+        return this.quotient;
+    }
+
+    public void setQuotient(int q){
+        this.quotient = q;
+        notifyAll(observer);
+    }
+
+    public void connect(Fruit f){
+        observer.add(f);
+    }
+
+    public void notifyAll(ArrayList<Fruit> list){
+        for(Fruit f: list){
+            f.update();
+        }
+    }
+
+    public int value(Fruits f){
+        
+        for(int i = 0; i<fruits.length; i++){
+            if(fruits[i].equals(f.getName())){
+                return quotient/(i+1);
+            }
+        }
+
+        return 0;
+    }
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java
new file mode 100644
index 0000000..1ef5498
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesNormal.java
@@ -0,0 +1,39 @@
+import java.util.ArrayList;
+
+public class CaloriesNormal implements Calories{
+
+    private String[] fruits = {"Pomme","Fraise","Myrtille"};
+    private int quotient = 50;
+    private ArrayList<Fruit> observer = new ArrayList<>();
+
+
+    public int getQuotient(){
+        return this.quotient;
+    }
+
+    public void setQuotient(int q){
+        this.quotient = q;
+        notifyAll(observer);
+    }
+
+    public void connect(Fruit f){
+        observer.add(f);
+    }
+
+    public void notifyAll(ArrayList<Fruit> list){
+        for(Fruit f: list){
+            f.update();
+        }
+    }
+
+    public int value(Fruits f){
+        
+        for(int i = 0; i<fruits.length; i++){
+            if(fruits[i].equalsIgnoreCase(f.getName())){
+                return quotient/(i+1);
+            }
+        }
+        return 0;
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java b/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java
new file mode 100644
index 0000000..eba1658
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/CaloriesPauvre.java
@@ -0,0 +1,41 @@
+import java.util.ArrayList;
+
+import java.util.ArrayList;
+
+public class CaloriesPauvre implements Calories{
+
+    private String[] fruits = {"Poire","Melon","Pastèque"};
+    private int quotient = 25;
+    private ArrayList<Fruit> observer = new ArrayList<>();
+
+
+    public int getQuotient(){
+        return this.quotient;
+    }
+
+    public void setQuotient(int q){
+        this.quotient = q;
+        notifyAll(observer);
+    }
+
+    public void connect(Fruit f){
+        observer.add(f);
+    }
+
+    public void notifyAll(ArrayList<Fruit> list){
+        for(Fruit f: list){
+            f.update();
+        }
+    }
+
+    public int value(Fruits f){
+        
+        for(int i = 0; i<fruits.length; i++){
+            if(fruits[i].equals(f.getName())){
+                return quotient/(i+1);
+            }
+        }
+        return 0;
+    }
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/Client.java b/Sitbon-Benjamin-Lab3-Task3/Client.java
new file mode 100644
index 0000000..6b76906
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/Client.java
@@ -0,0 +1,26 @@
+import java.util.Scanner;
+
+public class Client {
+
+    public static void main(String[] args) {
+
+        Calories normal = new CaloriesNormal();
+        Calories pauvre = new CaloriesPauvre();
+        Calories riche = new CaloriesEnrichi();
+
+        Fruit fraise = new Fruit(normal,"Fraise",false);
+        Fruit melon = new Fruit(pauvre,"Melon",false);
+        Fruit avocat = new Fruit(riche,"Avocat",true);
+        Fruit banane = new Fruit(riche,"Banane",false);
+        Fruit banane2 = new Fruit(riche,"Banane",false);
+
+
+        normal.setQuotient(30);
+        riche.setQuotient(120);
+
+        
+
+    }
+    
+    
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/Fruit.java b/Sitbon-Benjamin-Lab3-Task3/Fruit.java
new file mode 100644
index 0000000..5cda99e
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/Fruit.java
@@ -0,0 +1,49 @@
+public class Fruit implements Fruits{
+
+
+    private String name;
+    private boolean pepin;
+    private Calories calories;
+
+    public Fruit(Calories cal,String n, boolean p){
+        this.calories = cal;
+        this.name = n;
+        this.pepin = p;
+        cal.connect(this);
+    }
+
+    public void setName(String n){
+        this.name = n;
+    }
+
+    public void setPepin(boolean p){
+        this.pepin = p;
+    }
+
+    public String getName(){
+        return this.name;
+    }
+
+    public int getCalories(){
+        return this.calories.value(this);
+    }
+
+    public boolean getPepin(){
+        return this.pepin;
+    }
+
+    public void update(){
+        System.out.println("Les calories on été modifié pour " + this.name + ": " + this.getCalories());
+    }
+
+    public void afficherFruit(){
+        System.out.println("");
+        System.out.println(this.name + " - " + this.pepin);
+        System.out.println("");
+    }
+
+    public void afficherCalories(){
+        System.out.println("Calories: " + getCalories());
+    }
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/Fruits.java b/Sitbon-Benjamin-Lab3-Task3/Fruits.java
new file mode 100644
index 0000000..0ef5707
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/Fruits.java
@@ -0,0 +1,9 @@
+public interface Fruits {
+
+    public String getName();
+    public int getCalories();
+    public boolean getPepin();  
+    public void afficherFruit();
+    public void afficherCalories();
+
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java b/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java
new file mode 100644
index 0000000..ff9a4ae
--- /dev/null
+++ b/Sitbon-Benjamin-Lab3-Task3/PanierFruit.java
@@ -0,0 +1,63 @@
+import java.util.ArrayList;
+
+public class PanierFruit implements Fruits{
+
+    
+    private ArrayList<Fruits> panier = new ArrayList<>();
+    private String name = "Panier(";
+    private boolean pepin = false;
+
+
+    public PanierFruit(Fruits... fruits){
+        this.addAll(fruits);
+    }
+
+    public String getName(){
+        return this.name;
+    }
+
+    public int getCalories(){
+        int res = 0;
+        for(Fruits f: panier){
+            res += Calories.caloriesValueOf(f);
+        }
+        return res;
+    }
+
+    public void add(Fruits f){
+
+        panier.add(f);
+        name += " " + f.getName() + " ";
+        if(f.getPepin()) pepin = true;
+    }
+
+    public void addAll(Fruits... fruits){
+        for(Fruits f: fruits){
+            this.add(f);
+        }
+    }
+
+    public boolean getPepin(){
+        return pepin;
+    }
+
+    public void afficherFruit(){
+        System.out.println("");
+        System.out.print(name);
+
+        if(pepin){
+            System.out.print(") Avec Pépin");   
+        }
+        else{
+            System.out.print(") Sans Pépin");
+        }
+        System.out.println("");
+        System.out.println("");
+    }
+
+    public void afficherCalories(){
+
+        
+        System.out.println("Calories: " + this.getCalories());
+    }
+}
\ No newline at end of file
diff --git a/Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip b/Sitbon-Benjamin-Lab3-Task3/Sitbon-Benjamin-Lab3-Task3.zip
new file mode 100644
index 0000000000000000000000000000000000000000..c62da7be9e9e23b41773c981beb7ffc026d60750
GIT binary patch
literal 3837
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
TRyL4sP)GMU69WSS4~Pc<`5oT{

literal 0
HcmV?d00001

-- 
GitLab