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
@@ -1,6 +1,3 @@
package fr.iutfbleau.papillon;
import java.sql.*;
/**
+33 -29
View File
@@ -1,28 +1,32 @@
package fr.iutfbleau.papillon;
import java.sql.SQLException;
import java.util.List;
/**
* La classe <code>GestionRappel</code> gère les opérations métier
* liées aux rappels de lutilisateur actuellement identifié.
*
* <p>Elle fait le lien entre la couche applicative et la couche base de données
* (via la classe {@link RappelBD}) et sappuie sur {@link UserKey}
* et {@link UtilisateurBD} pour identifier lutilisateur.</p>
* La classe <code>GestionRappel</code> gère les opérations CRUD
* (création, lecture, modification, suppression) sur les rappels
* associés à lutilisateur courant.
* <p>
* Elle sappuie sur les classes <code>Rappel</code>, <code>RappelBD</code>,
* <code>UserKey</code> et <code>UtilisateurBD</code> pour interagir
* avec la base de données.
* </p>
*
* @version 1.0
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
* @author
* Seri-khane YOLOU, Aylane SEHL, Jenson VAL
*/
public class GestionRappel {
/** Identifiant de lutilisateur courant. */
/** Identifiant de l'utilisateur courant. */
private final int utilisateurId;
/**
* Constructeur : initialise lutilisateur courant à partir de sa clé locale.
* Si la clé nexiste pas, elle est créée automatiquement.
* Constructeur de la classe <code>GestionRappel</code>.
* <p>
* Initialise lidentifiant utilisateur en se basant sur la clé locale.
* Si aucun utilisateur nexiste encore, il est automatiquement créé
* dans la base de données.
* </p>
*/
public GestionRappel() {
int uid = -1;
@@ -40,11 +44,11 @@ public class GestionRappel {
* Ajoute un nouveau rappel pour lutilisateur 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 lordre du rappel
* @return lidentifiant 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 lID du rappel ajouté
* @throws SQLException si une erreur survient lors de lajout
*/
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 lutilisateur courant.
* Liste tous les rappels appartenant à lutilisateur courant.
*
* @return la liste des rappels enregistrés
* @throws SQLException si une erreur SQL survient
* @return la liste des rappels de lutilisateur
* @throws SQLException si une erreur de communication avec la base survient
*/
public List<Rappel> lister() throws SQLException {
return RappelBD.listerParUtilisateur(this.utilisateurId);
}
/**
* Modifie un rappel existant appartenant à lutilisateur courant.
* Modifie un rappel existant à partir de son identifiant.
*
* @param id lidentifiant du rappel à modifier
* @param r lobjet {@link Rappel} contenant les nouvelles informations
* @param r lobjet <code>Rappel</code> 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 à lutilisateur courant.
* Supprime un rappel de la base de données selon son identifiant.
*
* @param id lidentifiant 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 à lutilisateur 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 lidentifiant de lutilisateur courant.
* Renvoie lidentifiant de lutilisateur courant.
*
* @return lidentifiant de lutilisateur
* @return lID utilisateur
*/
public int getUtilisateurId() {
return this.utilisateurId;
-2
View File
@@ -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;
-2
View File
@@ -1,5 +1,3 @@
package fr.iutfbleau.papillon;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
+66 -15
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,9 +41,14 @@ 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();
@@ -28,16 +57,8 @@ public class UserKey {
}
// 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();
}
}
@@ -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;
+2 -4
View File
@@ -1,4 +1,4 @@
import java.sql.*;
/**
* La classe <code>UtilisateurBD</code> gère la table <b>utilisateur</b>
@@ -7,10 +7,8 @@
* et de lire un utilisateur complet via sa clé.</p>
*
* @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 lutilisateur. */