Debug avec le package + javadoc des modeles

This commit is contained in:
2025-10-26 02:17:41 +01:00
parent 1ce86a4ee3
commit 4e44a4d915
7 changed files with 103 additions and 59 deletions
+67 -16
View File
@@ -1,14 +1,38 @@
import java.io.*;
import java.util.UUID;
/**
* La classe <code>UserKey</code> permet de gérer une clé d'identification locale
* unique pour un utilisateur du logiciel <b>Papillon</b>.
*
* <p>
* Cette clé est stockée dans un fichier caché nommé <code>.papillon_id</code>
* dans le répertoire personnel de l'utilisateur.
* Elle sert à identifier l'utilisateur sans avoir besoin de système de connexion
* ou d'authentification centralisée.
* </p>
*
* <p>
* Lors du premier lancement du programme, si le fichier nexiste pas ou est vide,
* une clé unique (UUID) est automatiquement générée, enregistrée dans ce fichier
* et réutilisée pour les prochaines exécutions.
* </p>
*
* @version 1.0
* @author Seri-khane Yolou, Aylane Sehl, Jenson Val
*/
public class UserKey {
/**
Lit la clé stockée dans le fichier ~/.papillon_id
ou en génère une nouvelle si le fichier n'existe pas.
@return La clé utilisateur sous forme de chaîne de caractères
* Lit la clé stockée dans le fichier <code>~/.papillon_id</code>
* ou en génère une nouvelle si le fichier n'existe pas ou est vide.
*
* <p>Cette méthode est utilisée par {@link GestionRappel} pour associer
* chaque utilisateur à ses données locales.</p>
*
* @return une chaîne de caractères représentant la clé unique de l'utilisateur
*/
public static String lireOuCreerCle() {
protected static String lireOuCreerCle() {
// Récupère le dossier personnel de lutilisateur
String home = System.getProperty("user.home");
File fichier = new File(home, ".papillon_id");
@@ -17,27 +41,24 @@ public class UserKey {
try {
// Si le fichier existe déjà on lit son contenu
if (fichier.exists()) {
if (fichier.length() == 0) {
cle = genererCle(); // Génère une clé unique
ecrireCle(fichier, cle);
System.out.println("Le fichier de clé est vide. Génération d'une nouvelle clé.");
}
FileReader fr = new FileReader(fichier);
BufferedReader br = new BufferedReader(fr);
cle = br.readLine(); // lit la première ligne (la clé)
br.close();
fr.close();
System.out.println("Clé existante trouvée : " + cle);
}
}
// Sinon, on génère une nouvelle clé et on l’écrit dans le fichier
else {
cle = UUID.randomUUID().toString(); // Génère une clé unique
FileWriter fw = new FileWriter(fichier);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(cle);
bw.newLine();
bw.close();
fw.close();
cle = genererCle();
ecrireCle(fichier, cle);
System.out.println("Nouvelle clé générée et enregistrée : " + cle);
}
@@ -48,4 +69,34 @@ public class UserKey {
return cle;
}
/**
* Génère une nouvelle clé unique sous la forme d'un identifiant universel (UUID).
*
* <p>Cette méthode utilise la classe {@link java.util.UUID} pour générer
* une chaîne aléatoire unique et pratiquement impossible à deviner.</p>
*
* @return une chaîne aléatoire unique représentant une clé utilisateur
*/
private static String genererCle() {
return UUID.randomUUID().toString();
}
/**
* Écrit une clé donnée dans un fichier texte.
*
* <p>Cette méthode crée le fichier sil nexiste pas, puis enregistre
* la clé passée en paramètre sur la première ligne du fichier.</p>
*
* @param fichier le fichier dans lequel écrire la clé
* @param cle la clé à sauvegarder dans le fichier
* @throws IOException si une erreur survient lors de l’écriture
*/
private static void ecrireCle(File fichier, String cle) throws IOException {
FileWriter fw = new FileWriter(fichier);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(cle);
bw.newLine();
bw.close();
fw.close();
}
}