From 966e2bcdf100ad547853ef1478331da6689e9c0d Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 15 Jun 2023 13:07:00 +0200 Subject: [PATCH] documentation des classes --- Sources/Model/Classes/FruitDuDemon.cs | 81 +++++++++++++++++- Sources/Model/Classes/Ile.cs | 71 +++++++++++++++- Sources/Model/Classes/ObjetOhara.cs | 65 ++++++++++++++- Sources/Model/Classes/Personnage.cs | 113 +++++++++++++++++++++++++- 4 files changed, 319 insertions(+), 11 deletions(-) diff --git a/Sources/Model/Classes/FruitDuDemon.cs b/Sources/Model/Classes/FruitDuDemon.cs index fdad12e..a25e567 100644 --- a/Sources/Model/Classes/FruitDuDemon.cs +++ b/Sources/Model/Classes/FruitDuDemon.cs @@ -1,4 +1,9 @@ -using System; +/// \file FruitDuDemon.cs +/// \brief Contient la définition de la classe FruitDuDemon. +/// +/// La classe FruitDuDemon représente les différents fruit du démons avec leur nom, nom romanisé, leur type, apparition du premier chapitre/premier épisode, une description et leurs forces et leurs faiblesses. +/// +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,9 +15,15 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente un Fruit du Démon. + /// [DataContract(Name = "fruitdudemon")] public class FruitDuDemon : ObjetOhara { + /// + /// Obtient ou définit le nom romanisé du Fruit du Démon. + /// [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise { @@ -23,6 +34,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le type du Fruit du Démon. + /// [DataMember(Name = "type")] private string? type; public string? Type { @@ -33,6 +47,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { @@ -43,6 +60,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier épisode où le Fruit du Démon est mentionné. + /// [DataMember(Name = "premierep")] private int premierep; public int PremierEp { @@ -53,6 +73,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la description du Fruit du Démon. + /// [DataMember(Name = "description")] private string? description; public string? Description { @@ -63,6 +86,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les forces du Fruit du Démon. + /// [DataMember(Name = "forces")] private string? forces; public string? Forces { @@ -73,6 +99,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les faiblesses du Fruit du Démon. + /// [DataMember(Name = "faiblesses")] private string? faiblesses; public string? Faiblesses { @@ -83,10 +112,25 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit les utilisateurs du Fruit du Démon. + /// [DataMember(Name = "utilisateur", EmitDefaultValue = false)] public List Utilisateur { get; set; } = new List(); - + + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom du Fruit du Démon. + /// Le nom romanisé du Fruit du Démon. + /// Le type du Fruit du Démon. + /// Le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// Le numéro du premier épisode où le Fruit du Démon est mentionné. + /// La description du Fruit du Démon. + /// Les forces du Fruit du Démon. + /// Les faiblesses du Fruit du Démon. + public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses) : base(nom) { @@ -113,12 +157,32 @@ namespace Model.Classes Faiblesses = faiblesses; } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom du Fruit du Démon. + /// Le nom romanisé du Fruit du Démon. + /// Le type du Fruit du Démon. + /// Le numéro du premier chapitre où le Fruit du Démon est mentionné. + /// Le numéro du premier épisode où le Fruit du Démon est mentionné. + /// La description du Fruit du Démon. + /// Les forces du Fruit du Démon. + /// Les faiblesses du Fruit du Démon. + /// Le chemin de l'image du Fruit du Démon. + public FruitDuDemon(string nom, string nomRomanise, string type, int premierChap, int premierEp, string description, string forces, string faiblesses, string image) : this(nom, nomRomanise, type, premierChap, premierEp, description, forces, faiblesses) { if (String.IsNullOrWhiteSpace(image)) image = "baseimage.png"; Image = image; } + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// si l'objet spécifié est égal à l'objet actuel ; sinon, . + public override bool Equals(object? obj) { if (obj == null) return false; @@ -134,11 +198,24 @@ namespace Model.Classes } + + /// + /// Retourne le code de hachage de l'objet actuel. + /// + /// Code de hachage calculé à partir des propriétés de l'objet. + public override int GetHashCode() { return HashCode.Combine(NomRomanise, Type, PremierChap, PremierEp, Description, Forces, Faiblesses); } + + + /// + /// Retourne une chaîne qui représente l'objet actuel. + /// + /// Chaîne représentant l'objet actuel. + public override string ToString() { return "FruitDuDemon : " + Nom +" " +EstFavori+" " + NomRomanise + " " + Type + " " + PremierChap + " " + PremierEp + " " + Description + " " + Forces +" "+Faiblesses+ " " + Image; diff --git a/Sources/Model/Classes/Ile.cs b/Sources/Model/Classes/Ile.cs index 43b574f..d2af8ff 100644 --- a/Sources/Model/Classes/Ile.cs +++ b/Sources/Model/Classes/Ile.cs @@ -1,4 +1,9 @@ -using System; +/// \file Ile.cs +/// \brief Contient la définition de la classe Ile. +/// +/// La classe Ile représente les différents iles avec leur nom, nom romanisé, leur région de localisation, la première fois qu'on les vois dans le manga/animé, une description de l'île et une description géographique d'où se situe l'île. +/// +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,9 +15,15 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente une île dans le monde de One Piece. + /// [DataContract(Name = "ile")] public class Ile : ObjetOhara { + /// + /// Obtient ou définit le nom romanisé de l'île. + /// [DataMember(Name = "nomromanise")] private string? nomromanise; public string? NomRomanise @@ -24,7 +35,9 @@ namespace Model.Classes OnPropertyChanged(); } } - + /// + /// Obtient ou définit la région où se situe l'île. + /// [DataMember(Name = "region")] private string? region; public string? Region { @@ -35,6 +48,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier chapitre où l'île est mentionnée. + /// [DataMember(Name = "premierchap")] private int premierchap; public int PremierChap { @@ -45,6 +61,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit le numéro du premier épisode où l'île est mentionnée. + /// [DataMember(Name = "premierep")] private int premierep; public int PremierEp { @@ -55,6 +74,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la description de l'île. + /// [DataMember(Name = "description")] private string? description; public string? Description { @@ -65,6 +87,9 @@ namespace Model.Classes OnPropertyChanged(); } } + /// + /// Obtient ou définit la situation géographique de l'île. + /// [DataMember(Name = "geographie")] private string? geographie; public string? Geographie { @@ -77,6 +102,16 @@ namespace Model.Classes } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés. + /// + /// Le nom de l'île. + /// Le nom romanisé de l'île. + /// La région où se situe l'île. + /// Le numéro du premier chapitre où l'île est mentionnée. + /// Le numéro du premier épisode où l'île est mentionnée. + /// La description de l'île. + /// La situation géographique de l'île. public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie) : base(nom) { @@ -111,6 +146,18 @@ namespace Model.Classes } + /// + /// Initialise une nouvelle instance de la classe avec les paramètres spécifiés, y compris une image. + /// + /// Le nom de l'île. + /// Le nom romanisé de l'île. + /// La région où se situe l'île. + /// Le numéro du premier chapitre où l'île est mentionnée. + /// Le numéro du premier épisode où l'île est mentionnée. + /// La description de l'île. + /// La situation géographique de l'île. + /// Le chemin de l'image représentant l'île. + public Ile(string nom, string nomRomanise, string region, int premierChap, int premierEp, string description, string geographie, string image) : this(nom, nomRomanise, region, premierChap, premierEp, description, geographie) { if(String.IsNullOrWhiteSpace(image)) { @@ -119,6 +166,13 @@ namespace Model.Classes Image = image; } + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux ; sinon, false. + public override bool Equals(object? obj) { if (obj == null) return false; @@ -134,12 +188,25 @@ namespace Model.Classes } + + + /// + /// Retourne le code de hachage de l'objet. + /// + /// Le code de hachage de l'objet. + public override int GetHashCode() { return HashCode.Combine(NomRomanise, Region, PremierChap, PremierEp, Description, Geographie); } + + /// + /// Retourne une chaîne de caractères représentant l'objet actuel. + /// + /// Une chaîne de caractères représentant l'objet actuel. + public override string ToString() { return "Ile : "+ Nom +" "+NomRomanise+" "+Region+" "+PremierChap+" "+PremierEp+" "+Description+" "+Geographie+" "+Image; diff --git a/Sources/Model/Classes/ObjetOhara.cs b/Sources/Model/Classes/ObjetOhara.cs index 7d9b692..2820ce2 100644 --- a/Sources/Model/Classes/ObjetOhara.cs +++ b/Sources/Model/Classes/ObjetOhara.cs @@ -1,4 +1,10 @@ -using System; +/// \file ObjetOhara.cs +/// \brief Contient la définition de la classe ObjetOhara. +/// +/// La classe ObjetOhara représente les différents objets de notre application Ohara avec leur nom et l'image qui leur est attitré pour pouvoir factoriser le code. +/// + +using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; @@ -10,11 +16,22 @@ using System.Xml.Linq; namespace Model.Classes { + /// + /// Représente un objet du monde de One Piece appartenant à l'île d'Ohara. + /// [DataContract(Name = "objetohara")] + + /// + /// Événement déclenché lorsque la valeur d'une propriété change. + /// public class ObjetOhara : INotifyPropertyChanged { public event PropertyChangedEventHandler? PropertyChanged; + + /// + /// Obtient ou définit le nom de l'objet. + /// [DataMember(Name = "nom")] private string? nom; public string? Nom { @@ -26,6 +43,10 @@ namespace Model.Classes } } + + /// + /// Obtient ou définit le chemin de l'image représentant l'objet. + /// [DataMember(Name = "image")] private string? image; public string? Image { @@ -38,6 +59,10 @@ namespace Model.Classes } } + + /// + /// Obtient ou définit une valeur indiquant si l'objet est marqué comme favori. + /// [DataMember(Name = "estfavori")] private bool estfavori; public bool EstFavori { @@ -48,7 +73,13 @@ namespace Model.Classes } } - + + /// + /// Initialise une nouvelle instance de la classe avec le nom spécifié. + /// + /// Le nom de l'objet. + /// Le chemin de l'image représentant l'objet (par défaut : "baseimage.png"). + /// Indique si l'objet est marqué comme favori (par défaut : false). public ObjetOhara(string nom, string image = "baseimage.png", bool estFavori = false) { @@ -58,7 +89,12 @@ namespace Model.Classes EstFavori = estFavori; } - + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux ; sinon, false. public override bool Equals(object? obj) { @@ -75,17 +111,38 @@ namespace Model.Classes } + + + + /// + /// Retourne le code de hachage de l'objet. + /// + /// Le code de hachage de l'objet. + public override int GetHashCode() { return HashCode.Combine(Nom, Image,EstFavori); } + + + /// + /// Retourne une chaîne de caractères représentant l'objet actuel. + /// + /// Une chaîne de caractères représentant l'objet actuel. + public override string ToString() { return "ObjetOhara : " + Nom + " " +EstFavori+ " " + Image; } - protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) + + /// + /// Déclenche l'événement PropertyChanged. + /// + /// Le nom de la propriété qui a changé (facultatif). + + protected void OnPropertyChanged([CallerMemberName] string? propertyName = null) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } diff --git a/Sources/Model/Classes/Personnage.cs b/Sources/Model/Classes/Personnage.cs index 594c7f0..1b6f589 100644 --- a/Sources/Model/Classes/Personnage.cs +++ b/Sources/Model/Classes/Personnage.cs @@ -1,14 +1,27 @@ -using System.Collections.ObjectModel; +/// \file Personnage.cs +/// \brief Contient la définition de la classe Personnage. +/// +/// La classe Personnage représente les différents personnages avec leur nom, épithète, leur prime, leur âge, leur taille, leur origine, leur biographie et une citation. +/// + +using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Runtime.Serialization; namespace Model.Classes { + /// + /// Représente un personnage de l'univers de One Piece. + /// [DataContract(Name = "personnage")] public class Personnage : ObjetOhara { + + /// + /// Obtient ou définit la prime du personnage. + /// [DataMember(Name = "prime")] private double prime; public double Prime { @@ -19,6 +32,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'épithète du personnage. + /// [DataMember(Name = "epithete")] private string? epithete; public string? Epithete { @@ -28,6 +45,10 @@ namespace Model.Classes epithete = value; } } + + /// + /// Obtient ou définit l'âge du personnage. + /// [DataMember(Name = "age")] private int age; public int Age { @@ -38,6 +59,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la taille du personnage. + /// [DataMember(Name = "taille")] private double taille; public double Taille { @@ -48,6 +73,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'origine du personnage. + /// [DataMember(Name = "origine")] private string? origine; public string? Origine { @@ -58,6 +87,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la biographie du personnage. + /// [DataMember(Name = "biographie")] private string? biographie; public string? Biographie { @@ -68,6 +101,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit la citation du personnage. + /// [DataMember(Name = "citation")] private string? citation; public string? Citation { @@ -78,6 +115,10 @@ namespace Model.Classes OnPropertyChanged(); } } + + /// + /// Obtient ou définit l'équipage auquel le personnage appartient. + /// [DataMember(Name = "equipage", EmitDefaultValue = false)] private Equipage? equipage; public Equipage? Equipage { @@ -87,26 +128,57 @@ namespace Model.Classes equipage = value; OnPropertyChanged(); } - } + } + + /// + /// Obtient la collection en lecture seule des fruits du démon détenus par le personnage. + /// [DataMember(Name = "fruit", EmitDefaultValue = false)] private ObservableCollection fruit = new ObservableCollection(); public IReadOnlyCollection Fruit { get=>fruit; } + + + /// + /// Ajoute un fruit du démon à la collection du personnage. + /// + /// Le fruit du démon à ajouter. public void AjouterFruit(FruitDuDemon? f) { if (f == null) return; fruit.Add(f); } + + + /// + /// Retire un fruit du démon de la collection du personnage. + /// + /// Le fruit du démon à retirer. public void RetierFruit(FruitDuDemon? f) { if (f == null) return; fruit.Remove(f); } + + + /// + /// Vide la collection des fruits du démon du personnage. + /// public void ViderFruit() => fruit.Clear(); - + /// + /// Initialise une nouvelle instance de la classe Personnage avec un nom et des informations supplémentaires. + /// + /// Le nom du personnage. + /// La prime du personnage. + /// L'épithète du personnage. + /// L'âge du personnage. + /// La taille du personnage. + /// L'origine du personnage. + /// La biographie du personnage. + /// La citation du personnage. public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation) : base(nom) { if (prime < 0) @@ -135,12 +207,34 @@ namespace Model.Classes } + + + /// + /// Initialise une nouvelle instance de la classe Personnage avec un nom, des informations supplémentaires et une image. + /// + /// Le nom du personnage. + /// La prime du personnage. + /// L'épithète du personnage. + /// L'âge du personnage. + /// La taille du personnage. + /// L'origine du personnage. + /// La biographie du personnage. + /// La citation du personnage. + /// Le chemin de l'image du personnage. public Personnage(string nom, double prime, string epithete, int age, double taille, string origine, string biographie, string citation, string image) : this(nom, prime, epithete, age, taille, origine, biographie, citation) { if (String.IsNullOrWhiteSpace(image)) image = "baseimage.png"; Image = image; } + + + + /// + /// Détermine si l'objet spécifié est égal à l'objet actuel. + /// + /// L'objet à comparer avec l'objet actuel. + /// true si les objets sont égaux, sinon false. public override bool Equals(object? obj) { if (obj == null) return false; @@ -156,11 +250,24 @@ namespace Model.Classes } + + + /// + /// Retourne le code de hachage de l'objet actuel. + /// + /// Code de hachage calculé à partir des propriétés de l'objet. + public override int GetHashCode() { return HashCode.Combine(Prime, Epithete, Age, Origine,Biographie, Citation,Equipage,Fruit); } + + + /// + /// Retourne une chaîne qui représente l'objet actuel. + /// + /// Chaîne représentant l'objet actuel. public override string ToString() { return "Personnage : " + Nom + " " + EstFavori + " " + Prime + " " + Epithete + " " + Age + " " + Origine + " " + Biographie + " "+ Citation+" " +Equipage+" " + Fruit+" "+ Image;