maListe = monStub.getVehiculeList();
+ System.out.println(maListe);
+ }
+ public static void testSerialiser() {
+ Serialiser monSerialiser = new Serialiser();
+ Vehicule monVehicule;
+ monSerialiser.serialiserWriteBin();
+ monVehicule = monSerialiser.serialiserReadBin();
+ System.out.println(monVehicule);
+ }
+
+ public static void testCSV() {
+ ExportCSV moncsv = new ExportCSV();
+ Voiture maVoiture = new Voiture("monNom", "maPlaque");
+ moncsv.csvWriter(maVoiture);
+ System.out.println(moncsv.csvReader());
+ }
public static void main(String[] args){
- testVehiculeTheque();
+
+// testVehiculeTheque();
+// testStub();
+// testSerialiser();
+ testCSV();
}
}
diff --git a/2A/Java/tp/3_tp/TP3/src/models/Vehicule.java b/2A/Java/tp/3_tp/TP3/src/models/Vehicule.java
index 0e4eed0..8a32af5 100644
--- a/2A/Java/tp/3_tp/TP3/src/models/Vehicule.java
+++ b/2A/Java/tp/3_tp/TP3/src/models/Vehicule.java
@@ -1,9 +1,17 @@
package models;
-public abstract class Vehicule {
+import data.Serialiser;
+
+import java.io.Serializable;
+
+public abstract class Vehicule implements Serializable {
protected String nom;
protected String plaque;
+ public abstract String getNom();
+
+ public abstract String getPlaque();
+
@Override
public String toString() {
return "Vehicule{" +
diff --git a/2A/Java/tp/3_tp/TP3/src/models/VehiculeTheque.java b/2A/Java/tp/3_tp/TP3/src/models/VehiculeTheque.java
index 4da5e68..7dbd419 100644
--- a/2A/Java/tp/3_tp/TP3/src/models/VehiculeTheque.java
+++ b/2A/Java/tp/3_tp/TP3/src/models/VehiculeTheque.java
@@ -11,10 +11,6 @@ public class VehiculeTheque {
return this.lesVehicules;
}
- public void ajouterVehicule(Vehicule v) {
- lesVehicules.add(v);
- }
-
@Override
public String toString() {
return "VehiculeTheque{" +
diff --git a/2A/Java/tp/3_tp/TP3/src/models/Voiture.java b/2A/Java/tp/3_tp/TP3/src/models/Voiture.java
index b617a3d..eed7f81 100644
--- a/2A/Java/tp/3_tp/TP3/src/models/Voiture.java
+++ b/2A/Java/tp/3_tp/TP3/src/models/Voiture.java
@@ -7,11 +7,11 @@ public class Voiture extends Vehicule {
this.plaque = plaqueV;
}
- private String getNom() {
+ public String getNom() {
return this.nom;
}
- private String getPlaque() {
+ public String getPlaque() {
return this.plaque;
}
diff --git a/2A/Java/tp/4_tp/4_tp.iml b/2A/Java/tp/4_tp/4_tp.iml
new file mode 100644
index 0000000..e55f0b0
--- /dev/null
+++ b/2A/Java/tp/4_tp/4_tp.iml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2A/Java/tp/donnees.csv b/2A/Java/tp/donnees.csv
new file mode 100644
index 0000000..3dddb14
--- /dev/null
+++ b/2A/Java/tp/donnees.csv
@@ -0,0 +1 @@
+monNom; maPlaque
diff --git a/2A/Java/tp/out/production/3_tp/data/Deserialiser.class b/2A/Java/tp/out/production/3_tp/data/Deserialiser.class
new file mode 100644
index 0000000..8b1716b
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/data/Deserialiser.class differ
diff --git a/2A/Java/tp/out/production/3_tp/data/ExportCSV.class b/2A/Java/tp/out/production/3_tp/data/ExportCSV.class
new file mode 100644
index 0000000..57d5c46
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/data/ExportCSV.class differ
diff --git a/2A/Java/tp/out/production/3_tp/data/FichierPlat.class b/2A/Java/tp/out/production/3_tp/data/FichierPlat.class
new file mode 100644
index 0000000..6122d67
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/data/FichierPlat.class differ
diff --git a/2A/Java/tp/out/production/3_tp/data/Serialiser.class b/2A/Java/tp/out/production/3_tp/data/Serialiser.class
new file mode 100644
index 0000000..b1aeffc
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/data/Serialiser.class differ
diff --git a/2A/Java/tp/out/production/3_tp/data/Stub.class b/2A/Java/tp/out/production/3_tp/data/Stub.class
new file mode 100644
index 0000000..c36a7dc
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/data/Stub.class differ
diff --git a/2A/Java/tp/out/production/3_tp/main/Main.class b/2A/Java/tp/out/production/3_tp/main/Main.class
new file mode 100644
index 0000000..da2a85c
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/main/Main.class differ
diff --git a/2A/Java/tp/out/production/3_tp/models/Vehicule.class b/2A/Java/tp/out/production/3_tp/models/Vehicule.class
new file mode 100644
index 0000000..27db518
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/models/Vehicule.class differ
diff --git a/2A/Java/tp/out/production/3_tp/models/VehiculeTheque.class b/2A/Java/tp/out/production/3_tp/models/VehiculeTheque.class
new file mode 100644
index 0000000..b9bdaa0
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/models/VehiculeTheque.class differ
diff --git a/2A/Java/tp/out/production/3_tp/models/Voiture.class b/2A/Java/tp/out/production/3_tp/models/Voiture.class
new file mode 100644
index 0000000..b80895a
Binary files /dev/null and b/2A/Java/tp/out/production/3_tp/models/Voiture.class differ
diff --git a/2A/Java/tp/tp.zip b/2A/Java/tp/tp.zip
new file mode 100644
index 0000000..6d4d945
Binary files /dev/null and b/2A/Java/tp/tp.zip differ
diff --git a/2A/Java/tp/tp1-intro/.idea/.gitignore b/2A/Java/tp/tp1-intro/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/2A/Java/tp/tp1-intro/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/2A/Java/tp/tp1-intro/.idea/misc.xml b/2A/Java/tp/tp1-intro/.idea/misc.xml
deleted file mode 100644
index 0c94973..0000000
--- a/2A/Java/tp/tp1-intro/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp1-intro/.idea/modules.xml b/2A/Java/tp/tp1-intro/.idea/modules.xml
deleted file mode 100644
index c341d1f..0000000
--- a/2A/Java/tp/tp1-intro/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp1-intro/.idea/uiDesigner.xml b/2A/Java/tp/tp1-intro/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946..0000000
--- a/2A/Java/tp/tp1-intro/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/Main.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/Main.class
deleted file mode 100644
index a2aaa60..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/Main.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/Action.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/Action.class
deleted file mode 100644
index 1319b49..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/Action.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface$1.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface$1.class
deleted file mode 100644
index e4d3a1b..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface$1.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.class
deleted file mode 100644
index 055f0a4..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Afficheur.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Afficheur.class
deleted file mode 100644
index c227260..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Afficheur.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.class
deleted file mode 100644
index 9c4d06f..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Saisisseur.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Saisisseur.class
deleted file mode 100644
index 2590f52..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/Saisisseur.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.class
deleted file mode 100644
index 58565c7..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Patient.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Patient.class
deleted file mode 100644
index 5f238c1..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Patient.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Repertoire.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Repertoire.class
deleted file mode 100644
index 735f523..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/model/Repertoire.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.class
deleted file mode 100644
index b30bac0..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.class
deleted file mode 100644
index 09e721b..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.class
deleted file mode 100644
index 2063557..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/Persistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/Persistance.class
deleted file mode 100644
index 5dd48c4..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/Persistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.class
deleted file mode 100644
index 8d72667..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.class b/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.class
deleted file mode 100644
index c5d7c76..0000000
Binary files a/2A/Java/tp/tp1-intro/out/production/tp1-intro/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp1-intro/repertoire.txt b/2A/Java/tp/tp1-intro/repertoire.txt
deleted file mode 100644
index 23c98b0..0000000
--- a/2A/Java/tp/tp1-intro/repertoire.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-Machin Truc
-Bidule Machin
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/Main.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/Main.java
deleted file mode 100644
index 8d3dded..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/Main.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package fr.uca.iut.clfreville2.tp1;
-
-import fr.uca.iut.clfreville2.tp1.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp1.io.AfficheurConsole;
-import fr.uca.iut.clfreville2.tp1.io.SaisisseurConsole;
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-import fr.uca.iut.clfreville2.tp1.persistance.FilePersistance;
-import fr.uca.iut.clfreville2.tp1.persistance.StubLoaderPersistance;
-
-public final class Main {
-
- public static void main(String[] args) {
- new CommandLineInterface(
- new StubLoaderPersistance(),
- new FilePersistance(),
- new Repertoire(),
- new AfficheurConsole(),
- new SaisisseurConsole()
- ).execute();
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/Action.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/Action.java
deleted file mode 100644
index f0382d1..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/Action.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.cli;
-
-import java.util.Arrays;
-
-public enum Action {
- AJOUTER_PATIENT('a'),
- EDITER_PATIENT('e'),
- LISTER_PATIENTS('l'),
- SUPPRIMER_PATIENT('s'),
- QUITTER('q');
-
- private final char identificateur;
-
- Action(char identificateur) {
- this.identificateur = identificateur;
- }
-
- public static Action fromIdentificateur(char c) {
- return Arrays.stream(values()).filter(a -> a.identificateur == c).findFirst().orElse(null);
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.java
deleted file mode 100644
index d5c1ba6..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/cli/CommandLineInterface.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.cli;
-
-import fr.uca.iut.clfreville2.tp1.io.Afficheur;
-import fr.uca.iut.clfreville2.tp1.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp1.model.Patient;
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-import fr.uca.iut.clfreville2.tp1.persistance.LoaderPersistance;
-import fr.uca.iut.clfreville2.tp1.persistance.WriterPersistance;
-
-public final class CommandLineInterface {
-
- private final Repertoire repertoire;
- private final Afficheur afficheur;
- private final Saisisseur saisisseur;
- private final LoaderPersistance loaderPersistance;
- private final WriterPersistance writerPersistance;
-
- public CommandLineInterface(LoaderPersistance loaderPersistance, WriterPersistance writerPersistance, Repertoire repertoire, Afficheur afficheur, Saisisseur saisisseur) {
- this.repertoire = repertoire;
- this.afficheur = afficheur;
- this.saisisseur = saisisseur;
- this.loaderPersistance = loaderPersistance;
- this.writerPersistance = writerPersistance;
- }
-
- /**
- * Exécute l'application en ligne de commande.
- */
- public void execute() {
- loaderPersistance.lire(repertoire);
- afficheur.afficherIntroduction();
- afficheur.afficherDemande("l'action à effectuer");
- Action action;
- while ((action = saisisseur.demanderAction()) != Action.QUITTER) {
- if (action == null) {
- afficheur.afficherErreur("Action inconnue !");
- continue;
- }
- switch (action) {
- case AJOUTER_PATIENT -> gererAjoutPatient();
- case EDITER_PATIENT -> gererModificationPatient();
- case LISTER_PATIENTS -> afficheur.afficherPatients(repertoire);
- case SUPPRIMER_PATIENT -> gererSuppressionPatient();
- }
- }
- writerPersistance.ecrire(repertoire);
- }
-
- private void gererAjoutPatient() {
- Patient patient = demanderInfosPatient();
- repertoire.referencerPatient(patient.prenom(), patient.nom());
- afficheur.afficherSucces("Le patient a bien été rajouté.");
- }
-
- private void gererSuppressionPatient() {
- Patient patient = demanderInfosPatient();
- if (repertoire.dereferencerPatient(patient.prenom(), patient.nom())) {
- afficheur.afficherSucces("Le patient a bien été supprimé.");
- } else {
- afficheur.afficherErreur("Le patient n'existe pas et ne peut pas être supprimé.");
- }
- }
-
- private void gererModificationPatient() {
- Patient patient = demanderInfosPatient();
- if (!repertoire.dereferencerPatient(patient.prenom(), patient.nom())) {
- afficheur.afficherErreur("Le patient n'existe pas et ne peut pas être édité.");
- return;
- }
- gererAjoutPatient();
- }
-
- private Patient demanderInfosPatient() {
- afficheur.afficherDemande("le prénom du patient");
- String prenom = saisisseur.demandeMot();
- afficheur.afficherDemande("le nom du patient");
- String nom = saisisseur.demandeMot();
- return new Patient(prenom, nom);
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Afficheur.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Afficheur.java
deleted file mode 100644
index 28b1ace..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Afficheur.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.io;
-
-import fr.uca.iut.clfreville2.tp1.model.Patient;
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-/**
- * Affiche des informations à l'écran.
- *
- * Son implémentation principale est {@link AfficheurConsole}.
- */
-public interface Afficheur {
-
- /**
- * Affiche le texte présentant les actions réalisables par l'utilisateur.
- */
- void afficherIntroduction();
-
- /**
- * Affiche les informations d'un unique patient.
- *
- * @param patient Le patient à afficher.
- */
- void afficherPatient(Patient patient);
-
- /**
- * Affiche la liste des patients contenus dans un répertoire.
- *
- * Par défaut, affiche un à un les patients.
- *
- * @param repertoire Le répertoire à utiliser.
- */
- default void afficherPatients(Repertoire repertoire) {
- repertoire.getPatients().forEach(this::afficherPatient);
- }
-
- /**
- * Préparer le texte de demande d'une information à l'utilisateur.
- *
- * @param objet L'objet de la demande.
- */
- void afficherDemande(String objet);
-
- /**
- * Affiche un message de succès.
- *
- * @param message Le message de succès.
- */
- void afficherSucces(String message);
-
- /**
- * Affiche un message d'erreur.
- *
- * @param message Le message d'erreur.
- */
- void afficherErreur(String message);
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.java
deleted file mode 100644
index bc1d327..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/AfficheurConsole.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.io;
-
-import fr.uca.iut.clfreville2.tp1.model.Patient;
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-public class AfficheurConsole implements Afficheur {
-
- private static final String DESCRIPTION_MENU = """
- Système de gestion des patients 3000
- ====================================
- a : Ajouter un nouveau patient
- l : Lister les patients
- s : Supprimer un patient
- q : Quitter
- """;
-
- @Override
- public void afficherIntroduction() {
- System.out.print(DESCRIPTION_MENU);
- }
-
- @Override
- public void afficherPatient(Patient patient) {
- System.out.println(patient.designation());
- }
-
- @Override
- public void afficherPatients(Repertoire repertoire) {
- if (repertoire.getPatients().isEmpty()) {
- System.out.println("Répertoire vide !");
- } else {
- Afficheur.super.afficherPatients(repertoire);
- }
- }
-
- @Override
- public void afficherDemande(String objet) {
- System.out.println("Veuillez saisir " + objet + " : ");
- }
-
- @Override
- public void afficherSucces(String message) {
- System.out.println(message);
- }
-
- @Override
- public void afficherErreur(String message) {
- System.err.println(message);
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Saisisseur.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Saisisseur.java
deleted file mode 100644
index 199bfba..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/Saisisseur.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.io;
-
-import fr.uca.iut.clfreville2.tp1.cli.Action;
-
-public interface Saisisseur {
-
- String demandeMot();
-
- Action demanderAction();
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.java
deleted file mode 100644
index 17c9e89..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/io/SaisisseurConsole.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.io;
-
-import fr.uca.iut.clfreville2.tp1.cli.Action;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.Scanner;
-
-public class SaisisseurConsole implements Saisisseur {
-
- private final Scanner scanner;
-
-
- public SaisisseurConsole() {
- this(System.in);
- }
-
- public SaisisseurConsole(InputStream stream) {
- scanner = new Scanner(stream);
- }
-
- public SaisisseurConsole(Reader reader) {
- scanner = new Scanner(reader);
- }
-
- @Override
- public String demandeMot() {
- return scanner.next();
- }
-
- @Override
- public Action demanderAction() {
- return switch (scanner.next()) {
- case "a" -> Action.AJOUTER_PATIENT;
- case "e" -> Action.EDITER_PATIENT;
- case "l" -> Action.LISTER_PATIENTS;
- case "s" -> Action.SUPPRIMER_PATIENT;
- case "q" -> Action.QUITTER;
- default -> null;
- };
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Patient.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Patient.java
deleted file mode 100644
index 154ce2b..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Patient.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.model;
-
-// Pour les curieux, un record est une classe finale qui contient déjà une redéfinition de equals() et hashCode()
-public record Patient(String prenom, String nom) {
-
- public String designation() {
- return prenom + " " + nom.toUpperCase();
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Repertoire.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Repertoire.java
deleted file mode 100644
index 368db48..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/model/Repertoire.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.model;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Le répertoire possède toutes les informations de contact des patients.
- */
-public class Repertoire implements Iterable {
-
- private final List patients = new ArrayList<>();
-
- public void referencerPatient(String prenom, String nom) {
- patients.add(new Patient(prenom, nom));
- }
-
- public boolean dereferencerPatient(String prenom, String nom) {
- return patients.remove(new Patient(prenom, nom));
- }
-
- /**
- * Récupère l'ensemble des patients répertoriés.
- *
- * @return Une vue immuable sur les patients.
- */
- public List getPatients() {
- return Collections.unmodifiableList(patients);
- }
-
- @Override
- public Iterator iterator() {
- return getPatients().iterator();
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.java
deleted file mode 100644
index 1d32d37..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/FilePersistance.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-import fr.uca.iut.clfreville2.tp1.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp1.io.SaisisseurConsole;
-import fr.uca.iut.clfreville2.tp1.model.Patient;
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-import java.io.*;
-
-/**
- * Une persistance écrivant et lisant un fichier.
- */
-public class FilePersistance implements Persistance {
-
- private final String fileName;
-
- public FilePersistance() {
- this("repertoire.txt");
- }
-
- public FilePersistance(String fileName) {
- this.fileName = fileName;
- }
-
- @Override
- public void lire(Repertoire repertoire) {
- try (Reader lecteur = new FileReader(fileName)) {
- Saisisseur saisisseur = new SaisisseurConsole(lecteur);
- repertoire.referencerPatient(saisisseur.demandeMot(), saisisseur.demandeMot());
- } catch (FileNotFoundException ignored) {
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- }
- }
-
- @Override
- public void ecrire(Repertoire repertoire) {
- try (Writer ecrivain = new FileWriter(fileName)) {
- for (Patient patient : repertoire.getPatients()) {
- ecrivain.append(patient.nom()).append(" ").append(patient.prenom()).append("\n");
- }
- } catch (IOException ex) {
- throw new RuntimeException(ex);
- }
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.java
deleted file mode 100644
index aaf180f..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/LoaderPersistance.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-/**
- * Quelque chose capable de lire des données depuis quelque part et de les référencer dans un répertoire.
- */
-public interface LoaderPersistance {
-
- void lire(Repertoire repertoire);
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.java
deleted file mode 100644
index d945d41..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/NoopWriterPersistance.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-@SuppressWarnings("unused") // oui, mieux vaut ne pas l'utiliser de toute façon
-public class NoopWriterPersistance implements WriterPersistance {
- @Override
- public void ecrire(Repertoire repertoire) {
- // noop
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/Persistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/Persistance.java
deleted file mode 100644
index 66e77f9..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/Persistance.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-/**
- * Un groupe de persistance pouvant être à la fois chargée et sauvegardée.
- */
-public interface Persistance extends LoaderPersistance, WriterPersistance {
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.java
deleted file mode 100644
index 5cc5d9d..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/StubLoaderPersistance.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-public final class StubLoaderPersistance implements LoaderPersistance {
-
- @Override
- public void lire(Repertoire repertoire) {
- repertoire.referencerPatient("Truc", "Machin");
- repertoire.referencerPatient("Machin", "Bidule");
- }
-}
diff --git a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.java b/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.java
deleted file mode 100644
index 17beb04..0000000
--- a/2A/Java/tp/tp1-intro/src/fr/uca/iut/clfreville2/tp1/persistance/WriterPersistance.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package fr.uca.iut.clfreville2.tp1.persistance;
-
-import fr.uca.iut.clfreville2.tp1.model.Repertoire;
-
-/**
- * Quelque chose capable d'écrire quelque part un répertoire de patients.
- */
-public interface WriterPersistance {
-
- void ecrire(Repertoire repertoire);
-}
diff --git a/2A/Java/tp/tp2-zoo/.idea/.gitignore b/2A/Java/tp/tp2-zoo/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/2A/Java/tp/tp2-zoo/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/2A/Java/tp/tp2-zoo/.idea/misc.xml b/2A/Java/tp/tp2-zoo/.idea/misc.xml
deleted file mode 100644
index a346fd7..0000000
--- a/2A/Java/tp/tp2-zoo/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp2-zoo/.idea/modules.xml b/2A/Java/tp/tp2-zoo/.idea/modules.xml
deleted file mode 100644
index cce7859..0000000
--- a/2A/Java/tp/tp2-zoo/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp2-zoo/.idea/uiDesigner.xml b/2A/Java/tp/tp2-zoo/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946..0000000
--- a/2A/Java/tp/tp2-zoo/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp2-zoo/animalerie.txt b/2A/Java/tp/tp2-zoo/animalerie.txt
deleted file mode 100644
index e716a30..0000000
--- a/2A/Java/tp/tp2-zoo/animalerie.txt
+++ /dev/null
@@ -1 +0,0 @@
-ours bidule 9 oiseau machin SUD 5 --end--
\ No newline at end of file
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/Main.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/Main.class
deleted file mode 100644
index 9fea7da..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/Main.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.class
deleted file mode 100644
index 6fff573..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.class
deleted file mode 100644
index 1f39de0..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry$Builder.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry$Builder.class
deleted file mode 100644
index 4da6a07..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry$Builder.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.class
deleted file mode 100644
index b3b3057..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.class
deleted file mode 100644
index 72cb4c2..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl$ThisBuilder.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl$ThisBuilder.class
deleted file mode 100644
index 62c1135..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl$ThisBuilder.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.class
deleted file mode 100644
index ee0145c..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.class
deleted file mode 100644
index c750812..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.class
deleted file mode 100644
index f00610e..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$AnimalSupplier.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$AnimalSupplier.class
deleted file mode 100644
index de76000..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$AnimalSupplier.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$Builder.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$Builder.class
deleted file mode 100644
index cd93953..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory$Builder.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.class
deleted file mode 100644
index 5b7a880..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl$ThisBuilder.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl$ThisBuilder.class
deleted file mode 100644
index d02ead7..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl$ThisBuilder.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.class
deleted file mode 100644
index e9846a1..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Afficheur.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Afficheur.class
deleted file mode 100644
index 22ac1b0..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Afficheur.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.class
deleted file mode 100644
index c862188..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.class
deleted file mode 100644
index d7b456b..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.class
deleted file mode 100644
index 5cfdc97..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Saisisseur.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Saisisseur.class
deleted file mode 100644
index a7772e6..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/Saisisseur.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.class
deleted file mode 100644
index 7c22e42..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Animalerie.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Animalerie.class
deleted file mode 100644
index eb03b22..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Animalerie.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Climat.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Climat.class
deleted file mode 100644
index f285d54..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Climat.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.class
deleted file mode 100644
index ea00165..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Lieu.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Lieu.class
deleted file mode 100644
index 025e7d8..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/Lieu.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.class
deleted file mode 100644
index e2f9703..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.class
deleted file mode 100644
index e4fcbea..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.class
deleted file mode 100644
index ec95cb4..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.class
deleted file mode 100644
index b5df87a..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.class
deleted file mode 100644
index 6bbcca1..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.class
deleted file mode 100644
index 13aaa23..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.class
deleted file mode 100644
index 20c7c29..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.class
deleted file mode 100644
index 3b25fe5..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.class
deleted file mode 100644
index 1e63e2e..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.class
deleted file mode 100644
index 4b1a222..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.class
deleted file mode 100644
index f8495d0..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.class b/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.class
deleted file mode 100644
index d3675d1..0000000
Binary files a/2A/Java/tp/tp2-zoo/out/production/tp2-zoo/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/Main.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/Main.java
deleted file mode 100644
index 0d27a1a..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/Main.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package fr.uca.iut.clfreville2.tp2;
-
-import fr.uca.iut.clfreville2.tp2.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp2.io.*;
-import fr.uca.iut.clfreville2.tp2.persistance.FileReaderPersistance;
-import fr.uca.iut.clfreville2.tp2.persistance.FileWriterPersistance;
-
-public final class Main {
-
- private Main() {}
-
- public static void main(String[] args) {
- Afficheur afficheur = new AfficheurConsole();
- Saisisseur saisisseur = new SaisisseurConsole();
- new CommandLineInterface(afficheur, saisisseur, CommandLineInterface.commandes(), AnimalFromUserInputFactory.create(), new FileReaderPersistance(), new FileWriterPersistance()).executer();
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.java
deleted file mode 100644
index 57120d9..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/CommandLineInterface.java
+++ /dev/null
@@ -1,89 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli;
-
-import fr.uca.iut.clfreville2.tp2.cli.cmd.AjouterCommande;
-import fr.uca.iut.clfreville2.tp2.cli.cmd.CommandRegistry;
-import fr.uca.iut.clfreville2.tp2.cli.cmd.ListerCommande;
-import fr.uca.iut.clfreville2.tp2.cli.cmd.PasserCommande;
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.io.Afficheur;
-import fr.uca.iut.clfreville2.tp2.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-import fr.uca.iut.clfreville2.tp2.persistance.ReadPersistance;
-import fr.uca.iut.clfreville2.tp2.persistance.WritePersistance;
-
-/**
- * Une interface en ligne de commande.
- */
-public final class CommandLineInterface {
-
- private final Afficheur afficheur;
- private final Saisisseur saisisseur;
- private final CommandRegistry commandes;
- private final Animalerie animalerie;
- private final AnimalFactory animalFactory;
- private final ReadPersistance readPersistance;
- private final WritePersistance writePersistance;
- private boolean quitter;
-
- public CommandLineInterface(Afficheur afficheur, Saisisseur saisisseur, CommandRegistry commandes, AnimalFactory animalFactory, ReadPersistance readPersistance, WritePersistance writePersistance) {
- this.afficheur = afficheur;
- this.saisisseur = saisisseur;
- this.commandes = commandes;
- this.animalerie = new Animalerie();
- this.animalFactory = animalFactory;
- this.readPersistance = readPersistance;
- this.writePersistance = writePersistance;
- }
-
- /**
- * Réalise la boucle principale de l'application.
- */
- public void executer() {
- readPersistance.lire(animalerie, animalFactory);
- while (!quitter) {
- commandes.rechercher(saisisseur.lireMot())
- .ifPresentOrElse(
- cmd -> cmd.run(this),
- () -> afficheur.afficherErreur("Action invalide")
- );
- }
- writePersistance.ecrire(animalerie, animalFactory);
- }
-
- public Animalerie getAnimalerie() {
- return animalerie;
- }
-
- public Afficheur getAfficheur() {
- return afficheur;
- }
-
- public Saisisseur getSaisisseur() {
- return saisisseur;
- }
-
- public AnimalFactory getAnimalFactory() {
- return animalFactory;
- }
-
- /**
- * Prépare l'arrêt de l'application.
- */
- public void stopper() {
- quitter = true;
- }
-
- /**
- * Créé le registre des commandes.
- *
- * @return Un registre complété avec des actions courantes.
- */
- public static CommandRegistry commandes() {
- CommandRegistry.Builder builder = CommandRegistry.builder();
- builder.enregistrer("quitter", CommandLineInterface::stopper);
- builder.enregistrer(ListerCommande.NOM, new ListerCommande());
- builder.enregistrer(AjouterCommande.NOM, new AjouterCommande());
- builder.enregistrer(PasserCommande.NOM, new PasserCommande());
- return builder.construire();
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.java
deleted file mode 100644
index bb355f1..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/AjouterCommande.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import fr.uca.iut.clfreville2.tp2.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-
-public class AjouterCommande implements Commande {
-
- public static final String NOM = "ajouter";
-
- @Override
- public void run(CommandLineInterface cli) {
- cli.getAfficheur().afficher("Quel genre d'animal ?");
- String genre = cli.getSaisisseur().lireMot();
- cli.getAfficheur().afficher("Quel est son nom ?");
- Animal animal = cli.getAnimalFactory().creer(genre, cli.getSaisisseur().lireMot(), cli.getAfficheur(), cli.getSaisisseur());
- cli.getAnimalerie().ajouter(animal);
- cli.getAfficheur().afficher("Animal rajouté !");
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.java
deleted file mode 100644
index b3493b6..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandRegistry.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import java.util.Optional;
-
-public interface CommandRegistry {
-
- Optional rechercher(String nom);
-
- static Builder builder() {
- return new CommandeRegistryImpl.ThisBuilder();
- }
-
- interface Builder {
-
- void enregistrer(String nom, Commande commande);
-
- CommandRegistry construire();
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.java
deleted file mode 100644
index e60f884..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/Commande.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import fr.uca.iut.clfreville2.tp2.cli.CommandLineInterface;
-
-/**
- * Une action réalisable depuis l'interface en ligne de commande.
- */
-@FunctionalInterface
-public interface Commande {
-
- /**
- * Exécute l'action dans le contexte de la ligne de commande.
- *
- * @param cli Contexte d'exécution.
- */
- void run(CommandLineInterface cli);
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.java
deleted file mode 100644
index 7e57a84..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/CommandeRegistryImpl.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-
-class CommandeRegistryImpl implements CommandRegistry {
-
- private final Map commandes;
-
- private CommandeRegistryImpl(Map commandes) {
- this.commandes = commandes;
- }
-
- @Override
- public Optional rechercher(String nom) {
- return Optional.ofNullable(commandes.get(nom));
- }
-
- static class ThisBuilder implements Builder {
-
- private final Map commandes = new HashMap<>();
-
- @Override
- public void enregistrer(String nom, Commande commande) {
- commandes.put(nom, commande);
- }
-
- @Override
- public CommandRegistry construire() {
- return new CommandeRegistryImpl(commandes);
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.java
deleted file mode 100644
index a219c5d..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/ListerCommande.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import fr.uca.iut.clfreville2.tp2.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-
-public class ListerCommande implements Commande {
-
- public static final String NOM = "lister";
-
- @Override
- public void run(CommandLineInterface cli) {
- if (cli.getAnimalerie().estVide()) {
- cli.getAfficheur().afficher("Aucun animal");
- }
- for (Animal animal : cli.getAnimalerie()) {
- cli.getAfficheur().afficher(animal.getPresentation());
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.java
deleted file mode 100644
index 4b74c26..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/cli/cmd/PasserCommande.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.cli.cmd;
-
-import fr.uca.iut.clfreville2.tp2.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-
-import java.util.Arrays;
-import java.util.stream.Collectors;
-
-public class PasserCommande implements Commande {
-
- public static final String NOM = "passer";
-
- @Override
- public void run(CommandLineInterface cli) {
- cli.getAfficheur().afficher("Quelle saison climatique (" + Arrays.stream(Climat.values()).map(Climat::name).collect(Collectors.joining("/")) + ") ?");
- Climat climat = cli.getSaisisseur().lireClimat();
- cli.getAnimalerie().passer(climat);
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.java
deleted file mode 100644
index a560f7e..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactory.java
+++ /dev/null
@@ -1,84 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.factory;
-
-import fr.uca.iut.clfreville2.tp2.io.Afficheur;
-import fr.uca.iut.clfreville2.tp2.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-
-/**
- * Construit un animal d'après son genre.
- *
- * @implNote Implémentation principale {@link AnimalFactoryImpl}.
- */
-public interface AnimalFactory {
-
- /**
- * Construit un animal d'après son genre et son nom.
- *
- * La factory peut éventuellement utiliser un afficheur et un saisisseur, voir les détails d'implémentations si nécessaire.
- *
- * @throws IllegalArgumentException Si le genre est inconnu.
- */
- Animal creer(String genre, String nom, Afficheur afficheur, Saisisseur saisisseur);
-
- /**
- * Associe à un animal son genre, utilisable pour créer une nouvelle instance du même type.
- *
- * @param animal L'animal pour lequel rechercher le genre.
- * @return Le type de l'animal.
- * @throws IllegalArgumentException Si le genre est inconnu.
- */
- String trouverGenre(Animal animal);
-
- /**
- * Créé un concepteur vide pour cette factory.
- *
- * @return Un concepteur vide.
- */
- static AnimalFactory.Builder builder() {
- return new AnimalFactoryImpl.ThisBuilder();
- }
-
- /**
- * Un concepteur de {@link AnimalFactory}.
- *
- * Une factory est d'abord construite pour un certain nombre d'animaux et est ensuite figée.
- */
- interface Builder {
-
- /**
- * Enregistre une façon d'obtenir un animal d'un certain type d'après un genre.
- *
- * @param genre Le genre (s'il existe déjà, alors la précédente valeur est remplacée).
- * @param animalSupplier Le moyen d'obtenir cet animal.
- * @param animalType Le type qui sera instancié de l'animal.
- * @param Le type de l'animal.
- */
- void enregistrer(String genre, AnimalSupplier animalSupplier, Class animalType);
-
- /**
- * Fige le concepteur et créé la factory.
- *
- * @return Une nouvelle factory.
- */
- AnimalFactory construire();
- }
-
- /**
- * Un moyen d'obtenir un animal.
- *
- * @param Le type final (donc celui qui sera instancié) de l'animal.
- */
- @FunctionalInterface
- interface AnimalSupplier {
-
- /**
- * Créé l'animal.
- *
- * @param nom Le nom à attribuer à cet animal.
- * @param afficheur L'afficheur à potentiellement utiliser.
- * @param saisisseur Le saisisseur à potentiellement utiliser.
- * @return Un nouvel animal.
- */
- T create(String nom, Afficheur afficheur, Saisisseur saisisseur);
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.java
deleted file mode 100644
index 7fabe14..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/factory/AnimalFactoryImpl.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.factory;
-
-import fr.uca.iut.clfreville2.tp2.io.Afficheur;
-import fr.uca.iut.clfreville2.tp2.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-
-import java.util.HashMap;
-import java.util.Map;
-
-class AnimalFactoryImpl implements AnimalFactory {
-
- private final Map> createur;
- private final Map, String> decomposeur;
-
- private AnimalFactoryImpl(Map> createur, Map, String> decomposeur) {
- this.createur = new HashMap<>(createur);
- this.decomposeur = new HashMap<>(decomposeur);
- }
-
- @Override
- public Animal creer(String genre, String nom, Afficheur afficheur, Saisisseur saisisseur) {
- return createur.getOrDefault(genre, (a, b, c) -> {
- throw new IllegalArgumentException("Genre d'animal inconnu");
- }).create(nom, afficheur, saisisseur);
- }
-
- @Override
- public String trouverGenre(Animal animal) {
- String name = decomposeur.get(animal.getClass());
- if (name == null) {
- throw new IllegalArgumentException("Genre d'animal inconnu");
- }
- return name;
- }
-
- static class ThisBuilder implements AnimalFactory.Builder {
-
- private final Map> createur = new HashMap<>();
- private final Map, String> decomposeur = new HashMap<>();
-
- @Override
- public void enregistrer(String genre, AnimalSupplier animalSupplier, Class animalType) {
- createur.put(genre, animalSupplier);
- decomposeur.put(animalType, genre);
- }
-
- @Override
- public AnimalFactory construire() {
- return new AnimalFactoryImpl(createur, decomposeur);
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Afficheur.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Afficheur.java
deleted file mode 100644
index e7452d1..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Afficheur.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-/**
- * Quelque chose qui permet de présenter des informations à l'utilisateur.
- */
-public interface Afficheur {
-
- void afficher(String message);
-
- void afficherErreur(String message);
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.java
deleted file mode 100644
index 13582dd..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AfficheurConsole.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-import java.io.PrintStream;
-
-public class AfficheurConsole implements Afficheur {
-
- private final PrintStream fluxStandard = System.out;
- private final PrintStream fluxErreur = System.err;
-
- @Override
- public void afficher(String message) {
- fluxStandard.println(message);
- }
-
- @Override
- public void afficherErreur(String message) {
- fluxErreur.println(message);
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.java
deleted file mode 100644
index aefcee9..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/AnimalFromUserInputFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Oiseau;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Ours;
-
-/**
- * Fournit une pré-selection d'animaux pour créer une {@link AnimalFactory}.
- */
-public final class AnimalFromUserInputFactory {
-
- private AnimalFromUserInputFactory() {}
-
- public static AnimalFactory create() {
- AnimalFactory.Builder builder = AnimalFactory.builder();
- builder.enregistrer("ours", (nom, afficheur, saisisseur) -> {
- afficheur.afficher("Combien de poils ?");
- return new Ours(nom, saisisseur.lireInt());
- }, Ours.class);
- builder.enregistrer("oiseau", (nom, afficheur, saisisseur) -> {
- afficheur.afficher("Quel lieu actuel ?");
- Lieu lieu = saisisseur.lireLieu();
- afficheur.afficher("Combien de plumes ?");
- return new Oiseau(nom, lieu, saisisseur.lireInt());
- }, Oiseau.class);
- return builder.construire();
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.java
deleted file mode 100644
index 274baa1..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/NoopAfficheur.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-public class NoopAfficheur implements Afficheur {
- @Override
- public void afficher(String message) {
-
- }
-
- @Override
- public void afficherErreur(String message) {
-
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Saisisseur.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Saisisseur.java
deleted file mode 100644
index 39366f5..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/Saisisseur.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-
-/**
- * Quelque chose qui permet de récupérer des informations.
- */
-public interface Saisisseur {
-
- String lireMot();
-
- int lireInt();
-
- Climat lireClimat();
-
- Lieu lireLieu();
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.java
deleted file mode 100644
index 1bed5d1..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/io/SaisisseurConsole.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.io;
-
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-
-import java.io.Reader;
-import java.util.Scanner;
-
-public class SaisisseurConsole implements Saisisseur {
-
- private final Scanner scanner;
-
- public SaisisseurConsole(Reader reader) {
- scanner = new Scanner(reader);
- }
-
- public SaisisseurConsole() {
- this.scanner = new Scanner(System.in);
- }
-
- @Override
- public String lireMot() {
- return scanner.next();
- }
-
- @Override
- public int lireInt() {
- return scanner.nextInt();
- }
-
- @Override
- public Climat lireClimat() {
- return lireEnum(Climat.class);
- }
-
- @Override
- public Lieu lireLieu() {
- return lireEnum(Lieu.class);
- }
-
- private > E lireEnum(Class enumClass) {
- return Enum.valueOf(enumClass, lireMot());
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Animalerie.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Animalerie.java
deleted file mode 100644
index 878a506..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Animalerie.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele;
-
-import fr.uca.iut.clfreville2.tp2.modele.comportement.SubitClimat;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-public class Animalerie implements SubitClimat, Iterable {
-
- private final List animaux = new ArrayList<>();
-
- public List getAnimaux() {
- return Collections.unmodifiableList(animaux);
- }
-
- public void ajouter(Animal animal) {
- animaux.add(animal);
- }
-
- public boolean estVide() {
- return animaux.isEmpty();
- }
-
- @Override
- public void passer(Climat climat) {
- animaux.forEach(a -> a.passer(climat));
- }
-
- @Override
- public Iterator iterator() {
- return getAnimaux().iterator();
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Climat.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Climat.java
deleted file mode 100644
index b0266f3..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Climat.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele;
-
-public enum Climat {
-
- ETE,
- AUTOMNE,
- HIVER,
- PRINTEMPS
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.java
deleted file mode 100644
index c8fba2f..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/EtreVivant.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele;
-
-import fr.uca.iut.clfreville2.tp2.modele.comportement.SubitClimat;
-
-public interface EtreVivant extends SubitClimat {
-
- String getPresentation();
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Lieu.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Lieu.java
deleted file mode 100644
index 481b83d..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/Lieu.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele;
-
-public enum Lieu {
-
- NORD,
- SUD
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.java
deleted file mode 100644
index f640efe..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/CapaciteMotrices.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.comportement;
-
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-
-public interface CapaciteMotrices {
-
- void setLieu(Lieu lieu);
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.java
deleted file mode 100644
index dfef44b..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Hibernateur.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.comportement;
-
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-
-/**
- * Ce qui hiberne pour s'adapter au changement de climat.
- */
-public interface Hibernateur extends SubitClimat {
-
- @Override
- default void passer(Climat climat) {
- if (climat == Climat.HIVER) {
- hiberner();
- } else {
- reveiller();
- }
- }
-
- void hiberner();
-
- void reveiller();
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.java
deleted file mode 100644
index dc1694b..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/Migrateur.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.comportement;
-
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-
-/**
- * Ce qui migre pour s'adapter au changement de climat.
- */
-public interface Migrateur extends CapaciteMotrices, SubitClimat {
-
- @Override
- default void passer(Climat climat) {
- if (climat == Climat.AUTOMNE || climat == Climat.HIVER) {
- setLieu(Lieu.SUD);
- } else {
- setLieu(Lieu.NORD);
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.java
deleted file mode 100644
index 9705d33..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/comportement/SubitClimat.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.comportement;
-
-import fr.uca.iut.clfreville2.tp2.modele.Climat;
-
-public interface SubitClimat {
-
- void passer(Climat climat);
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.java
deleted file mode 100644
index b6d9789..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Animal.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.impl;
-
-import fr.uca.iut.clfreville2.tp2.modele.EtreVivant;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-import fr.uca.iut.clfreville2.tp2.modele.comportement.CapaciteMotrices;
-
-/**
- * Une base d'animal.
- *
- * La classe est scellée pour prévenir de tout héritage supplémentaire.
- */
-public sealed abstract class Animal implements EtreVivant, CapaciteMotrices permits Oiseau, Ours {
-
- private final String nom;
- private Lieu lieu;
-
- public Animal(String nom, Lieu lieu) {
- this.nom = nom;
- this.lieu = lieu;
- }
-
- public String getNom() {
- return nom;
- }
-
- public Lieu getLieu() {
- return lieu;
- }
-
- @Override
- public void setLieu(Lieu lieu) {
- this.lieu = lieu;
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.java
deleted file mode 100644
index fe6171c..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Oiseau.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.impl;
-
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-import fr.uca.iut.clfreville2.tp2.modele.comportement.Migrateur;
-
-public final class Oiseau extends Animal implements Migrateur {
-
- private final int nbPlumes;
-
- public Oiseau(String nom, Lieu lieu, int nbPlumes) {
- super(nom, lieu);
- this.nbPlumes = nbPlumes;
- }
-
- public int getNbPlumes() {
- return nbPlumes;
- }
-
- @Override
- public String getPresentation() {
- return getNom() + " vole dans la région du " + getLieu().name() + " avec " + nbPlumes + " plumes";
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.java
deleted file mode 100644
index 79bfa73..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/modele/impl/Ours.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.modele.impl;
-
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-import fr.uca.iut.clfreville2.tp2.modele.comportement.Hibernateur;
-
-public final class Ours extends Animal implements Hibernateur {
-
- private final int nbPoils;
- private boolean hiberne;
-
- public Ours(String nom, int nbPoils) {
- super(nom, Lieu.NORD);
- this.nbPoils = nbPoils;
- }
-
- @Override
- public String getPresentation() {
- return getNom() + (hiberne ? " hiberne " : " pêche ") + "et a " + nbPoils + " poils.";
- }
-
- public int getNbPoils() {
- return nbPoils;
- }
-
- @Override
- public void hiberner() {
- this.hiberne = true;
- }
-
- @Override
- public void reveiller() {
- this.hiberne = false;
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.java
deleted file mode 100644
index 4a82385..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileReaderPersistance.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.persistance;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.io.Afficheur;
-import fr.uca.iut.clfreville2.tp2.io.NoopAfficheur;
-import fr.uca.iut.clfreville2.tp2.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp2.io.SaisisseurConsole;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.Reader;
-
-public class FileReaderPersistance implements ReadPersistance {
-
- private final String filename;
-
- public FileReaderPersistance(String filename) {
- this.filename = filename;
- }
-
- public FileReaderPersistance() {
- this("animalerie.txt");
- }
-
- @Override
- public void lire(Animalerie animalerie, AnimalFactory factory) {
- try (Reader reader = new FileReader(filename)) {
- // Plutôt que d'implémenter une nouvelle factory pour créer les animaux,
- // je réutilise la factory existante en masquant tous les messages affichés.
- Afficheur afficheur = new NoopAfficheur();
- Saisisseur saisisseur = new SaisisseurConsole(reader);
- String genre;
- while (!(genre = saisisseur.lireMot()).equals("--end--")) {
- String nom = saisisseur.lireMot();
- Animal animal = factory.creer(genre, nom, afficheur, saisisseur);
- animalerie.ajouter(animal);
- }
- } catch (FileNotFoundException ignored) {
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.java
deleted file mode 100644
index ec4d64e..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/FileWriterPersistance.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.persistance;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Animal;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Oiseau;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Ours;
-
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-
-/**
- * Une persistance écrivant dans un fichier.
- */
-public class FileWriterPersistance implements WritePersistance {
-
- private final String filename;
-
- public FileWriterPersistance(String filename) {
- this.filename = filename;
- }
-
- public FileWriterPersistance() {
- this("animalerie.txt");
- }
-
- @Override
- public void ecrire(Animalerie animalerie, AnimalFactory factory) {
- try (Writer writer = new FileWriter(filename)) {
- for (Animal animal : animalerie) {
- // Écrit l'information du type instancié de l'animal
- writer.write(factory.trouverGenre(animal));
- writer.write(' ');
-
- // Écrit les informations généralistes de l'animal
- writer.write(animal.getNom());
- writer.write(' ');
-
- // Pour écrire les informations spécifiques à un animal, il va falloir instanceof pour récupérer le type instancié
- // Plutôt qu'un enchaînement de conditions, j'utilise ici la feature preview Java 17 du pattern matching pour les switch
- switch (animal) {
- case Oiseau oiseau -> {
- writer.write(oiseau.getLieu().name());
- writer.write(' ');
- writer.write(Integer.toString(oiseau.getNbPlumes()));
- }
- case Ours ours -> writer.write(Integer.toString(ours.getNbPoils()));
- }
- writer.write(' ');
- }
- writer.write("--end--");
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.java
deleted file mode 100644
index 2c2e3ea..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/ReadPersistance.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.persistance;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-
-/**
- * Quelque chose qui permet de lire des données persistées.
- */
-public interface ReadPersistance {
-
- void lire(Animalerie animalerie, AnimalFactory factory);
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.java
deleted file mode 100644
index a7327f4..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/StubReadPersistance.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.persistance;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-import fr.uca.iut.clfreville2.tp2.modele.Lieu;
-import fr.uca.iut.clfreville2.tp2.modele.impl.Oiseau;
-
-public class StubReadPersistance implements ReadPersistance {
- @Override
- public void lire(Animalerie animalerie, AnimalFactory factory) {
- animalerie.ajouter(new Oiseau("pivert", Lieu.NORD, 5));
- animalerie.ajouter(new Oiseau("colibri", Lieu.NORD, 4));
- }
-}
diff --git a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.java b/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.java
deleted file mode 100644
index 6af97b0..0000000
--- a/2A/Java/tp/tp2-zoo/src/fr/uca/iut/clfreville2/tp2/persistance/WritePersistance.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.tp2.persistance;
-
-import fr.uca.iut.clfreville2.tp2.factory.AnimalFactory;
-import fr.uca.iut.clfreville2.tp2.modele.Animalerie;
-
-/**
- * Quelque chose qui permet d'écrire une animalerie pour la persister.
- */
-public interface WritePersistance {
-
- void ecrire(Animalerie animalerie, AnimalFactory factory);
-}
diff --git a/2A/Java/tp/tp3-vehicules/.idea/.gitignore b/2A/Java/tp/tp3-vehicules/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/2A/Java/tp/tp3-vehicules/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/2A/Java/tp/tp3-vehicules/.idea/misc.xml b/2A/Java/tp/tp3-vehicules/.idea/misc.xml
deleted file mode 100644
index a346fd7..0000000
--- a/2A/Java/tp/tp3-vehicules/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp3-vehicules/.idea/modules.xml b/2A/Java/tp/tp3-vehicules/.idea/modules.xml
deleted file mode 100644
index 38d3733..0000000
--- a/2A/Java/tp/tp3-vehicules/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp3-vehicules/.idea/uiDesigner.xml b/2A/Java/tp/tp3-vehicules/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946..0000000
--- a/2A/Java/tp/tp3-vehicules/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp3-vehicules/garage.bin b/2A/Java/tp/tp3-vehicules/garage.bin
deleted file mode 100644
index 294a6e2..0000000
Binary files a/2A/Java/tp/tp3-vehicules/garage.bin and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/garage.txt b/2A/Java/tp/tp3-vehicules/garage.txt
deleted file mode 100644
index 725d0e7..0000000
--- a/2A/Java/tp/tp3-vehicules/garage.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-camion 9
-voiture 4
-camionnette
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/Main.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/Main.class
deleted file mode 100644
index 2697c38..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/Main.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.class
deleted file mode 100644
index 1c4fadc..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory$Builder.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory$Builder.class
deleted file mode 100644
index dac569f..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory$Builder.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.class
deleted file mode 100644
index 4c30049..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl$ThisBuilder.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl$ThisBuilder.class
deleted file mode 100644
index 22b645c..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl$ThisBuilder.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.class
deleted file mode 100644
index 62a594e..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Builder.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Builder.class
deleted file mode 100644
index 805c4b0..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Builder.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Context.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Context.class
deleted file mode 100644
index 810a0e2..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory$Context.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.class
deleted file mode 100644
index d6f7d74..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$1.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$1.class
deleted file mode 100644
index 4de982d..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$1.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$ThisBuilder.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$ThisBuilder.class
deleted file mode 100644
index a59ef4b..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl$ThisBuilder.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.class
deleted file mode 100644
index b379574..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Afficheur.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Afficheur.class
deleted file mode 100644
index 8e36c77..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Afficheur.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.class
deleted file mode 100644
index 3329895..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.class
deleted file mode 100644
index b700f7d..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Saisisseur.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Saisisseur.class
deleted file mode 100644
index d25accd..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/Saisisseur.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.class
deleted file mode 100644
index 901020a..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camion.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camion.class
deleted file mode 100644
index f0018d2..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camion.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camionnette.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camionnette.class
deleted file mode 100644
index bfae8ab..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Camionnette.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Garage.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Garage.class
deleted file mode 100644
index a0ec7f2..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Garage.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Vehicule.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Vehicule.class
deleted file mode 100644
index 8f6de82..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Vehicule.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Voiture.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Voiture.class
deleted file mode 100644
index f1835fe..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/modele/Voiture.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.class
deleted file mode 100644
index 4b5de87..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.class
deleted file mode 100644
index 075edc1..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.class
deleted file mode 100644
index dae1a65..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.class
deleted file mode 100644
index 1dd45ef..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.class
deleted file mode 100644
index 2b8826a..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.class
deleted file mode 100644
index ed4a345..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.class b/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.class
deleted file mode 100644
index f93d033..0000000
Binary files a/2A/Java/tp/tp3-vehicules/out/production/tp3-vehicules/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.class and /dev/null differ
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/Main.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/Main.java
deleted file mode 100644
index 489cae8..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/Main.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package fr.uca.iut.clfreville2.tp3;
-
-import fr.uca.iut.clfreville2.tp3.cli.CommandLineInterface;
-import fr.uca.iut.clfreville2.tp3.factory.ActionFactory;
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.io.Afficheur;
-import fr.uca.iut.clfreville2.tp3.io.AfficheurConsole;
-import fr.uca.iut.clfreville2.tp3.modele.Camion;
-import fr.uca.iut.clfreville2.tp3.modele.Camionnette;
-import fr.uca.iut.clfreville2.tp3.modele.Voiture;
-import fr.uca.iut.clfreville2.tp3.persistance.*;
-
-public final class Main {
-
- public static void main(String[] args) {
- Afficheur afficheur = new AfficheurConsole();
-
- var chargeurs = chargeurs();
- if (args.length < 2 || args[0].equals("help")) {
- afficheur.afficher("Choisissez votre cocktail: ");
- afficheur.afficher("Chargeurs disponibles : " + String.join(", ", chargeurs.actions())); // Idem pour les sauveurs, mais le switch est beau
- return;
- }
-
- ChargeurGarage chargeur = chargeur(args[0], chargeurs, afficheur);
- SauveurGarage sauveur = sauveur(args[1], afficheur);
- new CommandLineInterface(chargeur, sauveur, factory()).executer();
- }
-
- private static ChargeurGarage chargeur(String choix, ActionFactory factory, Afficheur afficheur) {
- try {
- return factory.create(choix);
- } catch (IllegalArgumentException ex) {
- afficheur.afficherErreur("Choix inconnu !");
- System.exit(1);
- }
- return null;
- }
-
- private static SauveurGarage sauveur(String choix, Afficheur afficheur) {
- return switch (choix) {
- case "noop" -> new NoopSauveurGarage();
- case "texte" -> new TextFileGaragePersistance();
- case "binaire" -> new BinaryFilePersistance();
- case "tsv" -> new TsvFilePersistance();
- default -> {
- afficheur.afficherErreur("Choix inconnu !");
- System.exit(1);
- yield null;
- }
- };
- }
-
- private static VehiculeFactory factory() {
- var builder = VehiculeFactory.builder();
- builder.referencer("camion", (ctx) -> new Camion(ctx.getSaisisseur().demanderInt()), Camion.class);
- builder.referencer("camionnette", (ctx) -> new Camionnette(), Camionnette.class);
- builder.referencer("voiture", (ctx) -> new Voiture(ctx.getSaisisseur().demanderInt()), Voiture.class);
- return builder.construire();
- }
-
-
- private static ActionFactory chargeurs() {
- ActionFactory.Builder builder = ActionFactory.builder();
- builder.enregistrer("stub", StubChargeurGarage::new);
- builder.enregistrer("texte", TextFileGaragePersistance::new);
- builder.enregistrer("tsv", TsvFilePersistance::new);
- builder.enregistrer("binaire", BinaryFilePersistance::new);
- return builder.construire();
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.java
deleted file mode 100644
index ca1fe1c..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/cli/CommandLineInterface.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.cli;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-import fr.uca.iut.clfreville2.tp3.persistance.ChargeurGarage;
-import fr.uca.iut.clfreville2.tp3.persistance.SauveurGarage;
-
-public final class CommandLineInterface {
-
- private final ChargeurGarage chargeur;
- private final SauveurGarage sauveur;
- private final VehiculeFactory factory;
-
- public CommandLineInterface(ChargeurGarage chargeur, SauveurGarage sauveur, VehiculeFactory factory) {
- this.chargeur = chargeur;
- this.sauveur = sauveur;
- this.factory = factory;
- }
-
- public void executer() {
- Garage garage = new Garage();
- try {
- chargeur.charger(garage, factory);
- } catch (java.io.IOException e) {
- throw new RuntimeException(e);
- }
- /*while (true) {
- }*/
- try {
- sauveur.sauver(garage, factory);
- } catch (java.io.IOException e) {
- throw new RuntimeException(e);
- }
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.java
deleted file mode 100644
index 2db8d5e..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactory.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.factory;
-
-import java.util.Set;
-import java.util.function.Supplier;
-
-public interface ActionFactory {
-
- T create(String type);
-
- Set actions();
-
- static Builder builder() {
- return new ActionFactoryImpl.ThisBuilder<>();
- }
-
- interface Builder {
-
- void enregistrer(String type, Supplier supplier);
-
- ActionFactory construire();
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.java
deleted file mode 100644
index 8fbf25d..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/ActionFactoryImpl.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.factory;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.Supplier;
-
-class ActionFactoryImpl implements ActionFactory {
-
- private final Map> suppliers;
-
- public ActionFactoryImpl(Map> suppliers) {
- this.suppliers = suppliers;
- }
-
- @Override
- public T create(String type) {
- return suppliers.getOrDefault(type, () -> {
- throw new IllegalArgumentException("type inconnu");
- }).get();
- }
-
- @Override
- public Set actions() {
- return suppliers.keySet();
- }
-
- static class ThisBuilder implements Builder {
- private final Map> suppliers = new HashMap<>();
-
-
- @Override
- public void enregistrer(String type, Supplier supplier) {
- suppliers.put(type, supplier);
- }
-
- @Override
- public ActionFactory construire() {
- return new ActionFactoryImpl<>(suppliers);
- }
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.java
deleted file mode 100644
index 131ddb9..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactory.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.factory;
-
-import fr.uca.iut.clfreville2.tp3.io.Afficheur;
-import fr.uca.iut.clfreville2.tp3.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp3.modele.Vehicule;
-
-import java.util.function.Function;
-
-public interface VehiculeFactory {
-
- String nommer(Vehicule vehicule);
-
- T creer(String type, Afficheur afficheur, Saisisseur saisisseur);
-
- static Builder builder() {
- return new VehiculeFactoryImpl.ThisBuilder();
- }
-
- interface Builder {
- void referencer(String type, Function supplier, Class vehicule);
-
- VehiculeFactory construire();
- }
-
- interface Context {
- Afficheur getAfficheur();
- Saisisseur getSaisisseur();
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.java
deleted file mode 100644
index 0431a51..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/factory/VehiculeFactoryImpl.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.factory;
-
-import fr.uca.iut.clfreville2.tp3.io.Afficheur;
-import fr.uca.iut.clfreville2.tp3.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp3.modele.Vehicule;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.function.Function;
-
-import static java.util.Objects.requireNonNull;
-
-class VehiculeFactoryImpl implements VehiculeFactory {
-
- private final Map> registre;
- private final Map, String> noms;
-
- private VehiculeFactoryImpl(Map> registre, Map, String> noms) {
- this.registre = registre;
- this.noms = noms;
- }
-
- @Override
- public String nommer(Vehicule vehicule) {
- return requireNonNull(noms.get(vehicule.getClass()), "type de véhicule inconnu au bataillon");
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public T creer(String type, Afficheur afficheur, Saisisseur saisisseur) {
- Vehicule vehicule = requireNonNull(registre.get(type), "type").apply(new Context() {
- @Override
- public Afficheur getAfficheur() {
- return afficheur;
- }
-
- @Override
- public Saisisseur getSaisisseur() {
- return saisisseur;
- }
- });
- return (T) vehicule;
- /* if (null instanceof T) {
-
- }
- if (vehicule instanceof T) { // trop beau pour être vrai
- return (T) vehicule;
- }*/
- //T.class.cast(vehicule);
- //throw new IllegalStateException("dommage");
- }
-
- public static class ThisBuilder implements Builder {
-
- private final Map> registre = new HashMap<>();
- private final Map, String> noms = new HashMap<>();
-
- @Override
- public void referencer(String type, Function supplier, Class vehicule) {
- registre.put(type, supplier);
- noms.put(vehicule, type);
- }
-
- @Override
- public VehiculeFactory construire() {
- return new VehiculeFactoryImpl(Collections.unmodifiableMap(registre), Collections.unmodifiableMap(noms));
- }
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Afficheur.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Afficheur.java
deleted file mode 100644
index b0cc4c1..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Afficheur.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.io;
-
-public interface Afficheur {
-
- void afficher(String message);
-
- void afficherErreur(String message);
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.java
deleted file mode 100644
index 2772668..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/AfficheurConsole.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.io;
-
-import java.io.PrintStream;
-
-public class AfficheurConsole implements Afficheur {
-
- private final PrintStream out;
- private final PrintStream err;
-
- public AfficheurConsole(PrintStream out, PrintStream err) {
- this.out = out;
- this.err = err;
- }
-
- public AfficheurConsole() {
- this(System.out, System.err);
- }
-
- @Override
- public void afficher(String message) {
- out.println(message);
- }
-
- @Override
- public void afficherErreur(String message) {
- err.println(message);
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.java
deleted file mode 100644
index dc4cdd7..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/NoopAfficheur.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.io;
-
-public class NoopAfficheur implements Afficheur {
- @Override
- public void afficher(String message) {
-
- }
-
- @Override
- public void afficherErreur(String message) {
-
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Saisisseur.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Saisisseur.java
deleted file mode 100644
index 34a7123..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/Saisisseur.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.io;
-
-public interface Saisisseur {
-
- String demanderMot();
-
- int demanderInt();
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.java
deleted file mode 100644
index 7984042..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/io/SaisisseurConsole.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.io;
-
-import java.io.InputStream;
-import java.io.Reader;
-import java.util.Scanner;
-
-public class SaisisseurConsole implements Saisisseur {
-
- private final Scanner scanner;
-
- public SaisisseurConsole(InputStream stream) {
- this.scanner = new Scanner(stream);
- }
-
- public SaisisseurConsole(Reader lecteur) {
- this.scanner = new Scanner(lecteur);
- }
-
- public SaisisseurConsole(String lecteur) {
- this.scanner = new Scanner(lecteur);
- }
-
- public SaisisseurConsole() {
- this(System.in);
- }
-
- @Override
- public String demanderMot() {
- return scanner.next();
- }
-
- @Override
- public int demanderInt() {
- return scanner.nextInt();
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camion.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camion.java
deleted file mode 100644
index ecb9ec8..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camion.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.modele;
-
-public record Camion(int capacite) implements Vehicule {
- public Camion {
- if (capacite < 0) {
- throw new IllegalArgumentException("Capacité invalide!");
- }
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camionnette.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camionnette.java
deleted file mode 100644
index 564bde1..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Camionnette.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.modele;
-
-public record Camionnette() implements Vehicule {
-
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Garage.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Garage.java
deleted file mode 100644
index ef49b8a..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Garage.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.modele;
-
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.List;
-
-public class Garage implements Iterable, Serializable {
-
- private final List vehicules = new ArrayList<>();
-
- public List getVehicules() {
- return Collections.unmodifiableList(vehicules);
- }
-
- @Override
- public Iterator iterator() {
- return getVehicules().iterator();
- }
-
- public void referencer(Vehicule vehicule) {
- vehicules.add(vehicule);
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Vehicule.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Vehicule.java
deleted file mode 100644
index 9266bec..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Vehicule.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.modele;
-
-import java.io.Serializable;
-
-public interface Vehicule extends Serializable {
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Voiture.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Voiture.java
deleted file mode 100644
index 30276e8..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/modele/Voiture.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.modele;
-
-public record Voiture(int passagers) implements Vehicule {
-
- public Voiture {
- if (passagers < 0) {
- throw new IllegalArgumentException("Nombre de passagers invalide!");
- }
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.java
deleted file mode 100644
index e9f75f0..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/BinaryFilePersistance.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-
-import java.io.*;
-import java.nio.file.Path;
-
-public class BinaryFilePersistance implements ChargeurGarage, SauveurGarage {
- private static final Path CHEMIN_FICHIER_DEFAUT = Path.of("garage.bin");
-
- private final Path path;
-
- public BinaryFilePersistance(Path path) {
- this.path = path;
- }
-
- public BinaryFilePersistance() {
- this(CHEMIN_FICHIER_DEFAUT);
- }
-
- @Override
- public void charger(Garage garage, VehiculeFactory factory) throws IOException {
- try (InputStream lecteur = new FileInputStream(path.toFile());
- ObjectInputStream lecteurObjet = new ObjectInputStream(lecteur)) {
- Object object = lecteurObjet.readObject();
- if (object instanceof Garage g) {
- g.iterator().forEachRemaining(garage::referencer);
- }
- } catch (FileNotFoundException ignored) {
- } catch (ClassNotFoundException ex) {
- sneakyThrow(ex);
- }
- }
-
- @Override
- public void sauver(Garage garage, VehiculeFactory factory) throws IOException {
- try (OutputStream sortie = new FileOutputStream(path.toFile());
- ObjectOutputStream sortieObjet = new ObjectOutputStream(sortie)) {
- sortieObjet.writeObject(garage);
- } catch (FileNotFoundException ignored) {
- }
- }
-
- public static void sneakyThrow(Throwable e) throws E {
- throw (E) e;
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.java
deleted file mode 100644
index 6d4fa0f..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/ChargeurGarage.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-
-import java.io.IOException;
-
-@FunctionalInterface
-public interface ChargeurGarage {
-
- void charger(Garage garage, VehiculeFactory factory) throws IOException;
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.java
deleted file mode 100644
index 84cedf4..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/NoopSauveurGarage.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-
-import java.io.IOException;
-
-public class NoopSauveurGarage implements SauveurGarage {
- @Override
- public void sauver(Garage garage, VehiculeFactory factory) throws IOException {
- // noop
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.java
deleted file mode 100644
index 0e8c751..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/SauveurGarage.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-
-import java.io.IOException;
-
-@FunctionalInterface
-public interface SauveurGarage {
-
- void sauver(Garage garage, VehiculeFactory factory) throws IOException;
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.java
deleted file mode 100644
index fdede3d..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/StubChargeurGarage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.modele.Camion;
-import fr.uca.iut.clfreville2.tp3.modele.Camionnette;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-import fr.uca.iut.clfreville2.tp3.modele.Voiture;
-
-import java.io.IOException;
-
-public class StubChargeurGarage implements ChargeurGarage {
- @Override
- public void charger(Garage garage, VehiculeFactory factory) throws IOException {
- garage.referencer(new Camion(9));
- garage.referencer(new Voiture(4));
- garage.referencer(new Camionnette());
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.java
deleted file mode 100644
index 06d8cd9..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TextFileGaragePersistance.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import fr.uca.iut.clfreville2.tp3.factory.VehiculeFactory;
-import fr.uca.iut.clfreville2.tp3.io.NoopAfficheur;
-import fr.uca.iut.clfreville2.tp3.io.Saisisseur;
-import fr.uca.iut.clfreville2.tp3.io.SaisisseurConsole;
-import fr.uca.iut.clfreville2.tp3.modele.Camion;
-import fr.uca.iut.clfreville2.tp3.modele.Garage;
-import fr.uca.iut.clfreville2.tp3.modele.Vehicule;
-import fr.uca.iut.clfreville2.tp3.modele.Voiture;
-
-import java.io.*;
-import java.nio.file.Path;
-
-public class TextFileGaragePersistance implements SauveurGarage, ChargeurGarage {
-
- private static final Path CHEMIN_FICHIER_DEFAUT = Path.of("garage.txt");
-
- private final Path path;
-
- public TextFileGaragePersistance(Path path) {
- this.path = path;
- }
-
- public TextFileGaragePersistance() {
- this(CHEMIN_FICHIER_DEFAUT);
- }
-
- @Override
- public void charger(Garage garage, VehiculeFactory factory) throws IOException {
- try (Reader lecteur = new FileReader(path.toFile());
- BufferedReader lecteurBuf = new BufferedReader(lecteur)) {
- String line;
- while ((line = lecteurBuf.readLine()) != null) {
- Saisisseur saisisseur = new SaisisseurConsole(line);
- Vehicule vehicule = factory.creer(saisisseur.demanderMot(), new NoopAfficheur(), saisisseur);
- garage.referencer(vehicule);
- }
- } catch (FileNotFoundException ignored) {
- }
- }
-
- @Override
- public void sauver(Garage garage, VehiculeFactory factory) throws IOException {
- char separateur = getSeparateur();
- try (Writer writer = new FileWriter(path.toFile())) {
- for (Vehicule vehicule : garage) {
- writer.append(factory.nommer(vehicule)).append(separateur);
- switch (vehicule) {
- case Camion camion -> writer.append(Integer.toString(camion.capacite()));
- case Voiture voiture -> writer.append(Integer.toString(voiture.passagers()));
- default -> { /* Je suis un cas potentiellement oublié */ }
- }
- writer.append('\n');
- }
- } catch (FileNotFoundException ignored) {
- }
- }
-
- public char getSeparateur() {
- return ' ';
- }
-}
diff --git a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.java b/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.java
deleted file mode 100644
index 2188bba..0000000
--- a/2A/Java/tp/tp3-vehicules/src/fr/uca/iut/clfreville2/tp3/persistance/TsvFilePersistance.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package fr.uca.iut.clfreville2.tp3.persistance;
-
-import java.nio.file.Path;
-
-public class TsvFilePersistance extends TextFileGaragePersistance {
-
- private static final Path CHEMIN_FICHIER_DEFAUT = Path.of("garage.csv");
-
- public TsvFilePersistance(Path path) {
- super(path);
- }
-
- public TsvFilePersistance() {
- super(CHEMIN_FICHIER_DEFAUT);
- }
-
- @Override
- public char getSeparateur() {
- return '\t';
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/.idea/.gitignore b/2A/Java/tp/tp4-fichier/.idea/.gitignore
deleted file mode 100644
index 26d3352..0000000
--- a/2A/Java/tp/tp4-fichier/.idea/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
diff --git a/2A/Java/tp/tp4-fichier/.idea/misc.xml b/2A/Java/tp/tp4-fichier/.idea/misc.xml
deleted file mode 100644
index a346fd7..0000000
--- a/2A/Java/tp/tp4-fichier/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp4-fichier/.idea/modules.xml b/2A/Java/tp/tp4-fichier/.idea/modules.xml
deleted file mode 100644
index 5e24095..0000000
--- a/2A/Java/tp/tp4-fichier/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp4-fichier/.idea/uiDesigner.xml b/2A/Java/tp/tp4-fichier/.idea/uiDesigner.xml
deleted file mode 100644
index 2b63946..0000000
--- a/2A/Java/tp/tp4-fichier/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump$Visitor.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump$Visitor.class
deleted file mode 100644
index e2ecd73..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump$Visitor.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump.class
deleted file mode 100644
index 9a389c7..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/io/Dump.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.class
deleted file mode 100644
index 3a87cd9..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Directory.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Directory.class
deleted file mode 100644
index 62e1f51..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Directory.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/File.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/File.class
deleted file mode 100644
index 4ea9643..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/File.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Inode.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Inode.class
deleted file mode 100644
index bcc12e6..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Inode.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Partition.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Partition.class
deleted file mode 100644
index b0dd38b..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Partition.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissible.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissible.class
deleted file mode 100644
index a64d7c1..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissible.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissions.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissions.class
deleted file mode 100644
index cdc234b..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/Permissions.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/WritableStream.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/WritableStream.class
deleted file mode 100644
index a6c5166..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/model/WritableStream.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.class
deleted file mode 100644
index 8f6e842..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/CommandInput.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/CommandInput.class
deleted file mode 100644
index 81730cc..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/CommandInput.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/FileCommandInput.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/FileCommandInput.class
deleted file mode 100644
index 292f441..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/FileCommandInput.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Main.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Main.class
deleted file mode 100644
index 803680e..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Main.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Shell.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Shell.class
deleted file mode 100644
index 186b04d..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/Shell.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/UserCommandInput.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/UserCommandInput.class
deleted file mode 100644
index 7a266a2..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/UserCommandInput.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/Command.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/Command.class
deleted file mode 100644
index ebf2353..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/Command.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/DumpCommand.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/DumpCommand.class
deleted file mode 100644
index 7edb028..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/DumpCommand.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand$Visitor.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand$Visitor.class
deleted file mode 100644
index abbfa48..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand$Visitor.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand.class
deleted file mode 100644
index 1d05617..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/LsRCommand.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/StatCommand.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/StatCommand.class
deleted file mode 100644
index c731207..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/command/StatCommand.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/model/ExecutionContext.class b/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/model/ExecutionContext.class
deleted file mode 100644
index a41a897..0000000
Binary files a/2A/Java/tp/tp4-fichier/out/production/tp4-fichier/fr/uca/iut/clfreville2/shell/model/ExecutionContext.class and /dev/null differ
diff --git a/2A/Java/tp/tp4-fichier/shell.sh b/2A/Java/tp/tp4-fichier/shell.sh
deleted file mode 100644
index 14649bf..0000000
--- a/2A/Java/tp/tp4-fichier/shell.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-lsR
-stat courses/algo2
\ No newline at end of file
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/io/Dump.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/io/Dump.java
deleted file mode 100644
index 9e42e79..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/io/Dump.java
+++ /dev/null
@@ -1,73 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.io;
-
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.File;
-import fr.uca.iut.clfreville2.sgf.model.Inode;
-import fr.uca.iut.clfreville2.sgf.visitor.InodeVisitor;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-public class Dump {
-
- private final Inode node;
- private final Path path;
-
- public Dump(Inode node, Path path) {
- this.node = node;
- this.path = path;
- }
-
- public Dump(Inode node) {
- this(node, Path.of(System.getProperty("user.home")));
- }
-
- public void dump() throws IOException {
- Visitor visitor = new Visitor(this.path);
- this.node.visit(visitor);
- if (visitor.throwable != null) {
- throw visitor.throwable;
- }
- }
-
- private static class Visitor implements InodeVisitor {
-
- private Path current;
- private IOException throwable;
-
- public Visitor(Path current) {
- this.current = current;
- }
-
- @Override
- public void visitFile(File file) {
- try (FileOutputStream stream = new FileOutputStream(current.resolve(file.name()).toFile())) {
- for (byte c : file.content()) {
- stream.write(c);
- }
- } catch (IOException e) {
- this.throwable = e;
- }
- }
-
- @Override
- public void visitDirectory(Directory directory) {
- try {
- Path previous = this.current;
- this.current = this.current.resolve(directory.name());
- Files.createDirectory(this.current);
- for (Inode child : directory) {
- child.visit(this);
- if (this.throwable != null) {
- break;
- }
- }
- this.current = previous;
- } catch (IOException e) {
- this.throwable = e;
- }
- }
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.java
deleted file mode 100644
index 59054d3..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/ConsoleStream.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-import java.io.PrintStream;
-
-public class ConsoleStream implements WritableStream {
-
- private final PrintStream stream;
-
- public ConsoleStream(PrintStream stream) {
- this.stream = stream;
- }
-
- public static ConsoleStream stdout() {
- return new ConsoleStream(System.out);
- }
-
- public static ConsoleStream stderr() {
- return new ConsoleStream(System.err);
- }
-
- @Override
- public void write(char c) {
- stream.print(c);
- }
-
- @Override
- public void write(String str) {
- stream.print(str);
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Directory.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Directory.java
deleted file mode 100644
index 8a97bc6..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Directory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-import fr.uca.iut.clfreville2.sgf.visitor.InodeVisitor;
-
-import java.util.Iterator;
-import java.util.Map;
-import java.util.TreeMap;
-
-public class Directory extends Inode implements Iterable {
-
- private static final int DEFAULT_PERMISSIONS = 755;
-
- private final Map children = new TreeMap<>();
-
- public Directory(String filename) {
- super(filename, DEFAULT_PERMISSIONS);
- }
-
- public Inode get(String filename) {
- return children.get(filename);
- }
-
- public void add(Inode node) {
- if (children.putIfAbsent(node.name(), node) != null) {
- throw new IllegalArgumentException("This directory already contains the file " + node.name());
- }
- }
-
- @Override
- public void visit(InodeVisitor visitor) {
- visitor.visitDirectory(this);
- }
-
- @Override
- public int size() {
- return children.size() + 1;
- }
-
- @Override
- public Iterator iterator() {
- return children.values().iterator();
- }
-
- @Override
- public String toString() {
- return "Directory " + name() + " (" + Integer.toOctalString(permissions()) + ") created on " + creationDate();
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/File.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/File.java
deleted file mode 100644
index 41c30bf..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/File.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-import fr.uca.iut.clfreville2.sgf.visitor.InodeVisitor;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-public class File extends Inode implements WritableStream {
-
- private static final int DEFAULT_PERMISSIONS = 644;
-
- private final List content = new ArrayList<>();
-
- public File(String filename) {
- super(filename, DEFAULT_PERMISSIONS);
- }
-
- public List content() {
- return Collections.unmodifiableList(this.content);
- }
-
- public void clear() {
- content.clear();
- }
-
- @Override
- public void write(char c) {
- content.add((byte) c);
- }
-
- @Override
- public void write(String str) {
- for (char c : str.toCharArray()) {
- content.add((byte) c);
- }
- }
-
- @Override
- public void visit(InodeVisitor visitor) {
- visitor.visitFile(this);
- }
-
- @Override
- public int size() {
- return content.size();
- }
-
- @Override
- public String toString() {
- return "TextFile " + name() + " (" + Integer.toOctalString(permissions()) + ") created on " + creationDate();
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Inode.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Inode.java
deleted file mode 100644
index 608ad4e..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Inode.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-import fr.uca.iut.clfreville2.sgf.visitor.InodeVisitor;
-
-import java.time.LocalDateTime;
-
-public abstract class Inode implements Permissible {
-
- private String name;
- private int permissions;
- private LocalDateTime creationDate;
- private LocalDateTime modificationDate;
- private LocalDateTime accessDate;
-
- public Inode(String name, int permissions) {
- this.name = name;
- this.permissions = permissions;
- this.creationDate = LocalDateTime.now();
- this.modificationDate = LocalDateTime.now();
- this.accessDate = LocalDateTime.now();
- }
-
- public abstract void visit(InodeVisitor visitor);
-
- public abstract int size();
-
- public LocalDateTime creationDate() {
- return this.creationDate;
- }
-
- public LocalDateTime modificationDate() {
- return this.modificationDate;
- }
-
- public void setModificationDate(LocalDateTime modificationDate) {
- this.modificationDate = modificationDate;
- }
-
- public LocalDateTime accessDate() {
- return this.accessDate;
- }
-
- public void setAccessDate(LocalDateTime accessDate) {
- this.accessDate = accessDate;
- }
-
- public String name() {
- return name;
- }
-
- @Override
- public int permissions() {
- return this.permissions;
- }
-
- public void setPermissions(int permissions) {
- this.permissions = permissions;
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Partition.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Partition.java
deleted file mode 100644
index 1cfbffc..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Partition.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-public record Partition(Inode root) {
- public Inode resolve(Directory cwd, String s) {
- String[] parts = s.split("/");
- Inode dest = cwd;
- for (String part : parts) {
- if (dest instanceof Directory dir) {
- dest = dir.get(part);
- if (dest == null) {
- throw new IllegalArgumentException("Inode inconnu !");
- }
- } else {
- throw new IllegalArgumentException("N'est pas un dossier !");
- }
- }
- return dest;
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissible.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissible.java
deleted file mode 100644
index 472e687..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissible.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-public interface Permissible {
-
- int permissions();
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissions.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissions.java
deleted file mode 100644
index 5ad34bd..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/Permissions.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-public final class Permissions {
-
- private Permissions() {}
-
- public static final int READ = 1 << 2;
- public static final int WRITE = 1 << 1;
- public static final int EXECUTE = 1 << 0;
-
- public static final int USER_SHIFT = 6;
- public static final int GROUP_SHIFT = 3;
- public static final int OTHERS_SHIFT = 0;
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/WritableStream.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/WritableStream.java
deleted file mode 100644
index 0f57ded..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/model/WritableStream.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.model;
-
-public interface WritableStream {
-
- void write(char c);
-
- void write(String str);
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.java
deleted file mode 100644
index cb8b917..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/sgf/visitor/InodeVisitor.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package fr.uca.iut.clfreville2.sgf.visitor;
-
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.File;
-
-public interface InodeVisitor {
-
- void visitFile(File file);
-
- void visitDirectory(Directory directory);
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/CommandInput.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/CommandInput.java
deleted file mode 100644
index dec617f..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/CommandInput.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package fr.uca.iut.clfreville2.shell;
-
-public interface CommandInput {
-
- String ask();
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/FileCommandInput.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/FileCommandInput.java
deleted file mode 100644
index 54dab79..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/FileCommandInput.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package fr.uca.iut.clfreville2.shell;
-
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Deque;
-import java.util.LinkedList;
-
-public class FileCommandInput implements CommandInput {
-
- private final Deque commands;
-
- public FileCommandInput(Path path) throws IOException {
- this.commands = new LinkedList<>(Files.readAllLines(path));
- }
-
- @Override
- public String ask() {
- if (this.commands.isEmpty()) {
- return null;
- }
- return this.commands.pollFirst();
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Main.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Main.java
deleted file mode 100644
index 77b6375..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Main.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package fr.uca.iut.clfreville2.shell;
-
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.File;
-import fr.uca.iut.clfreville2.sgf.model.Partition;
-import fr.uca.iut.clfreville2.shell.command.StatCommand;
-import fr.uca.iut.clfreville2.shell.command.DumpCommand;
-import fr.uca.iut.clfreville2.shell.command.LsRCommand;
-
-import java.io.IOException;
-import java.nio.file.Path;
-
-public final class Main {
-
- public static void main(String[] args) throws IOException {
- Directory root = new Directory("root");
- Directory courses = new Directory("courses");
- Directory algo = new Directory("algo2");
- algo.add(new File("list.c"));
- algo.add(new File("stack.c"));
- root.add(new File("Matrix.txt"));
- root.add(courses);
- courses.add(algo);
- courses.add(new Directory("java"));
- Partition p = new Partition(root);
-
- Shell shell = new Shell(p, root, new FileCommandInput(Path.of("shell.sh")));
- shell.register("lsR", new LsRCommand());
- shell.register("dump", new DumpCommand());
- shell.register("stat", new StatCommand());
- shell.execute();
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Shell.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Shell.java
deleted file mode 100644
index 7891ccf..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/Shell.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package fr.uca.iut.clfreville2.shell;
-
-import fr.uca.iut.clfreville2.sgf.model.ConsoleStream;
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.Partition;
-import fr.uca.iut.clfreville2.sgf.model.WritableStream;
-import fr.uca.iut.clfreville2.shell.command.Command;
-import fr.uca.iut.clfreville2.shell.model.ExecutionContext;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-public class Shell {
-
- private final Partition partition;
- private final Map commands = new HashMap<>();
- private final WritableStream stdout = ConsoleStream.stdout();
- private final WritableStream stderr = ConsoleStream.stderr();
- private Directory currentWorkingDirectory;
- private final CommandInput input;
-
- public Shell(Partition partition, Directory currentWorkingDirectory, CommandInput input) {
- this.partition = partition;
- this.currentWorkingDirectory = currentWorkingDirectory;
- this.input = input;
- }
-
- public void register(String name, Command command) {
- this.commands.put(name, command);
- }
-
- public void execute(String rawCommand) {
- List args = List.of(rawCommand.split(" "));
- Command command = this.commands.get(args.get(0));
- if (command == null) {
- stderr.write("Commande inconnue!\n");
- } else {
- command.execute(new ExecutionContext(this.partition, this.currentWorkingDirectory, this.stdout, this.stderr, args));
- }
- }
-
- public void execute() {
- String raw;
- while ((raw = input.ask()) != null) {
- execute(raw);
- }
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/UserCommandInput.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/UserCommandInput.java
deleted file mode 100644
index 343fbb6..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/UserCommandInput.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package fr.uca.iut.clfreville2.shell;
-
-import java.util.Scanner;
-
-public class UserCommandInput implements CommandInput {
-
- private final Scanner scanner = new Scanner(System.in);
-
- public String ask() {
- return this.scanner.nextLine();
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/Command.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/Command.java
deleted file mode 100644
index bf6b4e7..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/Command.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package fr.uca.iut.clfreville2.shell.command;
-
-import fr.uca.iut.clfreville2.shell.model.ExecutionContext;
-
-@FunctionalInterface
-public interface Command {
-
- void execute(ExecutionContext ctx);
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/DumpCommand.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/DumpCommand.java
deleted file mode 100644
index 43e0f68..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/DumpCommand.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package fr.uca.iut.clfreville2.shell.command;
-
-import fr.uca.iut.clfreville2.sgf.io.Dump;
-import fr.uca.iut.clfreville2.shell.model.ExecutionContext;
-
-import java.io.IOException;
-
-public class DumpCommand implements Command {
- @Override
- public void execute(ExecutionContext ctx) {
- try {
- new Dump(ctx.cwd()).dump();
- ctx.stdout().write("Le fichier a bien été écrit.\n");
- } catch (IOException e) {
- ctx.stderr().write("Le fichier n'a pas pu être écrit (" + e.getClass().getSimpleName() + ": " + e.getMessage() + ").\n");
- }
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/LsRCommand.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/LsRCommand.java
deleted file mode 100644
index 77d371c..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/LsRCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package fr.uca.iut.clfreville2.shell.command;
-
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.File;
-import fr.uca.iut.clfreville2.sgf.model.Inode;
-import fr.uca.iut.clfreville2.sgf.model.WritableStream;
-import fr.uca.iut.clfreville2.sgf.visitor.InodeVisitor;
-import fr.uca.iut.clfreville2.shell.model.ExecutionContext;
-
-import java.util.Arrays;
-
-public class LsRCommand implements Command {
-
- @Override
- public void execute(ExecutionContext ctx) {
- ctx.cwd().visit(new Visitor(ctx.stdout()));
- }
-
- private static class Visitor implements InodeVisitor {
-
- private final WritableStream stdout;
- private int offset = 0;
-
- public Visitor(WritableStream stdout) {
- this.stdout = stdout;
- }
-
- @Override
- public void visitFile(File file) {
- shift();
- this.stdout.write(file + "\n");
- }
-
- @Override
- public void visitDirectory(Directory directory) {
- shift();
- this.stdout.write("Directory [" + directory.name() + "] content:\n");
- this.offset += 2;
- for (Inode child : directory) {
- child.visit(this);
- }
- this.offset -= 2;
- shift();
- this.stdout.write("----\n");
- }
-
- private void shift() {
- for (int i = 0; i < this.offset; i++) {
- this.stdout.write(' ');
- }
- }
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/StatCommand.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/StatCommand.java
deleted file mode 100644
index 1f6f4cc..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/command/StatCommand.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package fr.uca.iut.clfreville2.shell.command;
-
-import fr.uca.iut.clfreville2.sgf.model.Inode;
-import fr.uca.iut.clfreville2.shell.model.ExecutionContext;
-
-public class StatCommand implements Command {
- @Override
- public void execute(ExecutionContext ctx) {
- Inode target;
- if (ctx.args().size() < 2) {
- target = ctx.cwd();
- } else {
- try {
- target = ctx.partition().resolve(ctx.cwd(), ctx.args().get(1));
- } catch (IllegalArgumentException e) {
- ctx.stderr().write(e.getMessage());
- return;
- }
- }
- ctx.stdout().write(Integer.toString(target.size()));
- }
-}
diff --git a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/model/ExecutionContext.java b/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/model/ExecutionContext.java
deleted file mode 100644
index 7f9ce10..0000000
--- a/2A/Java/tp/tp4-fichier/src/fr/uca/iut/clfreville2/shell/model/ExecutionContext.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package fr.uca.iut.clfreville2.shell.model;
-
-import fr.uca.iut.clfreville2.sgf.model.Directory;
-import fr.uca.iut.clfreville2.sgf.model.Partition;
-import fr.uca.iut.clfreville2.sgf.model.WritableStream;
-
-import java.util.List;
-
-public record ExecutionContext(Partition partition, Directory cwd, WritableStream stdout, WritableStream stderr, List args) {
-}
diff --git a/2A/systeme/tp/6_tp/exo1.c b/2A/systeme/tp/6_tp/exo1.c
new file mode 100644
index 0000000..e69de29