diff --git a/.project b/.project index ad9f889b07ee0532bb5889f15c76a9f2632ba80c..d7a6d14a645541563c21fb47863b979c4c5221fb 100644 --- a/.project +++ b/.project @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>TP6</name> + <name>TP8</name> <comment></comment> <projects> </projects> diff --git a/pom.xml b/pom.xml index 0970fc5e5234ed432807f3dd0ae97f3427fcd05c..d7dbf87d0de9135c9ebda08121efc4cb00644b23 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>fr.univlille.iutinfo.m3501</groupId> - <artifactId>TP6</artifactId> + <artifactId>TP8</artifactId> <version>1.0</version> <build> diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Assortment.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Assortment.java deleted file mode 100644 index 5c96b836a75cf1f83bdeac83340b30e8166a7f74..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Assortment.java +++ /dev/null @@ -1,35 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie; - -import java.util.*; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.EmptyDessert; - -public class Assortment implements Iterable<Dessert> { - private final List<Dessert> DESSERTS; - - public Assortment(Dessert... desserts) { - DESSERTS = new ArrayList<Dessert>(); - DESSERTS.addAll(Arrays.asList(desserts)); - } - - public boolean add(Dessert dessert) { - return DESSERTS.add(dessert); - } - - public boolean add(String commande) { - final Dessert dessert = Patisserie.creerDessert(commande); - - if (dessert == null || dessert.getClass() == EmptyDessert.class) { - return false; - } - - return add(dessert); - } - - @Override - public Iterator<Dessert> iterator() { - return DESSERTS.iterator(); - } - -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Patisserie.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Patisserie.java deleted file mode 100644 index 9fe2157a69ceda16ed74c3ad008c1981119dcc37..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/Patisserie.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Desserts; -import fr.univlille.iutinfo.m3105.patisserie.dessert.EmptyDessert; - -public class Patisserie { - public static final Dessert creerDessert(String commande) { - Dessert dessert = new EmptyDessert(); - - //try { - String[] commands = commande.split("\s"); - - for (String command : commands) { - Desserts dessertMaker = Desserts.fromName(command); - dessert = dessertMaker.make(dessert); - } - //} catch (Exception e) { - dessert = new EmptyDessert(); - //} - - return dessert; - } - - public static void main(String[] args) { - System.out.println(creerDessert("crepe potassium")); - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Dessert.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Dessert.java deleted file mode 100644 index c484bf3ca50261d76263113cbaf307a7d96ac84a..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Dessert.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert; - -import java.util.Locale; - -/** - * Dessert - */ -public abstract class Dessert { - public abstract double price(); - public abstract String name(); - - public abstract String[] identifier(); - - @Override - public String toString() { - final String fullPrice = String.format(Locale.ROOT, "%.2f€", price()); - final String fullName = name(); - - return fullName + " : " + fullPrice; - } -} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Desserts.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Desserts.java deleted file mode 100644 index 3a23c3885c7d0683c12831e35798227c51a71421..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Desserts.java +++ /dev/null @@ -1,50 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert; - -import java.util.Arrays; -import java.util.function.Function; -import java.util.function.Supplier; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.bases.Crepe; -import fr.univlille.iutinfo.m3105.patisserie.dessert.bases.Waffle; -import fr.univlille.iutinfo.m3105.patisserie.dessert.toppings.*; - -public enum Desserts { - NONE (EmptyDessert::new), - WAFFLE (Waffle::new), - CREPE (Crepe::new), - CHOCOLATE (Chocolate::new), - STRAWBERRIES (Strawberries::new), - BANANA (Banana::new), - CARAMEL (Caramel::new), - WHIPPED_CREAM (WhippedCream::new); - - private static final Dessert NOTHING = new EmptyDessert(); - private final Function<Dessert, Dessert> CONSTRUCTOR; - - private Desserts(Function<Dessert, Dessert> ctor) { - CONSTRUCTOR = ctor; - } - - private Desserts(Supplier<Dessert> ctor) { - CONSTRUCTOR = (d) -> ctor.get(); - } - - public static final Desserts fromName(String name) { - return Arrays.stream(values()) - .filter(item -> Arrays.stream(item.identifier()) - .anyMatch(name.toLowerCase()::equals)) - .findFirst().orElse(NONE); - } - - public Dessert make(Dessert base) { - try { - return CONSTRUCTOR.apply(base); - } catch (Exception e) { - return new EmptyDessert(); - } - } - - public String[] identifier() { - return make(NOTHING).identifier(); - } -} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/EmptyDessert.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/EmptyDessert.java deleted file mode 100644 index f71834cb5af0d51a1345f45e840a0d22ac17ebcc..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/EmptyDessert.java +++ /dev/null @@ -1,18 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert; - -public class EmptyDessert extends Dessert { - @Override - public double price() { - return Double.NaN; - } - - @Override - public String name() { - return "Le dessert ne doit pas commencer par une garniture"; - } - - @Override - public String[] identifier() { - return new String[0]; - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Topping.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Topping.java deleted file mode 100644 index 9ac8d02831601c2d7c94fbd7c76936f725a17eae..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/Topping.java +++ /dev/null @@ -1,25 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert; - -/** - * Garniture - */ -public abstract class Topping extends Dessert { - private final Dessert DESSERT; - - public Topping(Dessert base) { - DESSERT = base; - } - - public abstract double extraPrice(); - public abstract String nameFormat(); - - @Override - public double price() { - return extraPrice() + DESSERT.price(); - } - - @Override - public String name() { - return String.format(nameFormat(), DESSERT.name()); - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Crepe.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Crepe.java deleted file mode 100644 index 83c1b87cd0bd9932624acf65a796595809abfe9a..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Crepe.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.bases; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; - -/** - * Crêpe - */ -public class Crepe extends Dessert { - @Override - public double price() { - return 0.80; - } - - @Override - public String name() { - return "Crêpe"; - } - - @Override - public String[] identifier() { - return new String[] {"crepe"}; - } -} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Waffle.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Waffle.java deleted file mode 100644 index 7683d33c342cba70de9b2d2a253566eac386759c..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/bases/Waffle.java +++ /dev/null @@ -1,23 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.bases; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; - -/** - * Gauffre - */ -public class Waffle extends Dessert { - @Override - public double price() { - return 0.80; - } - - @Override - public String name() { - return "Gauffre"; - } - - @Override - public String[] identifier() { - return new String[] {"gauffre", "waffle"}; - } -} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Banana.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Banana.java deleted file mode 100644 index 1a9c579e3c9be4e51d080ef3a81bf0d5a76666e4..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Banana.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.toppings; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Topping; - -/** - * P O T A S S I U M - */ -public class Banana extends Topping { - public Banana(Dessert base) { - super(base); - } - - @Override - public double extraPrice() { - return 1.1; - } - - @Override - public String nameFormat() { - return "%s avec des morceaux de banane"; - } - - @Override - public String[] identifier() { - return new String[] {"potassium", "babane", "banana"}; - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Caramel.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Caramel.java deleted file mode 100644 index c848f39c6aff7a45bcbfc0c2eb051e15ef7ecb8e..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Caramel.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.toppings; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Topping; - -/** - * Caramel - */ -public class Caramel extends Topping { - public Caramel(Dessert base) { - super(base); - } - - @Override - public double extraPrice() { - return 0.6; - } - - @Override - public String nameFormat() { - return "%s au caramel"; - } - - @Override - public String[] identifier() { - return new String[] {"caramel"}; - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Chocolate.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Chocolate.java deleted file mode 100644 index 2c15d8198ccd9bd9b793dbc9f475bd1cf6accffd..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Chocolate.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.toppings; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Topping; - -/** - * Chocolat - */ -public class Chocolate extends Topping { - public Chocolate(Dessert base) { - super(base); - } - - @Override - public double extraPrice() { - return 1.50; - } - - @Override - public String nameFormat() { - return "%s au chocolat"; - } - - @Override - public String[] identifier() { - return new String[] {"chocolat", "chocolate", "choco"}; - } -} \ No newline at end of file diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Strawberries.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Strawberries.java deleted file mode 100644 index 1a64730c3da6ea486c657e9c75f03539191ff35b..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/Strawberries.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.toppings; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Topping; - -/** - * Fraises - */ -public class Strawberries extends Topping { - public Strawberries(Dessert base) { - super(base); - } - - @Override - public double extraPrice() { - return 1.25; - } - - @Override - public String nameFormat() { - return "%s aux fraises"; - } - - @Override - public String[] identifier() { - return new String[] {"fraises", "strawberries"}; - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/WhippedCream.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/WhippedCream.java deleted file mode 100644 index 57b471c544868da78d608e5186ea89e5d34ad5d3..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/dessert/toppings/WhippedCream.java +++ /dev/null @@ -1,28 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.dessert.toppings; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.Topping; - -/** - * Chantilly - */ -public class WhippedCream extends Topping { - public WhippedCream(Dessert base) { - super(base); - } - - @Override - public double extraPrice() { - return 0.95; - } - - @Override - public String nameFormat() { - return "%s avec de la chantilly"; - } - - @Override - public String[] identifier() { - return new String[] {"chantilly", "whipped-cream"}; - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinter.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinter.java deleted file mode 100644 index 5d56f450fffc4ccc0655287747a892e4f6bc8025..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinter.java +++ /dev/null @@ -1,7 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.printers; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; - -public abstract class DessertPrinter { - public abstract String print(Dessert dessert); -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterMultiLine.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterMultiLine.java deleted file mode 100644 index d00dd9966807ef9f2a4e94a17d1d9481900a4168..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterMultiLine.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.printers; - -import java.util.Locale; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; - -public class DessertPrinterMultiLine extends DessertPrinter { - @Override - public String print(Dessert dessert) { - final String fullName = dessert.name(); - final String fullPrice = String.format(Locale.ROOT, "%.2f€", dessert.price()); - - StringBuilder sb = new StringBuilder(); - - sb.append(fullName); - sb.append("\n -> "); - sb.append(fullPrice); - - return sb.toString(); - } -} diff --git a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterSingleLine.java b/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterSingleLine.java deleted file mode 100644 index fa4e7846ad83ef34f8889c542ac0352abbbb9240..0000000000000000000000000000000000000000 --- a/src/main/java/fr/univlille/iutinfo/m3105/patisserie/printers/DessertPrinterSingleLine.java +++ /dev/null @@ -1,21 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie.printers; - -import java.util.Locale; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; - -public class DessertPrinterSingleLine extends DessertPrinter { - @Override - public String print(Dessert dessert) { - final String fullName = dessert.name(); - final String fullPrice = String.format(Locale.ROOT, "%.2f€", dessert.price()); - - StringBuilder sb = new StringBuilder(); - - sb.append(fullName); - sb.append("="); - sb.append(fullPrice); - - return sb.toString(); - } -} diff --git a/src/test/java/fr/univlille/iutinfo/m3105/patisserie/DessertTest.java b/src/test/java/fr/univlille/iutinfo/m3105/patisserie/DessertTest.java deleted file mode 100644 index 69b0e4bb927ba1f920bfe053902bc482880be29e..0000000000000000000000000000000000000000 --- a/src/test/java/fr/univlille/iutinfo/m3105/patisserie/DessertTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package fr.univlille.iutinfo.m3105.patisserie; - -import static org.junit.jupiter.api.Assertions.*; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import fr.univlille.iutinfo.m3105.patisserie.dessert.Dessert; -import fr.univlille.iutinfo.m3105.patisserie.dessert.bases.Crepe; -import fr.univlille.iutinfo.m3105.patisserie.dessert.bases.Waffle; -import fr.univlille.iutinfo.m3105.patisserie.dessert.toppings.Chocolate; -import fr.univlille.iutinfo.m3105.patisserie.dessert.toppings.Strawberries; -import fr.univlille.iutinfo.m3105.patisserie.dessert.toppings.WhippedCream; - -/** - * Tuto cuisine - */ -public class DessertTest { - private Dessert - crepe, - waffle, - creamCrepe, - chocoWaffle, - doubleChocoCrepe, - strawberryChocoWaffle; - - @BeforeEach - protected void setup() { - crepe = new Crepe(); - waffle = new Waffle(); - chocoWaffle = new Chocolate(waffle); - creamCrepe = new WhippedCream(crepe); - doubleChocoCrepe = new Chocolate(new Chocolate(crepe)); - strawberryChocoWaffle = new Strawberries(chocoWaffle); - } - - @Test - protected void get_dessert_tostring() { - assertEquals("Crêpe : 0.80€", crepe.toString()); - assertEquals("Gauffre : 0.80€", waffle.toString()); - - assertEquals("Gauffre au chocolat : 2.30€", chocoWaffle.toString()); - assertEquals("Crêpe avec de la chantilly : 1.75€", creamCrepe.toString()); - assertEquals("Crêpe au chocolat au chocolat : 3.80€", doubleChocoCrepe.toString()); - assertEquals("Gauffre au chocolat aux fraises : 3.55€", strawberryChocoWaffle.toString()); - } -} \ No newline at end of file