diff --git a/src/fr/iutfbleau/papillon/BaseDeDonnees.java b/src/fr/iutfbleau/papillon/BaseDeDonnees.java
index 7c282aa..bf2e499 100644
--- a/src/fr/iutfbleau/papillon/BaseDeDonnees.java
+++ b/src/fr/iutfbleau/papillon/BaseDeDonnees.java
@@ -1,6 +1,3 @@
-package fr.iutfbleau.papillon;
-
-
import java.sql.*;
/**
diff --git a/src/fr/iutfbleau/papillon/GestionRappel.java b/src/fr/iutfbleau/papillon/GestionRappel.java
index fa4506f..20a5a32 100644
--- a/src/fr/iutfbleau/papillon/GestionRappel.java
+++ b/src/fr/iutfbleau/papillon/GestionRappel.java
@@ -1,33 +1,37 @@
-
-package fr.iutfbleau.papillon;
-
import java.sql.SQLException;
import java.util.List;
/**
- * La classe GestionRappel gère les opérations métier
- * liées aux rappels de l’utilisateur actuellement identifié.
- *
- *
Elle fait le lien entre la couche applicative et la couche base de données - * (via la classe {@link RappelBD}) et s’appuie sur {@link UserKey} - * et {@link UtilisateurBD} pour identifier l’utilisateur.
+ * La classeGestionRappel gère les opérations CRUD
+ * (création, lecture, modification, suppression) sur les rappels
+ * associés à l’utilisateur courant.
+ *
+ * Elle s’appuie sur les classes Rappel, RappelBD,
+ * UserKey et UtilisateurBD pour interagir
+ * avec la base de données.
+ *
GestionRappel.
+ * + * Initialise l’identifiant utilisateur en se basant sur la clé locale. + * Si aucun utilisateur n’existe encore, il est automatiquement créé + * dans la base de données. + *
*/ public GestionRappel() { int uid = -1; try { - String cle = UserKey.lireOuCreerCle(); // clé locale + String cle = UserKey.lireOuCreerCle(); // clé locale uid = UtilisateurBD.getOrCreateIdByKey(cle); // crée ou récupère utilisateur } catch (Exception e) { e.printStackTrace(); @@ -40,11 +44,11 @@ public class GestionRappel { * Ajoute un nouveau rappel pour l’utilisateur courant. * * @param titre le titre du rappel - * @param contenu le contenu ou la description du rappel - * @param theme la catégorie ou le thème du rappel - * @param rang la priorité ou l’ordre du rappel - * @return l’identifiant du rappel nouvellement ajouté - * @throws SQLException si une erreur SQL survient + * @param contenu le contenu textuel du rappel + * @param theme le thème associé au rappel + * @param rang la priorité du rappel + * @return le nombre de lignes affectées ou l’ID du rappel ajouté + * @throws SQLException si une erreur survient lors de l’ajout */ public int ajouter(String titre, String contenu, String theme, int rang) throws SQLException { Rappel r = new Rappel(titre, contenu, theme, rang); @@ -52,33 +56,33 @@ public class GestionRappel { } /** - * Récupère tous les rappels de l’utilisateur courant. + * Liste tous les rappels appartenant à l’utilisateur courant. * - * @return la liste des rappels enregistrés - * @throws SQLException si une erreur SQL survient + * @return la liste des rappels de l’utilisateur + * @throws SQLException si une erreur de communication avec la base survient */ public ListRappel contenant les nouvelles valeurs
* @return le nombre de lignes modifiées
- * @throws SQLException si une erreur SQL survient
+ * @throws SQLException si une erreur survient lors de la mise à jour
*/
public int modifierParId(int id, Rappel r) throws SQLException {
return RappelBD.modifier(id, r, this.utilisateurId);
}
/**
- * Supprime un rappel spécifique appartenant à l’utilisateur courant.
+ * Supprime un rappel de la base de données selon son identifiant.
*
* @param id l’identifiant du rappel à supprimer
* @return le nombre de lignes supprimées
- * @throws SQLException si une erreur SQL survient
+ * @throws SQLException si une erreur survient lors de la suppression
*/
public int supprimerParId(int id) throws SQLException {
return RappelBD.supprimer(id, this.utilisateurId);
@@ -88,16 +92,16 @@ public class GestionRappel {
* Supprime tous les rappels appartenant à l’utilisateur courant.
*
* @return le nombre de rappels supprimés
- * @throws SQLException si une erreur SQL survient
+ * @throws SQLException si une erreur survient lors de la suppression
*/
public int viderTousMesRappels() throws SQLException {
return RappelBD.supprimerToutPourUtilisateur(this.utilisateurId);
}
/**
- * Retourne l’identifiant de l’utilisateur courant.
+ * Renvoie l’identifiant de l’utilisateur courant.
*
- * @return l’identifiant de l’utilisateur
+ * @return l’ID utilisateur
*/
public int getUtilisateurId() {
return this.utilisateurId;
diff --git a/src/fr/iutfbleau/papillon/Rappel.java b/src/fr/iutfbleau/papillon/Rappel.java
index cc83f18..46e6fb7 100644
--- a/src/fr/iutfbleau/papillon/Rappel.java
+++ b/src/fr/iutfbleau/papillon/Rappel.java
@@ -5,8 +5,6 @@
* @version 1.0
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
*/
-package fr.iutfbleau.papillon;
-
public class Rappel {
private int id;
diff --git a/src/fr/iutfbleau/papillon/RappelBD.java b/src/fr/iutfbleau/papillon/RappelBD.java
index abd8459..dd5f9d2 100644
--- a/src/fr/iutfbleau/papillon/RappelBD.java
+++ b/src/fr/iutfbleau/papillon/RappelBD.java
@@ -1,5 +1,3 @@
-package fr.iutfbleau.papillon;
-
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
diff --git a/src/fr/iutfbleau/papillon/UserKey.java b/src/fr/iutfbleau/papillon/UserKey.java
index a6ac759..39fdfe7 100644
--- a/src/fr/iutfbleau/papillon/UserKey.java
+++ b/src/fr/iutfbleau/papillon/UserKey.java
@@ -1,14 +1,38 @@
import java.io.*;
import java.util.UUID;
+/**
+ * La classe UserKey permet de gérer une clé d'identification locale
+ * unique pour un utilisateur du logiciel Papillon.
+ *
+ *
+ * Cette clé est stockée dans un fichier caché nommé .papillon_id
+ * 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.
+ *
+ * Lors du premier lancement du programme, si le fichier n’existe 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. + *
+ * + * @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~/.papillon_id
+ * ou en génère une nouvelle si le fichier n'existe pas ou est vide.
+ *
+ * Cette méthode est utilisée par {@link GestionRappel} pour associer + * chaque utilisateur à ses données locales.
+ * + * @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 l’utilisateur 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). + * + *Cette méthode utilise la classe {@link java.util.UUID} pour générer + * une chaîne aléatoire unique et pratiquement impossible à deviner.
+ * + * @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. + * + *Cette méthode crée le fichier s’il n’existe pas, puis enregistre + * la clé passée en paramètre sur la première ligne du fichier.
+ * + * @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(); + } } diff --git a/src/fr/iutfbleau/papillon/Utilisateur.java b/src/fr/iutfbleau/papillon/Utilisateur.java index c9e23da..55c26f9 100644 --- a/src/fr/iutfbleau/papillon/Utilisateur.java +++ b/src/fr/iutfbleau/papillon/Utilisateur.java @@ -5,8 +5,6 @@ * @version 1.0 * @author Seri-khane Yolou, Aylane SEHL, Jenson VAL */ -package fr.iutfbleau.papillon; - public class Utilisateur { private int id; diff --git a/src/fr/iutfbleau/papillon/UtilisateurBD.java b/src/fr/iutfbleau/papillon/UtilisateurBD.java index a849ef2..aab4000 100644 --- a/src/fr/iutfbleau/papillon/UtilisateurBD.java +++ b/src/fr/iutfbleau/papillon/UtilisateurBD.java @@ -1,4 +1,4 @@ - +import java.sql.*; /** * La classeUtilisateurBD gère la table utilisateur
@@ -7,10 +7,8 @@
* et de lire un utilisateur complet via sa clé.
*
* @version 1.0
- * @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
+ * @author Junior
*/
-package fr.iutfbleau.papillon;
-import java.sql.*;
public class UtilisateurBD {
/** Identifiant interne de l’utilisateur. */