From 375cb39e123c2a0270af1c0ca9682a88947ca243 Mon Sep 17 00:00:00 2001 From: Corentin LEMAIRE Date: Sun, 4 Jun 2023 10:47:36 +0200 Subject: [PATCH] Fix class diagram problems and add PropertyChanged attribute --- README.md | 87 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 41 deletions(-) diff --git a/README.md b/README.md index e1e0fa5..1f6666a 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,6 @@ class Album { + string Description + string ImageURL + string Information - + Artist Artist + ObservableCollection InfoTitles + Album(string name, string imageURL, Artist artist, string description, string information) + Album() @@ -157,6 +156,7 @@ class Album { } class Playlist { + + event PropertyChangedEventHandler PropertyChanged + string Name + string Description + ObservableCollection Titles @@ -178,9 +178,11 @@ class Playlist { + string ToString() - {static} int RandomGenerator(int n) + bool HasCustomTitle(CustomTitle customTitle) + # void OnPropertyChanged([CallerMemberName] string propertyName = null) } class Title { + + event PropertyChangedEventHandler PropertyChanged + string Name + string ImageURL + string Information @@ -188,6 +190,7 @@ class Title { + boolean Equals(object obj) + int GetHashCode() + string ToString() + # void OnPropertyChanged([CallerMemberName] string propertyName = null) } enum Genre @@ -227,9 +230,8 @@ class CustomTitle { class InfoTitle { + string Description + IEnumerable Feat - + Genre Genre + long AlbumID - + InfoTitle(string name, string imageURL, string information, Artist artist, string description, Genre genre, long albumID) + + InfoTitle(string name, string imageURL, string information, string description, Genre genre, long albumID) + InfoTitle() + void AddFeat(Artist artist) + void RemoveFeat(Artist artiste) @@ -240,17 +242,17 @@ class InfoTitle { } class Manager { + + event PropertyChangedEventHandler PropertyChanged + {static} readonly int MAX_NAME_LENGTH = 75 + {static} readonly int MAX_DESCRIPTION_LENGTH = 500 + {static} readonly string DEFAULT_NAME = "Unknown" + {static} readonly string DEFAULT_URL = "none.png" + {static} readonly string DEFAULT_DESC = "" - + IDataManager DataManager - - ObservableCollection Albums - - ObservableCollection CustomTitles - - ObservableCollection InfoTitles - - ObservableCollection Playlists - - ObservableCollection Artists + + ObservableCollection Albums + + ObservableCollection CustomTitles + + ObservableCollection InfoTitles + + ObservableCollection Playlists + + ObservableCollection Artists + Album CurrentAlbum + Playlist CurrentPlaylist + InfoTitle CurrentInfoTitle @@ -283,35 +285,35 @@ class Manager { + InfoTitle GetInfoTitleByName(string name) + Album GetAlbumByName(string name) + Album GetAlbumById(long id) + # void OnPropertyChanged([CallerMemberName] string propertyName = null) } -Album o-- "+ Artist" Artist -Album *-- "+ InfoTitles*" InfoTitle -Album .. Manager +Album o--> "+ Artist" Artist +Album *--> "- infoTitles*" InfoTitle +Album ..> Manager -Artist .. Manager +Artist ..> Manager -Playlist o-- "+ Titles*" CustomTitle -Playlist .. Manager +Playlist o--> "- titles*" CustomTitle +Playlist ..> Manager -Title .. Manager +Title ..> Manager CustomTitle --|> Title InfoTitle --|> Title InfoTitle o--> "+ Genre" Genre -InfoTitle o--> "+ Artist" Artist -InfoTitle o--> "+ Feat*" Artist - -Manager o--> "+ Albums*" Album -Manager o--> "+ Artists*" Artist -Manager o--> "+ InfoTitles*" InfoTitle -Manager o--> "+ Playlists*" Playlist -Manager o--> "+ CustomTitles*" CustomTitle -Manager o--> "+ CurrentAlbum" Album -Manager o--> "+ CurrentPlaylist" Playlist -Manager o--> "+ CurrentInfoTitle" InfoTitle -Manager o--> "+ CurrentPlaying" CustomTitle +InfoTitle o--> "- feat*" Feat + +Manager o--> "- albums*" Album +Manager o--> "- artists*" Artist +Manager o--> "- infoTitles*" InfoTitle +Manager o--> "- playlists*" Playlist +Manager o--> "- customTitles*" CustomTitle +Manager o--> "- currentAlbum" Album +Manager o--> "- currentPlaylist" Playlist +Manager o--> "- currentInfoTitle" InfoTitle +Manager o--> "- currentPlaying" CustomTitle @enduml ``` @@ -615,15 +617,18 @@ class StubPlaylist { } LinqXmlSerialization --|> IDataManager +LinqXmlSerialization o--> "- stubInfoTitle" StubInfoTitle + StubManager --|> IDataManager StubManager *--> "+ StubArtist" StubArtist StubManager *--> "+ StubPlaylist" StubPlaylist StubManager *--> "+ StubAlbum" StubAlbum StubManager *--> "+ StubInfoTitle" StubInfoTitle StubManager *--> "+ StubCustomTitle" StubCustomTitle -StubInfoTitle *--> "+ StubArtist" StubArtist -StubAlbum *--> "+ StubArtist" StubArtist -LinqXmlSerialization o--> "+ StubInfoTitle" StubInfoTitle + +StubInfoTitle *--> "- stubAlbum" StubAlbum + +StubAlbum *--> "- stubArtist" StubArtist @enduml ``` @@ -687,11 +692,11 @@ class StubManager } class Manager {} -StubAlbum o--> "+ Albums*" Album -StubArtist *--> "+ Artists*" Artist -StubCustomTitle *--> "+ CustomTitles*" CustomTitle -StubInfoTitle *--> "+ InfoTitles*" InfoTitle -StubPlaylist *--> "+ Playlists*" Playlist +StubAlbum o--> "- albums*" Album +StubArtist *--> "- artists*" Artist +StubCustomTitle *--> "- customTitles*" CustomTitle +StubInfoTitle *--> "- infoTitles*" InfoTitle +StubPlaylist *--> "- playlists*" Playlist IDataManager ..> Album IDataManager ..> Artist @@ -700,11 +705,11 @@ IDataManager ..> CustomTitle IDataManager ..> Playlist IDataManager ..> Genre -LinqXmlSerialization o--> "+ Artists*" Artist -LinqXmlSerialization o--> "+ Albums*" Album -LinqXmlSerialization o--> "+ Playlists*" Playlist -LinqXmlSerialization o--> "+ Infotitles*" InfoTitle -LinqXmlSerialization o--> "+ Customtitles*" CustomTitle +LinqXmlSerialization o--> "- artists*" Artist +LinqXmlSerialization o--> "- albums*" Album +LinqXmlSerialization o--> "- playlists*" Playlist +LinqXmlSerialization o--> "- infotitles*" InfoTitle +LinqXmlSerialization o--> "- customtitles*" CustomTitle StubManager ..> InfoTitle StubManager ..> Artist