Debug avec le package + javadoc des modeles
This commit is contained in:
@@ -1,6 +1,3 @@
|
|||||||
package fr.iutfbleau.papillon;
|
|
||||||
|
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,28 +1,32 @@
|
|||||||
|
|
||||||
package fr.iutfbleau.papillon;
|
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* La classe <code>GestionRappel</code> gère les opérations métier
|
* La classe <code>GestionRappel</code> gère les opérations CRUD
|
||||||
* liées aux rappels de l’utilisateur actuellement identifié.
|
* (création, lecture, modification, suppression) sur les rappels
|
||||||
*
|
* associés à l’utilisateur courant.
|
||||||
* <p>Elle fait le lien entre la couche applicative et la couche base de données
|
* <p>
|
||||||
* (via la classe {@link RappelBD}) et s’appuie sur {@link UserKey}
|
* Elle s’appuie sur les classes <code>Rappel</code>, <code>RappelBD</code>,
|
||||||
* et {@link UtilisateurBD} pour identifier l’utilisateur.</p>
|
* <code>UserKey</code> et <code>UtilisateurBD</code> pour interagir
|
||||||
|
* avec la base de données.
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
* @author
|
||||||
|
* Seri-khane YOLOU, Aylane SEHL, Jenson VAL
|
||||||
*/
|
*/
|
||||||
public class GestionRappel {
|
public class GestionRappel {
|
||||||
|
|
||||||
/** Identifiant de l’utilisateur courant. */
|
/** Identifiant de l'utilisateur courant. */
|
||||||
private final int utilisateurId;
|
private final int utilisateurId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructeur : initialise l’utilisateur courant à partir de sa clé locale.
|
* Constructeur de la classe <code>GestionRappel</code>.
|
||||||
* Si la clé n’existe pas, elle est créée automatiquement.
|
* <p>
|
||||||
|
* 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.
|
||||||
|
* </p>
|
||||||
*/
|
*/
|
||||||
public GestionRappel() {
|
public GestionRappel() {
|
||||||
int uid = -1;
|
int uid = -1;
|
||||||
@@ -40,11 +44,11 @@ public class GestionRappel {
|
|||||||
* Ajoute un nouveau rappel pour l’utilisateur courant.
|
* Ajoute un nouveau rappel pour l’utilisateur courant.
|
||||||
*
|
*
|
||||||
* @param titre le titre du rappel
|
* @param titre le titre du rappel
|
||||||
* @param contenu le contenu ou la description du rappel
|
* @param contenu le contenu textuel du rappel
|
||||||
* @param theme la catégorie ou le thème du rappel
|
* @param theme le thème associé au rappel
|
||||||
* @param rang la priorité ou l’ordre du rappel
|
* @param rang la priorité du rappel
|
||||||
* @return l’identifiant du rappel nouvellement ajouté
|
* @return le nombre de lignes affectées ou l’ID du rappel ajouté
|
||||||
* @throws SQLException si une erreur SQL survient
|
* @throws SQLException si une erreur survient lors de l’ajout
|
||||||
*/
|
*/
|
||||||
public int ajouter(String titre, String contenu, String theme, int rang) throws SQLException {
|
public int ajouter(String titre, String contenu, String theme, int rang) throws SQLException {
|
||||||
Rappel r = new Rappel(titre, contenu, theme, rang);
|
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
|
* @return la liste des rappels de l’utilisateur
|
||||||
* @throws SQLException si une erreur SQL survient
|
* @throws SQLException si une erreur de communication avec la base survient
|
||||||
*/
|
*/
|
||||||
public List<Rappel> lister() throws SQLException {
|
public List<Rappel> lister() throws SQLException {
|
||||||
return RappelBD.listerParUtilisateur(this.utilisateurId);
|
return RappelBD.listerParUtilisateur(this.utilisateurId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Modifie un rappel existant appartenant à l’utilisateur courant.
|
* Modifie un rappel existant à partir de son identifiant.
|
||||||
*
|
*
|
||||||
* @param id l’identifiant du rappel à modifier
|
* @param id l’identifiant du rappel à modifier
|
||||||
* @param r l’objet {@link Rappel} contenant les nouvelles informations
|
* @param r l’objet <code>Rappel</code> contenant les nouvelles valeurs
|
||||||
* @return le nombre de lignes modifiées
|
* @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 {
|
public int modifierParId(int id, Rappel r) throws SQLException {
|
||||||
return RappelBD.modifier(id, r, this.utilisateurId);
|
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
|
* @param id l’identifiant du rappel à supprimer
|
||||||
* @return le nombre de lignes supprimées
|
* @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 {
|
public int supprimerParId(int id) throws SQLException {
|
||||||
return RappelBD.supprimer(id, this.utilisateurId);
|
return RappelBD.supprimer(id, this.utilisateurId);
|
||||||
@@ -88,16 +92,16 @@ public class GestionRappel {
|
|||||||
* Supprime tous les rappels appartenant à l’utilisateur courant.
|
* Supprime tous les rappels appartenant à l’utilisateur courant.
|
||||||
*
|
*
|
||||||
* @return le nombre de rappels supprimés
|
* @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 {
|
public int viderTousMesRappels() throws SQLException {
|
||||||
return RappelBD.supprimerToutPourUtilisateur(this.utilisateurId);
|
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() {
|
public int getUtilisateurId() {
|
||||||
return this.utilisateurId;
|
return this.utilisateurId;
|
||||||
|
|||||||
@@ -5,8 +5,6 @@
|
|||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
||||||
*/
|
*/
|
||||||
package fr.iutfbleau.papillon;
|
|
||||||
|
|
||||||
public class Rappel {
|
public class Rappel {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
package fr.iutfbleau.papillon;
|
|
||||||
|
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -1,14 +1,38 @@
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.util.UUID;
|
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 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.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @version 1.0
|
||||||
|
* @author Seri-khane Yolou, Aylane Sehl, Jenson Val
|
||||||
|
*/
|
||||||
public class UserKey {
|
public class UserKey {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Lit la clé stockée dans le fichier ~/.papillon_id
|
* 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 en génère une nouvelle si le fichier n'existe pas ou est vide.
|
||||||
@return La clé utilisateur sous forme de chaîne de caractères
|
*
|
||||||
|
* <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 l’utilisateur
|
// Récupère le dossier personnel de l’utilisateur
|
||||||
String home = System.getProperty("user.home");
|
String home = System.getProperty("user.home");
|
||||||
File fichier = new File(home, ".papillon_id");
|
File fichier = new File(home, ".papillon_id");
|
||||||
@@ -17,9 +41,14 @@ public class UserKey {
|
|||||||
try {
|
try {
|
||||||
// Si le fichier existe déjà on lit son contenu
|
// Si le fichier existe déjà on lit son contenu
|
||||||
if (fichier.exists()) {
|
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);
|
FileReader fr = new FileReader(fichier);
|
||||||
BufferedReader br = new BufferedReader(fr);
|
BufferedReader br = new BufferedReader(fr);
|
||||||
|
|
||||||
cle = br.readLine(); // lit la première ligne (la clé)
|
cle = br.readLine(); // lit la première ligne (la clé)
|
||||||
br.close();
|
br.close();
|
||||||
fr.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
|
// Sinon, on génère une nouvelle clé et on l’écrit dans le fichier
|
||||||
else {
|
else {
|
||||||
cle = UUID.randomUUID().toString(); // Génère une clé unique
|
cle = genererCle();
|
||||||
|
ecrireCle(fichier, cle);
|
||||||
FileWriter fw = new FileWriter(fichier);
|
|
||||||
BufferedWriter bw = new BufferedWriter(fw);
|
|
||||||
|
|
||||||
bw.write(cle);
|
|
||||||
bw.newLine();
|
|
||||||
bw.close();
|
|
||||||
fw.close();
|
|
||||||
|
|
||||||
System.out.println("Nouvelle clé générée et enregistrée : " + cle);
|
System.out.println("Nouvelle clé générée et enregistrée : " + cle);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,4 +69,34 @@ public class UserKey {
|
|||||||
return cle;
|
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 s’il n’existe 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
|
* @version 1.0
|
||||||
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
||||||
*/
|
*/
|
||||||
package fr.iutfbleau.papillon;
|
|
||||||
|
|
||||||
public class Utilisateur {
|
public class Utilisateur {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* La classe <code>UtilisateurBD</code> gère la table <b>utilisateur</b>
|
* 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>
|
* et de lire un utilisateur complet via sa clé.</p>
|
||||||
*
|
*
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
* @author Seri-khane Yolou, Aylane SEHL, Jenson VAL
|
* @author Junior
|
||||||
*/
|
*/
|
||||||
package fr.iutfbleau.papillon;
|
|
||||||
import java.sql.*;
|
|
||||||
public class UtilisateurBD {
|
public class UtilisateurBD {
|
||||||
|
|
||||||
/** Identifiant interne de l’utilisateur. */
|
/** Identifiant interne de l’utilisateur. */
|
||||||
|
|||||||
Reference in New Issue
Block a user