diff --git a/README.md b/README.md index b0d5774..09be525 100644 --- a/README.md +++ b/README.md @@ -114,6 +114,88 @@ class InfoTitle { } +class Manager { + + {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 + + Album CurrentAlbum + + Playlist CurrentPlaylist + + InfoTitle CurrentInfoTitle + + CustomTitle CurrentPlaying + + Manager(IDataManager dataManager) + + void NextTitle() + + void PreviousTitle() + + CustomTitle CurrentTitle() + + void Loop() + + void Shuffle() + + void AddAlbum(Album album) + + void AddCustomTitle(CustomTitle title) + + void AddInfoTitle(InfoTitle title) + + void AddPlaylist(Playlist playlist) + + void AddArtist(Artist artist) + + void RemoveAlbum(Album album) + + void RemoveCustomTitle(CustomTitle title) + + void RemoveInfoTitle(InfoTitle title) + + void RemovePlaylist(Playlist playlist) + + ObservableCollection GetPlaylists() + + ObservableCollection GetAlbums() + + ObservableCollection GetCustomTitles() + + ObservableCollection GetInfoTitles() + + ObservableCollection GetArtists() + + void LoadSerialization() + + void SaveSerialization() + + Playlist GetPlaylistByName(string name) + + Artist GetArtistByName(string name) + + CustomTitle GetCustomTitleByPath(string path) + + InfoTitle GetInfoTitleByName(string name) + + Album GetAlbumByName(string name) + + Album GetAlbumById(long id) +} + +Album o-- "+ Artist" Artist +Album *-- "+ InfoTitles*" InfoTitle +Album .. Manager + +Artist .. Manager + +Playlist o-- "+ Titles*" CustomTitle +Playlist .. 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 + +@enduml +``` + + + +```plantuml +@startuml + interface IDataManager { + void AddAlbum(Album album) + void AddAlbums(List albumsList) @@ -172,52 +254,6 @@ interface IDataManager { + bool ExistsInfoTitleByName(string name) } -class Manager { - + {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 - + Album CurrentAlbum - + Playlist CurrentPlaylist - + InfoTitle CurrentInfoTitle - + CustomTitle CurrentPlaying - + Manager(IDataManager dataManager) - + void NextTitle() - + void PreviousTitle() - + CustomTitle CurrentTitle() - + void Loop() - + void Shuffle() - + void AddAlbum(Album album) - + void AddCustomTitle(CustomTitle title) - + void AddInfoTitle(InfoTitle title) - + void AddPlaylist(Playlist playlist) - + void AddArtist(Artist artist) - + void RemoveAlbum(Album album) - + void RemoveCustomTitle(CustomTitle title) - + void RemoveInfoTitle(InfoTitle title) - + void RemovePlaylist(Playlist playlist) - + ObservableCollection GetPlaylists() - + ObservableCollection GetAlbums() - + ObservableCollection GetCustomTitles() - + ObservableCollection GetInfoTitles() - + ObservableCollection GetArtists() - + void LoadSerialization() - + void SaveSerialization() - + Playlist GetPlaylistByName(string name) - + Artist GetArtistByName(string name) - + CustomTitle GetCustomTitleByPath(string path) - + InfoTitle GetInfoTitleByName(string name) - + Album GetAlbumByName(string name) - + Album GetAlbumById(long id) -} - class StubManager { + StubAlbum StubAlbum + StubArtist StubArtist @@ -362,132 +398,6 @@ class LinqXmlSerialization { + bool ExistsInfoTitleByName(string name) } -Album o-- "+ Artist" Artist -Album *-- "+ InfoTitles*" InfoTitle -Album .. Manager - -Artist .. Manager - -Playlist o-- "+ Titles*" CustomTitle -Playlist .. Manager - -Title .. Manager - -CustomTitle --|> Title - -InfoTitle --|> Title -InfoTitle o-- "+ Genre" Genre -InfoTitle o-- "+ Artist" Artist -InfoTitle o-- "+ Feat*" Artist - -Manager *-- "+ DataManager" IDataManager -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 - -StubManager --|> IDataManager -StubManager .. InfoTitle -StubManager .. Artist -StubManager .. Album -StubManager .. CustomTitle -StubManager .. Playlist - -LinqXmlSerialization --|> IDataManager -LinqXmlSerialization o-- "+ Artists*" Artist -LinqXmlSerialization o-- "+ Albums*" Album -LinqXmlSerialization o-- "+ Playlists*" Playlist -LinqXmlSerialization o-- "+ Infotitles*" InfoTitle -LinqXmlSerialization o-- "+ Customtitles*" CustomTitle - -IDataManager .. Album -IDataManager .. Artist -IDataManager .. InfoTitle -IDataManager .. CustomTitle -IDataManager .. Playlist -IDataManager .. Genre - -@enduml -``` - - - - -```plantuml -@startuml - -class StubManager { - + StubAlbum StubAlbum - + StubArtist StubArtist - + StubCustomTitle StubCustomTitle - + StubInfoTitle StubInfoTitle - + StubPlaylist StubPlaylist - + StubManager() - + ObservableCollection GetAlbums() - + List GetArtists() - + ObservableCollection GetPlaylists() - + ObservableCollection GetCustomTitles() - + ObservableCollection GetInfoTitles() - + void AddAlbum(Album album) - + void AddCustomTitle(CustomTitle title) - + void AddInfoTitle(InfoTitle title) - + {static} void AddFeat(InfoTitle infoTitle, Artist artist) - + void AddPlaylist(Playlist playlist) - + void AddArtist(Artist artist) - + void RemoveAlbum(Album album) - + void RemoveCustomTitle(CustomTitle title) - + void RemoveInfoTitle(InfoTitle title) - + void RemovePlaylist(Playlist playlist) - + void RemoveArtist(Artist artist) - + void LoadSerialization() - + void SaveSerialization() - + CustomTitle GetCustomTitleByPath(string custom) - + InfoTitle GetInfoTitleByName(string name) - + Album GetAlbumByName(string name) - + Artist GetArtistByName(string name) - + void AddAlbums(List albumsList) - + void AddArtists(List artistsList) - + void AddPlaylists(List playlistsList) - + void AddCustomTitles(List customTitlesList) - + void AddInfoTitles(List infoTitlesList) - + Playlist GetPlaylistByName(string name) - + void UpdateCustomTitle(CustomTitle title, string name, string url, string info, string path) - + void UpdateCustomTitleByPath(string path, string name, string newUrl, string info, string newPath) - + void UpdateInfoTitle(InfoTitle title, string name, string url, string info, Artist artist, string description, Genre genre) - + void UpdateInfoTitleByName(string name, string newUrl, string info, Artist artist, string description, Genre genre) - + void UpdateAlbum(Album album, string name, string url, Artist artist, string description, string info) - + void UpdateAlbumByName(string name, string newUrl, Artist artist, string description, string info) - + void UpdateAlbumByArtistName(Album album, string name, string url, string artist, string description, string info) - + void UpdateAlbumByNameByArtistName(string name, string newUrl, string artist, string description, string info) - + void UpdatePlaylist(Playlist playlist, string name, string description, string url) - + void UpdatePlaylistByName(string name, string description, string newUrl) - + void UpdateArtist(Artist artist, string name) - + void UpdateArtistByName(string name, string newName) - + void RemoveAlbums(List albumsList) - + void RemoveArtists(List artistsList) - + void RemovePlaylists(List playlistsList) - + void RemoveCustomTitles(List customTitlesList) - + void RemoveInfoTitles(List infoTitlesList) - + bool ExistsPlaylist(Playlist playlist) - + bool ExistsPlaylistByName(string name) - + bool ExistsAlbum(Album album) - + bool ExistsAlbumByName(string name) - + bool ExistsArtist(Artist artist) - + bool ExistsArtistByName(string name) - + bool ExistsCustomTitle(CustomTitle title) - + bool ExistsCustomTitleByName(string name) - + bool ExistsInfoTitle(InfoTitle title) - + bool ExistsInfoTitleByName(string name) - + Album GetAlbumById(long id) -} - - - class StubAlbum { + StubArtist StubArtist + ObservableCollection Albums @@ -537,23 +447,34 @@ class StubPlaylist { + void RemovePlaylist(Playlist playlist) } - - +LinqXmlSerialization --|> IDataManager 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 @enduml ```` + +```plantuml +@startuml + + + + + + + + +@enduml +``` + # Note *Les classes CustomTitle, Playlist et Manager héritent de l'interface INotifyPropertyChanged afin de permettre le DataBinding de ces classes*