From e38c5887682b13b7d9dadc822c02654939fc7401 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 11:06:19 +0200 Subject: Adding the pom.xml and target folder created from mvn package. --- target/maven-archiver/pom.properties | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 target/maven-archiver/pom.properties (limited to 'target/maven-archiver/pom.properties') diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties new file mode 100644 index 0000000..24b2415 --- /dev/null +++ b/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Generated by Maven +#Sat Jun 26 10:59:45 CEST 2021 +groupId=esiea.softwareengineering +artifactId=spoteezer +version=0.1.0 -- cgit v1.2.3 From e64ffae239b19871704b4ac1e9cd58275ed58622 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 12:34:26 +0200 Subject: Changed the architecture to respect maven and generated an empty javadoc --- bin/musichub/business/Album.class | Bin 4580 -> 0 bytes bin/musichub/business/AudioBook.class | Bin 3854 -> 0 bytes bin/musichub/business/AudioElement.class | Bin 3209 -> 0 bytes bin/musichub/business/Category.class | Bin 1318 -> 0 bytes bin/musichub/business/Genre.class | Bin 1329 -> 0 bytes bin/musichub/business/Language.class | Bin 1316 -> 0 bytes bin/musichub/business/MusicHub.class | Bin 8924 -> 0 bytes bin/musichub/business/NoAlbumFoundException.class | Bin 260 -> 0 bytes .../business/NoElementFoundException.class | Bin 264 -> 0 bytes .../business/NoPlayListFoundException.class | Bin 266 -> 0 bytes bin/musichub/business/PlayList.class | Bin 3240 -> 0 bytes bin/musichub/business/Song.class | Bin 2853 -> 0 bytes bin/musichub/business/SortByAuthor.class | Bin 719 -> 0 bytes bin/musichub/business/SortByDate.class | Bin 681 -> 0 bytes bin/musichub/business/SortByGenre.class | Bin 685 -> 0 bytes bin/musichub/main/Main.class | Bin 7826 -> 0 bytes bin/musichub/util/XMLHandler.class | Bin 2388 -> 0 bytes dependency-reduced-pom.xml | 38 +- pom.xml | 10 +- src/main/java/musichub/business/Album.java | 145 ++++ src/main/java/musichub/business/AudioBook.java | 78 ++ src/main/java/musichub/business/AudioElement.java | 88 +++ src/main/java/musichub/business/Category.java | 14 + src/main/java/musichub/business/Genre.java | 14 + src/main/java/musichub/business/Language.java | 14 + src/main/java/musichub/business/MusicHub.java | 329 ++++++++ .../musichub/business/NoAlbumFoundException.java | 8 + .../musichub/business/NoElementFoundException.java | 8 + .../business/NoPlayListFoundException.java | 8 + src/main/java/musichub/business/PlayList.java | 100 +++ src/main/java/musichub/business/Song.java | 56 ++ src/main/java/musichub/main/Main.java | 248 ++++++ src/main/java/musichub/util/XMLHandler.java | 74 ++ src/musichub/business/Album.java | 145 ---- src/musichub/business/AudioBook.java | 78 -- src/musichub/business/AudioElement.java | 88 --- src/musichub/business/Category.java | 14 - src/musichub/business/Genre.java | 14 - src/musichub/business/Language.java | 14 - src/musichub/business/MusicHub.java | 329 -------- src/musichub/business/NoAlbumFoundException.java | 8 - src/musichub/business/NoElementFoundException.java | 8 - .../business/NoPlayListFoundException.java | 8 - src/musichub/business/PlayList.java | 100 --- src/musichub/business/Song.java | 56 -- src/musichub/main/Main.java | 248 ------ src/musichub/util/XMLHandler.java | 74 -- target/classes/musichub/business/Album.class | Bin 0 -> 5606 bytes target/classes/musichub/business/AudioBook.class | Bin 0 -> 4278 bytes .../classes/musichub/business/AudioElement.class | Bin 0 -> 3752 bytes target/classes/musichub/business/Category.class | Bin 0 -> 1476 bytes target/classes/musichub/business/Genre.class | Bin 0 -> 1487 bytes target/classes/musichub/business/Language.class | Bin 0 -> 1474 bytes target/classes/musichub/business/MusicHub.class | Bin 0 -> 11031 bytes .../musichub/business/NoAlbumFoundException.class | Bin 0 -> 387 bytes .../business/NoElementFoundException.class | Bin 0 -> 393 bytes .../business/NoPlayListFoundException.class | Bin 0 -> 396 bytes target/classes/musichub/business/PlayList.class | Bin 0 -> 3926 bytes target/classes/musichub/business/Song.class | Bin 0 -> 3217 bytes .../classes/musichub/business/SortByAuthor.class | Bin 0 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 0 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 0 -> 858 bytes target/classes/musichub/main/Main.class | Bin 0 -> 9390 bytes target/classes/musichub/util/XMLHandler.class | Bin 0 -> 2921 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 64 ++ .../compile/default-compile/createdFiles.lst | 17 + .../compile/default-compile/inputFiles.lst | 14 + .../testCompile/default-testCompile/inputFiles.lst | 0 target/original-spoteezer-0.1.0.jar | Bin 2014 -> 29836 bytes target/site/apidocs/allclasses-index.html | 106 +++ target/site/apidocs/allpackages-index.html | 76 ++ target/site/apidocs/element-list | 3 + target/site/apidocs/help-doc.html | 162 ++++ target/site/apidocs/index-all.html | 375 ++++++++++ target/site/apidocs/index.html | 78 ++ target/site/apidocs/jquery-ui.overrides.css | 34 + target/site/apidocs/member-search-index.js | 1 + target/site/apidocs/module-search-index.js | 1 + target/site/apidocs/musichub/business/Album.html | 250 +++++++ .../site/apidocs/musichub/business/AudioBook.html | 273 +++++++ .../apidocs/musichub/business/AudioElement.html | 307 ++++++++ .../site/apidocs/musichub/business/Category.html | 258 +++++++ target/site/apidocs/musichub/business/Genre.html | 266 +++++++ .../site/apidocs/musichub/business/Language.html | 258 +++++++ .../site/apidocs/musichub/business/MusicHub.html | 390 ++++++++++ .../musichub/business/NoAlbumFoundException.html | 150 ++++ .../musichub/business/NoElementFoundException.html | 150 ++++ .../business/NoPlayListFoundException.html | 150 ++++ .../site/apidocs/musichub/business/PlayList.html | 215 ++++++ target/site/apidocs/musichub/business/Song.html | 251 +++++++ .../apidocs/musichub/business/class-use/Album.html | 99 +++ .../musichub/business/class-use/AudioBook.html | 65 ++ .../musichub/business/class-use/AudioElement.html | 114 +++ .../musichub/business/class-use/Category.html | 101 +++ .../apidocs/musichub/business/class-use/Genre.html | 98 +++ .../musichub/business/class-use/Language.html | 101 +++ .../musichub/business/class-use/MusicHub.html | 65 ++ .../business/class-use/NoAlbumFoundException.html | 97 +++ .../class-use/NoElementFoundException.html | 95 +++ .../class-use/NoPlayListFoundException.html | 94 +++ .../musichub/business/class-use/PlayList.html | 99 +++ .../apidocs/musichub/business/class-use/Song.html | 90 +++ .../apidocs/musichub/business/package-summary.html | 116 +++ .../apidocs/musichub/business/package-tree.html | 114 +++ .../apidocs/musichub/business/package-use.html | 105 +++ target/site/apidocs/musichub/main/Main.html | 166 +++++ .../site/apidocs/musichub/main/class-use/Main.html | 65 ++ .../apidocs/musichub/main/package-summary.html | 80 ++ .../site/apidocs/musichub/main/package-tree.html | 79 ++ target/site/apidocs/musichub/main/package-use.html | 65 ++ target/site/apidocs/musichub/util/XMLHandler.html | 186 +++++ .../musichub/util/class-use/XMLHandler.html | 65 ++ .../apidocs/musichub/util/package-summary.html | 80 ++ .../site/apidocs/musichub/util/package-tree.html | 79 ++ target/site/apidocs/musichub/util/package-use.html | 65 ++ target/site/apidocs/overview-summary.html | 27 + target/site/apidocs/overview-tree.html | 118 +++ target/site/apidocs/package-search-index.js | 1 + target/site/apidocs/resources/glass.png | Bin 0 -> 499 bytes target/site/apidocs/resources/x.png | Bin 0 -> 394 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../script-dir/images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../script-dir/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../script-dir/images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../script-dir/images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../script-dir/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes target/site/apidocs/script-dir/jquery-3.5.1.min.js | 2 + target/site/apidocs/script-dir/jquery-ui.min.css | 7 + target/site/apidocs/script-dir/jquery-ui.min.js | 6 + .../apidocs/script-dir/jquery-ui.structure.min.css | 5 + target/site/apidocs/script.js | 132 ++++ target/site/apidocs/search.js | 354 +++++++++ target/site/apidocs/serialized-form.html | 89 +++ target/site/apidocs/stylesheet.css | 827 +++++++++++++++++++++ target/site/apidocs/tag-search-index.js | 1 + target/site/apidocs/type-search-index.js | 1 + target/spoteezer-0.1.0.jar | Bin 337540 -> 365706 bytes 143 files changed, 9013 insertions(+), 1207 deletions(-) delete mode 100644 bin/musichub/business/Album.class delete mode 100644 bin/musichub/business/AudioBook.class delete mode 100644 bin/musichub/business/AudioElement.class delete mode 100644 bin/musichub/business/Category.class delete mode 100644 bin/musichub/business/Genre.class delete mode 100644 bin/musichub/business/Language.class delete mode 100644 bin/musichub/business/MusicHub.class delete mode 100644 bin/musichub/business/NoAlbumFoundException.class delete mode 100644 bin/musichub/business/NoElementFoundException.class delete mode 100644 bin/musichub/business/NoPlayListFoundException.class delete mode 100644 bin/musichub/business/PlayList.class delete mode 100644 bin/musichub/business/Song.class delete mode 100644 bin/musichub/business/SortByAuthor.class delete mode 100644 bin/musichub/business/SortByDate.class delete mode 100644 bin/musichub/business/SortByGenre.class delete mode 100644 bin/musichub/main/Main.class delete mode 100644 bin/musichub/util/XMLHandler.class create mode 100644 src/main/java/musichub/business/Album.java create mode 100644 src/main/java/musichub/business/AudioBook.java create mode 100644 src/main/java/musichub/business/AudioElement.java create mode 100644 src/main/java/musichub/business/Category.java create mode 100644 src/main/java/musichub/business/Genre.java create mode 100644 src/main/java/musichub/business/Language.java create mode 100644 src/main/java/musichub/business/MusicHub.java create mode 100644 src/main/java/musichub/business/NoAlbumFoundException.java create mode 100644 src/main/java/musichub/business/NoElementFoundException.java create mode 100644 src/main/java/musichub/business/NoPlayListFoundException.java create mode 100644 src/main/java/musichub/business/PlayList.java create mode 100644 src/main/java/musichub/business/Song.java create mode 100644 src/main/java/musichub/main/Main.java create mode 100644 src/main/java/musichub/util/XMLHandler.java delete mode 100644 src/musichub/business/Album.java delete mode 100644 src/musichub/business/AudioBook.java delete mode 100644 src/musichub/business/AudioElement.java delete mode 100644 src/musichub/business/Category.java delete mode 100644 src/musichub/business/Genre.java delete mode 100644 src/musichub/business/Language.java delete mode 100644 src/musichub/business/MusicHub.java delete mode 100644 src/musichub/business/NoAlbumFoundException.java delete mode 100644 src/musichub/business/NoElementFoundException.java delete mode 100644 src/musichub/business/NoPlayListFoundException.java delete mode 100644 src/musichub/business/PlayList.java delete mode 100644 src/musichub/business/Song.java delete mode 100644 src/musichub/main/Main.java delete mode 100644 src/musichub/util/XMLHandler.java create mode 100644 target/classes/musichub/business/Album.class create mode 100644 target/classes/musichub/business/AudioBook.class create mode 100644 target/classes/musichub/business/AudioElement.class create mode 100644 target/classes/musichub/business/Category.class create mode 100644 target/classes/musichub/business/Genre.class create mode 100644 target/classes/musichub/business/Language.class create mode 100644 target/classes/musichub/business/MusicHub.class create mode 100644 target/classes/musichub/business/NoAlbumFoundException.class create mode 100644 target/classes/musichub/business/NoElementFoundException.class create mode 100644 target/classes/musichub/business/NoPlayListFoundException.class create mode 100644 target/classes/musichub/business/PlayList.class create mode 100644 target/classes/musichub/business/Song.class create mode 100644 target/classes/musichub/business/SortByAuthor.class create mode 100644 target/classes/musichub/business/SortByDate.class create mode 100644 target/classes/musichub/business/SortByGenre.class create mode 100644 target/classes/musichub/main/Main.class create mode 100644 target/classes/musichub/util/XMLHandler.class create mode 100644 target/maven-javadoc-plugin-stale-data.txt create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst create mode 100644 target/site/apidocs/allclasses-index.html create mode 100644 target/site/apidocs/allpackages-index.html create mode 100644 target/site/apidocs/element-list create mode 100644 target/site/apidocs/help-doc.html create mode 100644 target/site/apidocs/index-all.html create mode 100644 target/site/apidocs/index.html create mode 100644 target/site/apidocs/jquery-ui.overrides.css create mode 100644 target/site/apidocs/member-search-index.js create mode 100644 target/site/apidocs/module-search-index.js create mode 100644 target/site/apidocs/musichub/business/Album.html create mode 100644 target/site/apidocs/musichub/business/AudioBook.html create mode 100644 target/site/apidocs/musichub/business/AudioElement.html create mode 100644 target/site/apidocs/musichub/business/Category.html create mode 100644 target/site/apidocs/musichub/business/Genre.html create mode 100644 target/site/apidocs/musichub/business/Language.html create mode 100644 target/site/apidocs/musichub/business/MusicHub.html create mode 100644 target/site/apidocs/musichub/business/NoAlbumFoundException.html create mode 100644 target/site/apidocs/musichub/business/NoElementFoundException.html create mode 100644 target/site/apidocs/musichub/business/NoPlayListFoundException.html create mode 100644 target/site/apidocs/musichub/business/PlayList.html create mode 100644 target/site/apidocs/musichub/business/Song.html create mode 100644 target/site/apidocs/musichub/business/class-use/Album.html create mode 100644 target/site/apidocs/musichub/business/class-use/AudioBook.html create mode 100644 target/site/apidocs/musichub/business/class-use/AudioElement.html create mode 100644 target/site/apidocs/musichub/business/class-use/Category.html create mode 100644 target/site/apidocs/musichub/business/class-use/Genre.html create mode 100644 target/site/apidocs/musichub/business/class-use/Language.html create mode 100644 target/site/apidocs/musichub/business/class-use/MusicHub.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoElementFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html create mode 100644 target/site/apidocs/musichub/business/class-use/PlayList.html create mode 100644 target/site/apidocs/musichub/business/class-use/Song.html create mode 100644 target/site/apidocs/musichub/business/package-summary.html create mode 100644 target/site/apidocs/musichub/business/package-tree.html create mode 100644 target/site/apidocs/musichub/business/package-use.html create mode 100644 target/site/apidocs/musichub/main/Main.html create mode 100644 target/site/apidocs/musichub/main/class-use/Main.html create mode 100644 target/site/apidocs/musichub/main/package-summary.html create mode 100644 target/site/apidocs/musichub/main/package-tree.html create mode 100644 target/site/apidocs/musichub/main/package-use.html create mode 100644 target/site/apidocs/musichub/util/XMLHandler.html create mode 100644 target/site/apidocs/musichub/util/class-use/XMLHandler.html create mode 100644 target/site/apidocs/musichub/util/package-summary.html create mode 100644 target/site/apidocs/musichub/util/package-tree.html create mode 100644 target/site/apidocs/musichub/util/package-use.html create mode 100644 target/site/apidocs/overview-summary.html create mode 100644 target/site/apidocs/overview-tree.html create mode 100644 target/site/apidocs/package-search-index.js create mode 100644 target/site/apidocs/resources/glass.png create mode 100644 target/site/apidocs/resources/x.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png create mode 100644 target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png create mode 100644 target/site/apidocs/script-dir/jquery-3.5.1.min.js create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.css create mode 100644 target/site/apidocs/script-dir/jquery-ui.min.js create mode 100644 target/site/apidocs/script-dir/jquery-ui.structure.min.css create mode 100644 target/site/apidocs/script.js create mode 100644 target/site/apidocs/search.js create mode 100644 target/site/apidocs/serialized-form.html create mode 100644 target/site/apidocs/stylesheet.css create mode 100644 target/site/apidocs/tag-search-index.js create mode 100644 target/site/apidocs/type-search-index.js (limited to 'target/maven-archiver/pom.properties') diff --git a/bin/musichub/business/Album.class b/bin/musichub/business/Album.class deleted file mode 100644 index 0bc7b94..0000000 Binary files a/bin/musichub/business/Album.class and /dev/null differ diff --git a/bin/musichub/business/AudioBook.class b/bin/musichub/business/AudioBook.class deleted file mode 100644 index acd92fc..0000000 Binary files a/bin/musichub/business/AudioBook.class and /dev/null differ diff --git a/bin/musichub/business/AudioElement.class b/bin/musichub/business/AudioElement.class deleted file mode 100644 index b737756..0000000 Binary files a/bin/musichub/business/AudioElement.class and /dev/null differ diff --git a/bin/musichub/business/Category.class b/bin/musichub/business/Category.class deleted file mode 100644 index 08b0990..0000000 Binary files a/bin/musichub/business/Category.class and /dev/null differ diff --git a/bin/musichub/business/Genre.class b/bin/musichub/business/Genre.class deleted file mode 100644 index 5a59007..0000000 Binary files a/bin/musichub/business/Genre.class and /dev/null differ diff --git a/bin/musichub/business/Language.class b/bin/musichub/business/Language.class deleted file mode 100644 index e22490e..0000000 Binary files a/bin/musichub/business/Language.class and /dev/null differ diff --git a/bin/musichub/business/MusicHub.class b/bin/musichub/business/MusicHub.class deleted file mode 100644 index 0a7ffda..0000000 Binary files a/bin/musichub/business/MusicHub.class and /dev/null differ diff --git a/bin/musichub/business/NoAlbumFoundException.class b/bin/musichub/business/NoAlbumFoundException.class deleted file mode 100644 index 2c37b0c..0000000 Binary files a/bin/musichub/business/NoAlbumFoundException.class and /dev/null differ diff --git a/bin/musichub/business/NoElementFoundException.class b/bin/musichub/business/NoElementFoundException.class deleted file mode 100644 index 6afa6b4..0000000 Binary files a/bin/musichub/business/NoElementFoundException.class and /dev/null differ diff --git a/bin/musichub/business/NoPlayListFoundException.class b/bin/musichub/business/NoPlayListFoundException.class deleted file mode 100644 index 2290022..0000000 Binary files a/bin/musichub/business/NoPlayListFoundException.class and /dev/null differ diff --git a/bin/musichub/business/PlayList.class b/bin/musichub/business/PlayList.class deleted file mode 100644 index 571eac0..0000000 Binary files a/bin/musichub/business/PlayList.class and /dev/null differ diff --git a/bin/musichub/business/Song.class b/bin/musichub/business/Song.class deleted file mode 100644 index 2cad917..0000000 Binary files a/bin/musichub/business/Song.class and /dev/null differ diff --git a/bin/musichub/business/SortByAuthor.class b/bin/musichub/business/SortByAuthor.class deleted file mode 100644 index 009d9fe..0000000 Binary files a/bin/musichub/business/SortByAuthor.class and /dev/null differ diff --git a/bin/musichub/business/SortByDate.class b/bin/musichub/business/SortByDate.class deleted file mode 100644 index 4ad6b49..0000000 Binary files a/bin/musichub/business/SortByDate.class and /dev/null differ diff --git a/bin/musichub/business/SortByGenre.class b/bin/musichub/business/SortByGenre.class deleted file mode 100644 index cf0f29c..0000000 Binary files a/bin/musichub/business/SortByGenre.class and /dev/null differ diff --git a/bin/musichub/main/Main.class b/bin/musichub/main/Main.class deleted file mode 100644 index 0ebef6e..0000000 Binary files a/bin/musichub/main/Main.class and /dev/null differ diff --git a/bin/musichub/util/XMLHandler.class b/bin/musichub/util/XMLHandler.class deleted file mode 100644 index 9a53fc4..0000000 Binary files a/bin/musichub/util/XMLHandler.class and /dev/null differ diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 3b838f2..027738e 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -1,16 +1,16 @@ - 4.0.0 - esiea.softwareengineering - spoteezer - 0.1.0 - - - - maven-shade-plugin - 3.2.4 - + 4.0.0 + esiea.softwareengineering + spoteezer + 0.1.0 + + + + maven-shade-plugin + 3.2.4 + package @@ -51,15 +51,17 @@ maven-compiler-plugin - - 14 - 14 - + + 16 + 16 + - - 1.8 - 1.8 - + + 16 + 16 + 16 + 16 + diff --git a/pom.xml b/pom.xml index b3833f4..821c1b6 100644 --- a/pom.xml +++ b/pom.xml @@ -8,8 +8,10 @@ jar 0.1.0 - 1.8 - 1.8 + 16 + 16 + 16 + 16 @@ -63,8 +65,8 @@ org.apache.maven.plugins maven-compiler-plugin - 14 - 14 + 16 + 16 diff --git a/src/main/java/musichub/business/Album.java b/src/main/java/musichub/business/Album.java new file mode 100644 index 0000000..01fd179 --- /dev/null +++ b/src/main/java/musichub/business/Album.java @@ -0,0 +1,145 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; + + +public class Album { + private final String title; + private final int lengthInSeconds; + private final UUID uuid; + private String artist; + private Date date; + private ArrayList songsUIDs; + + public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList songsUIDs) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.fromString(id); + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(date); + } catch (ParseException ex) { + ex.printStackTrace(); + } + this.songsUIDs = songsUIDs; + } + + public Album(String title, String artist, int lengthInSeconds, String date) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.randomUUID(); + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(date); + } catch (ParseException ex) { + ex.printStackTrace(); + } + this.songsUIDs = new ArrayList<>(); + } + + public Album(Element xmlElement) throws Exception { + { + this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("lengthInSeconds").item(0).getTextContent()); + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty album UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + this.date = sdf.parse(xmlElement.getElementsByTagName("date").item(0).getTextContent()); + //parse list of songs: + Node songsElement = xmlElement.getElementsByTagName("songs").item(0); + NodeList songUUIDNodes = songsElement.getChildNodes(); + if (songUUIDNodes == null) return; + + this.songsUIDs = new ArrayList<>(); + + for (int i = 0; i < songUUIDNodes.getLength(); i++) { + if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element songElement = (Element) songUUIDNodes.item(i); + if (songElement.getNodeName().equals("UUID")) { + try { + this.addSong(UUID.fromString(songElement.getTextContent())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + } + } + } + + + public void addSong(UUID song) { + songsUIDs.add(song); + } + + + public List getSongs() { + return songsUIDs; + } + + public ArrayList getSongsRandomly() { + ArrayList shuffledSongs = songsUIDs; + Collections.shuffle(shuffledSongs); + return shuffledSongs; + } + + public String getTitle() { + return title; + } + + public Date getDate() { + return date; + } + + public void createXMLElement(Document document, Element parentElement) { + Element albumElement = document.createElement("album"); + parentElement.appendChild(albumElement); + + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + albumElement.appendChild(nameElement); + + Element artistElement = document.createElement("artist"); + artistElement.appendChild(document.createTextNode(artist)); + albumElement.appendChild(artistElement); + + Element lengthElement = document.createElement("lengthInSeconds"); + lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); + albumElement.appendChild(lengthElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + albumElement.appendChild(UUIDElement); + + Element dateElement = document.createElement("date"); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + dateElement.appendChild(document.createTextNode(sdf.format(date))); + albumElement.appendChild(dateElement); + + Element songsElement = document.createElement("songs"); + for (UUID currentUUID : this.songsUIDs) { + Element songUUIDElement = document.createElement("UUID"); + songUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); + songsElement.appendChild(songUUIDElement); + } + albumElement.appendChild(songsElement); + + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/AudioBook.java b/src/main/java/musichub/business/AudioBook.java new file mode 100644 index 0000000..80392d6 --- /dev/null +++ b/src/main/java/musichub/business/AudioBook.java @@ -0,0 +1,78 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +public class AudioBook extends AudioElement { + private Language language; + private Category category; + + public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) { + super(title, artist, lengthInSeconds, uid, content); + this.setLanguage(language); + this.setCategory(category); + } + + public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) { + super(title, artist, lengthInSeconds, content); + this.setLanguage(language); + this.setCategory(category); + } + + public AudioBook(Element xmlElement) { + super(xmlElement); + this.setLanguage(xmlElement.getElementsByTagName("language").item(0).getTextContent()); + this.setCategory(xmlElement.getElementsByTagName("category").item(0).getTextContent()); + } + + public Language getLanguage() { + return this.language; + } + + public void setLanguage(String language) { + switch (language.toLowerCase()) { + default -> this.language = Language.ENGLISH; + case "french" -> this.language = Language.FRENCH; + case "german" -> this.language = Language.GERMAN; + case "spanish" -> this.language = Language.SPANISH; + case "italian" -> this.language = Language.ITALIAN; + } + } + + public Category getCategory() { + return this.category; + } + + public void setCategory(String category) { + switch (category.toLowerCase()) { + default -> this.category = Category.YOUTH; + case "novel" -> this.category = Category.NOVEL; + case "theater" -> this.category = Category.THEATER; + case "documentary" -> this.category = Category.DOCUMENTARY; + case "speech" -> this.category = Category.SPEECH; + } + } + + + public String toString() { + return super.toString() + ", Language = " + getLanguage() + ", Category = " + getCategory() + "\n"; + } + + + public void createXMLElement(Document document, Element parentElement) { + // audiobook element + Element audioBook = document.createElement("audiobook"); + + super.createXMLElement(document, audioBook); + + Element languageElement = document.createElement("language"); + languageElement.appendChild(document.createTextNode(language.getLanguage())); + audioBook.appendChild(languageElement); + + Element categoryElement = document.createElement("category"); + categoryElement.appendChild(document.createTextNode(category.getCategory())); + audioBook.appendChild(categoryElement); + + parentElement.appendChild(audioBook); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java new file mode 100644 index 0000000..e0a686b --- /dev/null +++ b/src/main/java/musichub/business/AudioElement.java @@ -0,0 +1,88 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.UUID; + +public abstract class AudioElement { + protected String title; + protected String artist; + protected int lengthInSeconds; + protected UUID uuid; + protected String content; + + public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.uuid = UUID.fromString(id); + this.content = content; + } + + public AudioElement(String title, String artist, int lengthInSeconds, String content) { + this.title = title; + this.artist = artist; + this.lengthInSeconds = lengthInSeconds; + this.content = content; + this.uuid = UUID.randomUUID(); + } + + public AudioElement(Element xmlElement) { + { + title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + artist = xmlElement.getElementsByTagName("artist").item(0).getTextContent(); + lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("length").item(0).getTextContent()); + content = xmlElement.getElementsByTagName("content").item(0).getTextContent(); + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty element UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + } + } + + public UUID getUUID() { + return this.uuid; + } + + public String getArtist() { + return this.artist; + } + + public String getTitle() { + return this.title; + } + + public String toString() { + return "Title = " + this.title + ", Artist = " + this.artist + ", Length = " + this.lengthInSeconds + ", Content = " + this.content; + } + + public void createXMLElement(Document document, Element parentElement) { + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + parentElement.appendChild(nameElement); + + Element artistElement = document.createElement("artist"); + artistElement.appendChild(document.createTextNode(artist)); + parentElement.appendChild(artistElement); + + Element lengthElement = document.createElement("length"); + lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); + parentElement.appendChild(lengthElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + parentElement.appendChild(UUIDElement); + + Element contentElement = document.createElement("content"); + contentElement.appendChild(document.createTextNode(content)); + parentElement.appendChild(contentElement); + + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Category.java b/src/main/java/musichub/business/Category.java new file mode 100644 index 0000000..f676e51 --- /dev/null +++ b/src/main/java/musichub/business/Category.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Category { + YOUTH("youth"), NOVEL("novel"), THEATER("theater"), DOCUMENTARY("documentary"), SPEECH("speech"); + private final String category; + + Category(String category) { + this.category = category; + } + + public String getCategory() { + return category; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Genre.java b/src/main/java/musichub/business/Genre.java new file mode 100644 index 0000000..18deca6 --- /dev/null +++ b/src/main/java/musichub/business/Genre.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Genre { + JAZZ("jazz"), CLASSIC("classic"), HIPHOP("hiphop"), ROCK("rock"), POP("pop"), RAP("rap"); + private final String genre; + + Genre(String genre) { + this.genre = genre; + } + + public String getGenre() { + return genre; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Language.java b/src/main/java/musichub/business/Language.java new file mode 100644 index 0000000..679e586 --- /dev/null +++ b/src/main/java/musichub/business/Language.java @@ -0,0 +1,14 @@ +package musichub.business; + +public enum Language { + FRENCH("french"), ENGLISH("english"), ITALIAN("italian"), SPANISH("spanish"), GERMAN("german"); + private final String language; + + Language(String language) { + this.language = language; + } + + public String getLanguage() { + return language; + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java new file mode 100644 index 0000000..38e2214 --- /dev/null +++ b/src/main/java/musichub/business/MusicHub.java @@ -0,0 +1,329 @@ +package musichub.business; + +import musichub.util.XMLHandler; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.*; + +class SortByDate implements Comparator { + public int compare(Album a1, Album a2) { + return a1.getDate().compareTo(a2.getDate()); + } +} + +class SortByGenre implements Comparator { + public int compare(Song s1, Song s2) { + return s1.getGenre().compareTo(s2.getGenre()); + } +} + +class SortByAuthor implements Comparator { + public int compare(AudioElement e1, AudioElement e2) { + return e1.getArtist().compareTo(e2.getArtist()); + } +} + +public class MusicHub { + public static final String DIR = System.getProperty("user.dir"); + public static final String ALBUMS_FILE_PATH = DIR + "/files/albums.xml"; + public static final String PLAYLISTS_FILE_PATH = DIR + "/files/playlists.xml"; + public static final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml"; + private final List albums; + private final List playlists; + private final List elements; + private final XMLHandler xmlHandler = new XMLHandler(); + + public MusicHub() { + albums = new LinkedList<>(); + playlists = new LinkedList<>(); + elements = new LinkedList<>(); + this.loadElements(); + this.loadAlbums(); + this.loadPlaylists(); + } + + public void addElement(AudioElement element) { + elements.add(element); + } + + public void addAlbum(Album album) { + albums.add(album); + } + + public void addPlaylist(PlayList playlist) { + playlists.add(playlist); + } + + public void deletePlayList(String playListTitle) throws NoPlayListFoundException { + + PlayList thePlayList = null; + boolean result = false; + for (PlayList pl : playlists) { + if (pl.getTitle().equalsIgnoreCase(playListTitle)) { + thePlayList = pl; + break; + } + } + + if (thePlayList != null) + result = playlists.remove(thePlayList); + if (!result) throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); + } + + public Iterator albums() { + return albums.listIterator(); + } + + public Iterator playlists() { + return playlists.listIterator(); + } + + public Iterator elements() { + return elements.listIterator(); + } + + public String getAlbumsTitlesSortedByDate() { + StringBuilder titleList = new StringBuilder(); + albums.sort(new SortByDate()); + for (Album al : albums) + titleList.append(al.getTitle()).append("\n"); + return titleList.toString(); + } + + public String getAudiobooksTitlesSortedByAuthor() { + StringBuilder titleList = new StringBuilder(); + List audioBookList = new ArrayList<>(); + for (AudioElement ae : elements) + if (ae instanceof AudioBook) + audioBookList.add(ae); + audioBookList.sort(new SortByAuthor()); + for (AudioElement ab : audioBookList) + titleList.append(ab.getArtist()).append("\n"); + return titleList.toString(); + } + + public List getAlbumSongs(String albumTitle) throws NoAlbumFoundException { + Album theAlbum = null; + ArrayList songsInAlbum = new ArrayList<>(); + for (Album al : albums) { + if (al.getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = al; + break; + } + } + if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); + + List songIDs = theAlbum.getSongs(); + for (UUID id : songIDs) + for (AudioElement el : elements) { + if (el instanceof Song) { + if (el.getUUID().equals(id)) songsInAlbum.add(el); + } + } + return songsInAlbum; + + } + + public List getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException { + Album theAlbum = null; + ArrayList songsInAlbum = new ArrayList<>(); + for (Album al : albums) { + if (al.getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = al; + break; + } + } + if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); + + List songIDs = theAlbum.getSongs(); + for (UUID id : songIDs) + for (AudioElement el : elements) { + if (el instanceof Song) { + if (el.getUUID().equals(id)) songsInAlbum.add((Song) el); + } + } + songsInAlbum.sort(new SortByGenre()); + return songsInAlbum; + + } + + public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException { + Album theAlbum = null; + int i; + boolean found = false; + for (i = 0; i < albums.size(); i++) { + if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) { + theAlbum = albums.get(i); + found = true; + break; + } + } + + if (found) { + AudioElement theElement = null; + for (AudioElement ae : elements) { + if (ae.getTitle().equalsIgnoreCase(elementTitle)) { + theElement = ae; + break; + } + } + if (theElement != null) { + theAlbum.addSong(theElement.getUUID()); + //replace the album in the list + albums.set(i, theAlbum); + } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); + } else throw new NoAlbumFoundException("Album " + albumTitle + " not found!"); + + } + + public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException { + PlayList thePlaylist = null; + int i; + boolean found = false; + + for (i = 0; i < playlists.size(); i++) { + if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) { + thePlaylist = playlists.get(i); + found = true; + break; + } + } + + if (found) { + AudioElement theElement = null; + for (AudioElement ae : elements) { + if (ae.getTitle().equalsIgnoreCase(elementTitle)) { + theElement = ae; + break; + } + } + if (theElement != null) { + thePlaylist.addElement(theElement.getUUID()); + //replace the album in the list + playlists.set(i, thePlaylist); + } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); + + } else throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); + + } + + private void loadAlbums() { + NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH); + if (albumNodes == null) return; + + for (int i = 0; i < albumNodes.getLength(); i++) { + if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element albumElement = (Element) albumNodes.item(i); + if (albumElement.getNodeName().equals("album")) { + try { + this.addAlbum(new Album(albumElement)); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML album element"); + } + } + } + } + } + + private void loadPlaylists() { + NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH); + if (playlistNodes == null) return; + + for (int i = 0; i < playlistNodes.getLength(); i++) { + if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element playlistElement = (Element) playlistNodes.item(i); + if (playlistElement.getNodeName().equals("playlist")) { + try { + this.addPlaylist(new PlayList(playlistElement)); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML playlist element"); + } + } + } + } + } + + private void loadElements() { + NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH); + if (audioelementsNodes == null) return; + + for (int i = 0; i < audioelementsNodes.getLength(); i++) { + if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element audioElement = (Element) audioelementsNodes.item(i); + if (audioElement.getNodeName().equals("song")) { + try { + AudioElement newSong = new Song(audioElement); + this.addElement(newSong); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML song element"); + } + } + if (audioElement.getNodeName().equals("audiobook")) { + try { + AudioElement newAudioBook = new AudioBook(audioElement); + this.addElement(newAudioBook); + } catch (Exception ex) { + System.out.println("Something is wrong with the XML audiobook element"); + } + } + } + } + } + + + public void saveAlbums() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("albums"); + document.appendChild(root); + + //save all albums + for (Iterator albumsIter = this.albums(); albumsIter.hasNext(); ) { + Album currentAlbum = albumsIter.next(); + currentAlbum.createXMLElement(document, root); + } + xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH); + } + + public void savePlayLists() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("playlists"); + document.appendChild(root); + + //save all playlists + for (Iterator playlistsIter = this.playlists(); playlistsIter.hasNext(); ) { + PlayList currentPlayList = playlistsIter.next(); + currentPlayList.createXMLElement(document, root); + } + xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH); + } + + public void saveElements() { + Document document = xmlHandler.createXMLDocument(); + if (document == null) return; + + // root element + Element root = document.createElement("elements"); + document.appendChild(root); + + //save all AudioElements + for (AudioElement currentElement : elements) { + + if (currentElement instanceof Song) { + currentElement.createXMLElement(document, root); + } + if (currentElement instanceof AudioBook) { + currentElement.createXMLElement(document, root); + } + } + xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoAlbumFoundException.java b/src/main/java/musichub/business/NoAlbumFoundException.java new file mode 100644 index 0000000..04cbfcd --- /dev/null +++ b/src/main/java/musichub/business/NoAlbumFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoAlbumFoundException extends Exception { + + public NoAlbumFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoElementFoundException.java b/src/main/java/musichub/business/NoElementFoundException.java new file mode 100644 index 0000000..a9b0d76 --- /dev/null +++ b/src/main/java/musichub/business/NoElementFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoElementFoundException extends Exception { + + public NoElementFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/NoPlayListFoundException.java b/src/main/java/musichub/business/NoPlayListFoundException.java new file mode 100644 index 0000000..c5eb413 --- /dev/null +++ b/src/main/java/musichub/business/NoPlayListFoundException.java @@ -0,0 +1,8 @@ +package musichub.business; + +public class NoPlayListFoundException extends Exception { + + public NoPlayListFoundException(String msg) { + super(msg); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/business/PlayList.java b/src/main/java/musichub/business/PlayList.java new file mode 100644 index 0000000..4180a62 --- /dev/null +++ b/src/main/java/musichub/business/PlayList.java @@ -0,0 +1,100 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import java.util.ArrayList; +import java.util.UUID; + +public class PlayList { + private final String title; + private final UUID uuid; + private ArrayList elementUUIDs; + + public PlayList(String title, String id, ArrayList elementUUIDs) { + this.title = title; + this.uuid = UUID.fromString(id); + this.elementUUIDs = elementUUIDs; + } + + public PlayList(String title) { + this.title = title; + this.uuid = UUID.randomUUID(); + this.elementUUIDs = new ArrayList<>(); + } + + public PlayList(Element xmlElement) { + { + this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); + + String uuid = null; + try { + uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); + } catch (Exception ex) { + System.out.println("Empty playlist UUID, will create a new one"); + } + if ((uuid == null) || (uuid.isEmpty())) + this.uuid = UUID.randomUUID(); + else this.uuid = UUID.fromString(uuid); + + //parse list of elements: + Node elementsElement = xmlElement.getElementsByTagName("elements").item(0); + NodeList elementUUIDNodes = elementsElement.getChildNodes(); + if (elementUUIDNodes == null) return; + + this.elementUUIDs = new ArrayList<>(); + + + for (int i = 0; i < elementUUIDNodes.getLength(); i++) { + if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { + Element elementElement = (Element) elementUUIDNodes.item(i); + if (elementElement.getNodeName().equals("UUID")) { + try { + this.addElement(UUID.fromString(elementElement.getTextContent())); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + } + } + } + } + + public void addElement(UUID element) { + elementUUIDs.add(element); + } + + public ArrayList getElements() { + return elementUUIDs; + } + + public String getTitle() { + return title; + } + + public void createXMLElement(Document document, Element parentElement) { + Element playlistElement = document.createElement("playlist"); + parentElement.appendChild(playlistElement); + + Element nameElement = document.createElement("title"); + nameElement.appendChild(document.createTextNode(title)); + playlistElement.appendChild(nameElement); + + Element UUIDElement = document.createElement("UUID"); + UUIDElement.appendChild(document.createTextNode(uuid.toString())); + playlistElement.appendChild(UUIDElement); + + + Element elementsElement = document.createElement("elements"); + for (UUID currentUUID : this.elementUUIDs) { + + Element elementUUIDElement = document.createElement("UUID"); + elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); + elementsElement.appendChild(elementUUIDElement); + } + playlistElement.appendChild(elementsElement); + } + +} \ No newline at end of file diff --git a/src/main/java/musichub/business/Song.java b/src/main/java/musichub/business/Song.java new file mode 100644 index 0000000..3e9011b --- /dev/null +++ b/src/main/java/musichub/business/Song.java @@ -0,0 +1,56 @@ +package musichub.business; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + + +public class Song extends AudioElement { + private Genre genre; + + public Song(String title, String artist, int length, String uid, String content, String genre) { + super(title, artist, length, uid, content); + this.setGenre(genre); + } + + public Song(String title, String artist, int length, String content, String genre) { + super(title, artist, length, content); + this.setGenre(genre); + } + + public Song(Element xmlElement) { + super(xmlElement); + this.setGenre(xmlElement.getElementsByTagName("genre").item(0).getTextContent()); + } + + public String getGenre() { + return genre.getGenre(); + } + + public void setGenre(String genre) { + switch (genre.toLowerCase()) { + default -> this.genre = Genre.JAZZ; + case "classic" -> this.genre = Genre.CLASSIC; + case "hiphop" -> this.genre = Genre.HIPHOP; + case "rock" -> this.genre = Genre.ROCK; + case "pop" -> this.genre = Genre.POP; + case "rap" -> this.genre = Genre.RAP; + } + } + + public String toString() { + return super.toString() + ", Genre = " + getGenre() + "\n"; + } + + public void createXMLElement(Document document, Element parentElement) { + // song element + Element song = document.createElement("song"); + + super.createXMLElement(document, song); + + Element genreElement = document.createElement("genre"); + genreElement.appendChild(document.createTextNode(genre.getGenre())); + song.appendChild(genreElement); + + parentElement.appendChild(song); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java new file mode 100644 index 0000000..b72a95b --- /dev/null +++ b/src/main/java/musichub/main/Main.java @@ -0,0 +1,248 @@ +package musichub.main; + +import musichub.business.*; + +import java.util.Iterator; +import java.util.Scanner; + +public class Main { + public static void main(String[] args) { + + MusicHub theHub = new MusicHub(); + + System.out.println("Type h for available commands"); + + + Scanner scan = new Scanner(System.in); + String choice = scan.nextLine(); + + String albumTitle; + + if (choice.length() == 0) System.exit(0); + + while (!choice.equals("")) { //if the user puts nothing, quit the loop/system + switch (choice.charAt(0)) { + case 'q': //added the option directly in the switch instead of the loop + System.exit(0); + case 'h': + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 't': + //album titles, ordered by date + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'g': + //songs of an album, sorted by genre + System.out.println("Songs of an album sorted by genre will be displayed; enter the album name, available albums are:"); + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + + albumTitle = scan.nextLine(); + try { + System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); + } catch (NoAlbumFoundException ex) { + System.out.println("No album found with the requested title " + ex.getMessage()); + } + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'd': + //songs of an album + System.out.println("Songs of an album will be displayed; enter the album name, available albums are:"); + System.out.println(theHub.getAlbumsTitlesSortedByDate()); + + albumTitle = scan.nextLine(); + try { + System.out.println(theHub.getAlbumSongs(albumTitle)); + } catch (NoAlbumFoundException ex) { + System.out.println("No album found with the requested title " + ex.getMessage()); + } + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'u': + //audiobooks ordered by author + System.out.println(theHub.getAudiobooksTitlesSortedByAuthor()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'c': + // add a new song + System.out.println("Enter a new song: "); + System.out.println("Song title: "); + String title = scan.nextLine(); + System.out.println("Song genre (jazz, classic, hiphop, rock, pop, rap):"); + String genre = scan.nextLine(); + System.out.println("Song artist: "); + String artist = scan.nextLine(); + System.out.println("Song length in seconds: "); + int length = Integer.parseInt(scan.nextLine()); + System.out.println("Song content: "); + String content = scan.nextLine(); + Song s = new Song(title, artist, length, content, genre); + theHub.addElement(s); + System.out.println("New element list: "); + Iterator it = theHub.elements(); + while (it.hasNext()) System.out.println(it.next().getTitle()); + System.out.println("Song created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'a': + // add a new album + System.out.println("Enter a new album: "); + System.out.println("Album title: "); + String aTitle = scan.nextLine(); + System.out.println("Album artist: "); + String aArtist = scan.nextLine(); + System.out.println("Album length in seconds: "); + int aLength = Integer.parseInt(scan.nextLine()); + System.out.println("Album date as YYYY-DD-MM: "); + String aDate = scan.nextLine(); + Album a = new Album(aTitle, aArtist, aLength, aDate); + theHub.addAlbum(a); + System.out.println("New list of albums: "); + Iterator ita = theHub.albums(); + while (ita.hasNext()) System.out.println(ita.next().getTitle()); + System.out.println("Album created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case '+': + //add a song to an album: + System.out.println("Add an existing song to an existing album"); + System.out.println("Type the name of the song you wish to add. Available songs: "); + Iterator itae = theHub.elements(); + while (itae.hasNext()) { + AudioElement ae = itae.next(); + if (ae instanceof Song) System.out.println(ae.getTitle()); + } + String songTitle = scan.nextLine(); + + System.out.println("Type the name of the album you wish to enrich. Available albums: "); + Iterator ait = theHub.albums(); + while (ait.hasNext()) { + Album al = ait.next(); + System.out.println(al.getTitle()); + } + String titleAlbum = scan.nextLine(); + try { + theHub.addElementToAlbum(songTitle, titleAlbum); + } catch (NoAlbumFoundException | NoElementFoundException ex) { + System.out.println(ex.getMessage()); + } + System.out.println("Song added to the album!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'l': + // add a new audiobook + System.out.println("Enter a new audiobook: "); + System.out.println("AudioBook title: "); + String bTitle = scan.nextLine(); + System.out.println("AudioBook category (youth, novel, theater, documentary, speech)"); + String bCategory = scan.nextLine(); + System.out.println("AudioBook artist: "); + String bArtist = scan.nextLine(); + System.out.println("AudioBook length in seconds: "); + int bLength = Integer.parseInt(scan.nextLine()); + System.out.println("AudioBook content: "); + String bContent = scan.nextLine(); + System.out.println("AudioBook language (french, english, italian, spanish, german)"); + String bLanguage = scan.nextLine(); + AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory); + theHub.addElement(b); + System.out.println("Audiobook created! New element list: "); + Iterator itl = theHub.elements(); + while (itl.hasNext()) System.out.println(itl.next().getTitle()); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 'p': + //create a new playlist from existing elements + System.out.println("Add an existing song or audiobook to a new playlist"); + System.out.println("Existing playlists:"); + Iterator itpl = theHub.playlists(); + while (itpl.hasNext()) { + PlayList pl = itpl.next(); + System.out.println(pl.getTitle()); + } + System.out.println("Type the name of the playlist you wish to create:"); + String playListTitle = scan.nextLine(); + PlayList pl = new PlayList(playListTitle); + theHub.addPlaylist(pl); + System.out.println("Available elements: "); + + Iterator itael = theHub.elements(); + while (itael.hasNext()) { + AudioElement ae = itael.next(); + System.out.println(ae.getTitle()); + } + while (choice.charAt(0) != 'n') { + System.out.println("Type the name of the audio element you wish to add or 'n' to exit:"); + String elementTitle = scan.nextLine(); + try { + theHub.addElementToPlayList(elementTitle, playListTitle); + } catch (NoPlayListFoundException | NoElementFoundException ex) { + System.out.println(ex.getMessage()); + } + + System.out.println("Type y to add a new one, n to end"); + choice = scan.nextLine(); + } + System.out.println("Playlist created!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case '-': + //delete a playlist + System.out.println("Delete an existing playlist. Available playlists:"); + Iterator itp = theHub.playlists(); + while (itp.hasNext()) { + PlayList p = itp.next(); + System.out.println(p.getTitle()); + } + String plTitle = scan.nextLine(); + try { + theHub.deletePlayList(plTitle); + } catch (NoPlayListFoundException ex) { + System.out.println(ex.getMessage()); + } + System.out.println("Playlist deleted!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + case 's': + //save elements, albums, playlists + theHub.saveElements(); + theHub.saveAlbums(); + theHub.savePlayLists(); + System.out.println("Elements, albums and playlists saved!"); + printAvailableCommands(); + choice = scan.nextLine(); + break; + default: + + break; + } + } + scan.close(); + } + + private static void printAvailableCommands() { + System.out.println("t: display the album titles, ordered by date"); + System.out.println("g: display songs of an album, ordered by genre"); + System.out.println("d: display songs of an album"); + System.out.println("u: display audiobooks ordered by author"); + System.out.println("c: add a new song"); + System.out.println("a: add a new album"); + System.out.println("+: add a song to an album"); + System.out.println("l: add a new audiobook"); + System.out.println("p: create a new playlist from existing songs and audio books"); + System.out.println("-: delete an existing playlist"); + System.out.println("s: save elements, albums, playlists"); + System.out.println("q: quit program"); + } +} \ No newline at end of file diff --git a/src/main/java/musichub/util/XMLHandler.java b/src/main/java/musichub/util/XMLHandler.java new file mode 100644 index 0000000..4b61842 --- /dev/null +++ b/src/main/java/musichub/util/XMLHandler.java @@ -0,0 +1,74 @@ +package musichub.util; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.File; +import java.io.IOException; + + +public class XMLHandler { + TransformerFactory transformerFactory; + Transformer transformer; + DocumentBuilderFactory documentFactory; + DocumentBuilder documentBuilder; + + public XMLHandler() { + try { + transformerFactory = TransformerFactory.newInstance(); + transformer = transformerFactory.newTransformer(); + documentFactory = DocumentBuilderFactory.newInstance(); + documentBuilder = documentFactory.newDocumentBuilder(); + } catch (TransformerException | ParserConfigurationException tfe) { + tfe.printStackTrace(); + } + } + + public void createXMLFile(Document document, String filePath) { + try { + // create the xml file + //transform the DOM Object to an XML File + DOMSource domSource = new DOMSource(document); + StreamResult streamResult = new StreamResult(new File(filePath)); + + // If you use + // StreamResult result = new StreamResult(System.out); + // the output will be pushed to the standard output ... + // You can use that for debugging + + transformer.transform(domSource, streamResult); + + } catch (TransformerException tfe) { + tfe.printStackTrace(); + } + } + + public Document createXMLDocument() { + return documentBuilder.newDocument(); + } + + public NodeList parseXMLFile(String filePath) { + NodeList elementNodes = null; + try { + Document document = documentBuilder.parse(new File(filePath)); + Element root = document.getDocumentElement(); + + elementNodes = root.getChildNodes(); + } catch (SAXException | IOException e) { + e.printStackTrace(); + } + return elementNodes; + } + + +} \ No newline at end of file diff --git a/src/musichub/business/Album.java b/src/musichub/business/Album.java deleted file mode 100644 index 01fd179..0000000 --- a/src/musichub/business/Album.java +++ /dev/null @@ -1,145 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.*; - - -public class Album { - private final String title; - private final int lengthInSeconds; - private final UUID uuid; - private String artist; - private Date date; - private ArrayList songsUIDs; - - public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList songsUIDs) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.fromString(id); - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(date); - } catch (ParseException ex) { - ex.printStackTrace(); - } - this.songsUIDs = songsUIDs; - } - - public Album(String title, String artist, int lengthInSeconds, String date) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.randomUUID(); - try { - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(date); - } catch (ParseException ex) { - ex.printStackTrace(); - } - this.songsUIDs = new ArrayList<>(); - } - - public Album(Element xmlElement) throws Exception { - { - this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("lengthInSeconds").item(0).getTextContent()); - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty album UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - this.date = sdf.parse(xmlElement.getElementsByTagName("date").item(0).getTextContent()); - //parse list of songs: - Node songsElement = xmlElement.getElementsByTagName("songs").item(0); - NodeList songUUIDNodes = songsElement.getChildNodes(); - if (songUUIDNodes == null) return; - - this.songsUIDs = new ArrayList<>(); - - for (int i = 0; i < songUUIDNodes.getLength(); i++) { - if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element songElement = (Element) songUUIDNodes.item(i); - if (songElement.getNodeName().equals("UUID")) { - try { - this.addSong(UUID.fromString(songElement.getTextContent())); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } - } - } - } - - - public void addSong(UUID song) { - songsUIDs.add(song); - } - - - public List getSongs() { - return songsUIDs; - } - - public ArrayList getSongsRandomly() { - ArrayList shuffledSongs = songsUIDs; - Collections.shuffle(shuffledSongs); - return shuffledSongs; - } - - public String getTitle() { - return title; - } - - public Date getDate() { - return date; - } - - public void createXMLElement(Document document, Element parentElement) { - Element albumElement = document.createElement("album"); - parentElement.appendChild(albumElement); - - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - albumElement.appendChild(nameElement); - - Element artistElement = document.createElement("artist"); - artistElement.appendChild(document.createTextNode(artist)); - albumElement.appendChild(artistElement); - - Element lengthElement = document.createElement("lengthInSeconds"); - lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); - albumElement.appendChild(lengthElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - albumElement.appendChild(UUIDElement); - - Element dateElement = document.createElement("date"); - SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); - dateElement.appendChild(document.createTextNode(sdf.format(date))); - albumElement.appendChild(dateElement); - - Element songsElement = document.createElement("songs"); - for (UUID currentUUID : this.songsUIDs) { - Element songUUIDElement = document.createElement("UUID"); - songUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); - songsElement.appendChild(songUUIDElement); - } - albumElement.appendChild(songsElement); - - } -} \ No newline at end of file diff --git a/src/musichub/business/AudioBook.java b/src/musichub/business/AudioBook.java deleted file mode 100644 index 80392d6..0000000 --- a/src/musichub/business/AudioBook.java +++ /dev/null @@ -1,78 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public class AudioBook extends AudioElement { - private Language language; - private Category category; - - public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) { - super(title, artist, lengthInSeconds, uid, content); - this.setLanguage(language); - this.setCategory(category); - } - - public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) { - super(title, artist, lengthInSeconds, content); - this.setLanguage(language); - this.setCategory(category); - } - - public AudioBook(Element xmlElement) { - super(xmlElement); - this.setLanguage(xmlElement.getElementsByTagName("language").item(0).getTextContent()); - this.setCategory(xmlElement.getElementsByTagName("category").item(0).getTextContent()); - } - - public Language getLanguage() { - return this.language; - } - - public void setLanguage(String language) { - switch (language.toLowerCase()) { - default -> this.language = Language.ENGLISH; - case "french" -> this.language = Language.FRENCH; - case "german" -> this.language = Language.GERMAN; - case "spanish" -> this.language = Language.SPANISH; - case "italian" -> this.language = Language.ITALIAN; - } - } - - public Category getCategory() { - return this.category; - } - - public void setCategory(String category) { - switch (category.toLowerCase()) { - default -> this.category = Category.YOUTH; - case "novel" -> this.category = Category.NOVEL; - case "theater" -> this.category = Category.THEATER; - case "documentary" -> this.category = Category.DOCUMENTARY; - case "speech" -> this.category = Category.SPEECH; - } - } - - - public String toString() { - return super.toString() + ", Language = " + getLanguage() + ", Category = " + getCategory() + "\n"; - } - - - public void createXMLElement(Document document, Element parentElement) { - // audiobook element - Element audioBook = document.createElement("audiobook"); - - super.createXMLElement(document, audioBook); - - Element languageElement = document.createElement("language"); - languageElement.appendChild(document.createTextNode(language.getLanguage())); - audioBook.appendChild(languageElement); - - Element categoryElement = document.createElement("category"); - categoryElement.appendChild(document.createTextNode(category.getCategory())); - audioBook.appendChild(categoryElement); - - parentElement.appendChild(audioBook); - } -} \ No newline at end of file diff --git a/src/musichub/business/AudioElement.java b/src/musichub/business/AudioElement.java deleted file mode 100644 index e0a686b..0000000 --- a/src/musichub/business/AudioElement.java +++ /dev/null @@ -1,88 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -import java.util.UUID; - -public abstract class AudioElement { - protected String title; - protected String artist; - protected int lengthInSeconds; - protected UUID uuid; - protected String content; - - public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.uuid = UUID.fromString(id); - this.content = content; - } - - public AudioElement(String title, String artist, int lengthInSeconds, String content) { - this.title = title; - this.artist = artist; - this.lengthInSeconds = lengthInSeconds; - this.content = content; - this.uuid = UUID.randomUUID(); - } - - public AudioElement(Element xmlElement) { - { - title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - artist = xmlElement.getElementsByTagName("artist").item(0).getTextContent(); - lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName("length").item(0).getTextContent()); - content = xmlElement.getElementsByTagName("content").item(0).getTextContent(); - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty element UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - } - } - - public UUID getUUID() { - return this.uuid; - } - - public String getArtist() { - return this.artist; - } - - public String getTitle() { - return this.title; - } - - public String toString() { - return "Title = " + this.title + ", Artist = " + this.artist + ", Length = " + this.lengthInSeconds + ", Content = " + this.content; - } - - public void createXMLElement(Document document, Element parentElement) { - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - parentElement.appendChild(nameElement); - - Element artistElement = document.createElement("artist"); - artistElement.appendChild(document.createTextNode(artist)); - parentElement.appendChild(artistElement); - - Element lengthElement = document.createElement("length"); - lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString())); - parentElement.appendChild(lengthElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - parentElement.appendChild(UUIDElement); - - Element contentElement = document.createElement("content"); - contentElement.appendChild(document.createTextNode(content)); - parentElement.appendChild(contentElement); - - } - -} \ No newline at end of file diff --git a/src/musichub/business/Category.java b/src/musichub/business/Category.java deleted file mode 100644 index f676e51..0000000 --- a/src/musichub/business/Category.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Category { - YOUTH("youth"), NOVEL("novel"), THEATER("theater"), DOCUMENTARY("documentary"), SPEECH("speech"); - private final String category; - - Category(String category) { - this.category = category; - } - - public String getCategory() { - return category; - } -} \ No newline at end of file diff --git a/src/musichub/business/Genre.java b/src/musichub/business/Genre.java deleted file mode 100644 index 18deca6..0000000 --- a/src/musichub/business/Genre.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Genre { - JAZZ("jazz"), CLASSIC("classic"), HIPHOP("hiphop"), ROCK("rock"), POP("pop"), RAP("rap"); - private final String genre; - - Genre(String genre) { - this.genre = genre; - } - - public String getGenre() { - return genre; - } -} \ No newline at end of file diff --git a/src/musichub/business/Language.java b/src/musichub/business/Language.java deleted file mode 100644 index 679e586..0000000 --- a/src/musichub/business/Language.java +++ /dev/null @@ -1,14 +0,0 @@ -package musichub.business; - -public enum Language { - FRENCH("french"), ENGLISH("english"), ITALIAN("italian"), SPANISH("spanish"), GERMAN("german"); - private final String language; - - Language(String language) { - this.language = language; - } - - public String getLanguage() { - return language; - } -} \ No newline at end of file diff --git a/src/musichub/business/MusicHub.java b/src/musichub/business/MusicHub.java deleted file mode 100644 index 38e2214..0000000 --- a/src/musichub/business/MusicHub.java +++ /dev/null @@ -1,329 +0,0 @@ -package musichub.business; - -import musichub.util.XMLHandler; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.util.*; - -class SortByDate implements Comparator { - public int compare(Album a1, Album a2) { - return a1.getDate().compareTo(a2.getDate()); - } -} - -class SortByGenre implements Comparator { - public int compare(Song s1, Song s2) { - return s1.getGenre().compareTo(s2.getGenre()); - } -} - -class SortByAuthor implements Comparator { - public int compare(AudioElement e1, AudioElement e2) { - return e1.getArtist().compareTo(e2.getArtist()); - } -} - -public class MusicHub { - public static final String DIR = System.getProperty("user.dir"); - public static final String ALBUMS_FILE_PATH = DIR + "/files/albums.xml"; - public static final String PLAYLISTS_FILE_PATH = DIR + "/files/playlists.xml"; - public static final String ELEMENTS_FILE_PATH = DIR + "/files/elements.xml"; - private final List albums; - private final List playlists; - private final List elements; - private final XMLHandler xmlHandler = new XMLHandler(); - - public MusicHub() { - albums = new LinkedList<>(); - playlists = new LinkedList<>(); - elements = new LinkedList<>(); - this.loadElements(); - this.loadAlbums(); - this.loadPlaylists(); - } - - public void addElement(AudioElement element) { - elements.add(element); - } - - public void addAlbum(Album album) { - albums.add(album); - } - - public void addPlaylist(PlayList playlist) { - playlists.add(playlist); - } - - public void deletePlayList(String playListTitle) throws NoPlayListFoundException { - - PlayList thePlayList = null; - boolean result = false; - for (PlayList pl : playlists) { - if (pl.getTitle().equalsIgnoreCase(playListTitle)) { - thePlayList = pl; - break; - } - } - - if (thePlayList != null) - result = playlists.remove(thePlayList); - if (!result) throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); - } - - public Iterator albums() { - return albums.listIterator(); - } - - public Iterator playlists() { - return playlists.listIterator(); - } - - public Iterator elements() { - return elements.listIterator(); - } - - public String getAlbumsTitlesSortedByDate() { - StringBuilder titleList = new StringBuilder(); - albums.sort(new SortByDate()); - for (Album al : albums) - titleList.append(al.getTitle()).append("\n"); - return titleList.toString(); - } - - public String getAudiobooksTitlesSortedByAuthor() { - StringBuilder titleList = new StringBuilder(); - List audioBookList = new ArrayList<>(); - for (AudioElement ae : elements) - if (ae instanceof AudioBook) - audioBookList.add(ae); - audioBookList.sort(new SortByAuthor()); - for (AudioElement ab : audioBookList) - titleList.append(ab.getArtist()).append("\n"); - return titleList.toString(); - } - - public List getAlbumSongs(String albumTitle) throws NoAlbumFoundException { - Album theAlbum = null; - ArrayList songsInAlbum = new ArrayList<>(); - for (Album al : albums) { - if (al.getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = al; - break; - } - } - if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); - - List songIDs = theAlbum.getSongs(); - for (UUID id : songIDs) - for (AudioElement el : elements) { - if (el instanceof Song) { - if (el.getUUID().equals(id)) songsInAlbum.add(el); - } - } - return songsInAlbum; - - } - - public List getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException { - Album theAlbum = null; - ArrayList songsInAlbum = new ArrayList<>(); - for (Album al : albums) { - if (al.getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = al; - break; - } - } - if (theAlbum == null) throw new NoAlbumFoundException("No album with this title in the MusicHub!"); - - List songIDs = theAlbum.getSongs(); - for (UUID id : songIDs) - for (AudioElement el : elements) { - if (el instanceof Song) { - if (el.getUUID().equals(id)) songsInAlbum.add((Song) el); - } - } - songsInAlbum.sort(new SortByGenre()); - return songsInAlbum; - - } - - public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException { - Album theAlbum = null; - int i; - boolean found = false; - for (i = 0; i < albums.size(); i++) { - if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) { - theAlbum = albums.get(i); - found = true; - break; - } - } - - if (found) { - AudioElement theElement = null; - for (AudioElement ae : elements) { - if (ae.getTitle().equalsIgnoreCase(elementTitle)) { - theElement = ae; - break; - } - } - if (theElement != null) { - theAlbum.addSong(theElement.getUUID()); - //replace the album in the list - albums.set(i, theAlbum); - } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); - } else throw new NoAlbumFoundException("Album " + albumTitle + " not found!"); - - } - - public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException { - PlayList thePlaylist = null; - int i; - boolean found = false; - - for (i = 0; i < playlists.size(); i++) { - if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) { - thePlaylist = playlists.get(i); - found = true; - break; - } - } - - if (found) { - AudioElement theElement = null; - for (AudioElement ae : elements) { - if (ae.getTitle().equalsIgnoreCase(elementTitle)) { - theElement = ae; - break; - } - } - if (theElement != null) { - thePlaylist.addElement(theElement.getUUID()); - //replace the album in the list - playlists.set(i, thePlaylist); - } else throw new NoElementFoundException("Element " + elementTitle + " not found!"); - - } else throw new NoPlayListFoundException("Playlist " + playListTitle + " not found!"); - - } - - private void loadAlbums() { - NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH); - if (albumNodes == null) return; - - for (int i = 0; i < albumNodes.getLength(); i++) { - if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element albumElement = (Element) albumNodes.item(i); - if (albumElement.getNodeName().equals("album")) { - try { - this.addAlbum(new Album(albumElement)); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML album element"); - } - } - } - } - } - - private void loadPlaylists() { - NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH); - if (playlistNodes == null) return; - - for (int i = 0; i < playlistNodes.getLength(); i++) { - if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element playlistElement = (Element) playlistNodes.item(i); - if (playlistElement.getNodeName().equals("playlist")) { - try { - this.addPlaylist(new PlayList(playlistElement)); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML playlist element"); - } - } - } - } - } - - private void loadElements() { - NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH); - if (audioelementsNodes == null) return; - - for (int i = 0; i < audioelementsNodes.getLength(); i++) { - if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element audioElement = (Element) audioelementsNodes.item(i); - if (audioElement.getNodeName().equals("song")) { - try { - AudioElement newSong = new Song(audioElement); - this.addElement(newSong); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML song element"); - } - } - if (audioElement.getNodeName().equals("audiobook")) { - try { - AudioElement newAudioBook = new AudioBook(audioElement); - this.addElement(newAudioBook); - } catch (Exception ex) { - System.out.println("Something is wrong with the XML audiobook element"); - } - } - } - } - } - - - public void saveAlbums() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("albums"); - document.appendChild(root); - - //save all albums - for (Iterator albumsIter = this.albums(); albumsIter.hasNext(); ) { - Album currentAlbum = albumsIter.next(); - currentAlbum.createXMLElement(document, root); - } - xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH); - } - - public void savePlayLists() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("playlists"); - document.appendChild(root); - - //save all playlists - for (Iterator playlistsIter = this.playlists(); playlistsIter.hasNext(); ) { - PlayList currentPlayList = playlistsIter.next(); - currentPlayList.createXMLElement(document, root); - } - xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH); - } - - public void saveElements() { - Document document = xmlHandler.createXMLDocument(); - if (document == null) return; - - // root element - Element root = document.createElement("elements"); - document.appendChild(root); - - //save all AudioElements - for (AudioElement currentElement : elements) { - - if (currentElement instanceof Song) { - currentElement.createXMLElement(document, root); - } - if (currentElement instanceof AudioBook) { - currentElement.createXMLElement(document, root); - } - } - xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoAlbumFoundException.java b/src/musichub/business/NoAlbumFoundException.java deleted file mode 100644 index 04cbfcd..0000000 --- a/src/musichub/business/NoAlbumFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoAlbumFoundException extends Exception { - - public NoAlbumFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoElementFoundException.java b/src/musichub/business/NoElementFoundException.java deleted file mode 100644 index a9b0d76..0000000 --- a/src/musichub/business/NoElementFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoElementFoundException extends Exception { - - public NoElementFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/NoPlayListFoundException.java b/src/musichub/business/NoPlayListFoundException.java deleted file mode 100644 index c5eb413..0000000 --- a/src/musichub/business/NoPlayListFoundException.java +++ /dev/null @@ -1,8 +0,0 @@ -package musichub.business; - -public class NoPlayListFoundException extends Exception { - - public NoPlayListFoundException(String msg) { - super(msg); - } -} \ No newline at end of file diff --git a/src/musichub/business/PlayList.java b/src/musichub/business/PlayList.java deleted file mode 100644 index 4180a62..0000000 --- a/src/musichub/business/PlayList.java +++ /dev/null @@ -1,100 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -import java.util.ArrayList; -import java.util.UUID; - -public class PlayList { - private final String title; - private final UUID uuid; - private ArrayList elementUUIDs; - - public PlayList(String title, String id, ArrayList elementUUIDs) { - this.title = title; - this.uuid = UUID.fromString(id); - this.elementUUIDs = elementUUIDs; - } - - public PlayList(String title) { - this.title = title; - this.uuid = UUID.randomUUID(); - this.elementUUIDs = new ArrayList<>(); - } - - public PlayList(Element xmlElement) { - { - this.title = xmlElement.getElementsByTagName("title").item(0).getTextContent(); - - String uuid = null; - try { - uuid = xmlElement.getElementsByTagName("UUID").item(0).getTextContent(); - } catch (Exception ex) { - System.out.println("Empty playlist UUID, will create a new one"); - } - if ((uuid == null) || (uuid.isEmpty())) - this.uuid = UUID.randomUUID(); - else this.uuid = UUID.fromString(uuid); - - //parse list of elements: - Node elementsElement = xmlElement.getElementsByTagName("elements").item(0); - NodeList elementUUIDNodes = elementsElement.getChildNodes(); - if (elementUUIDNodes == null) return; - - this.elementUUIDs = new ArrayList<>(); - - - for (int i = 0; i < elementUUIDNodes.getLength(); i++) { - if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) { - Element elementElement = (Element) elementUUIDNodes.item(i); - if (elementElement.getNodeName().equals("UUID")) { - try { - this.addElement(UUID.fromString(elementElement.getTextContent())); - } catch (Exception ex) { - ex.printStackTrace(); - } - } - } - } - } - } - - public void addElement(UUID element) { - elementUUIDs.add(element); - } - - public ArrayList getElements() { - return elementUUIDs; - } - - public String getTitle() { - return title; - } - - public void createXMLElement(Document document, Element parentElement) { - Element playlistElement = document.createElement("playlist"); - parentElement.appendChild(playlistElement); - - Element nameElement = document.createElement("title"); - nameElement.appendChild(document.createTextNode(title)); - playlistElement.appendChild(nameElement); - - Element UUIDElement = document.createElement("UUID"); - UUIDElement.appendChild(document.createTextNode(uuid.toString())); - playlistElement.appendChild(UUIDElement); - - - Element elementsElement = document.createElement("elements"); - for (UUID currentUUID : this.elementUUIDs) { - - Element elementUUIDElement = document.createElement("UUID"); - elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString())); - elementsElement.appendChild(elementUUIDElement); - } - playlistElement.appendChild(elementsElement); - } - -} \ No newline at end of file diff --git a/src/musichub/business/Song.java b/src/musichub/business/Song.java deleted file mode 100644 index 3e9011b..0000000 --- a/src/musichub/business/Song.java +++ /dev/null @@ -1,56 +0,0 @@ -package musichub.business; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; - - -public class Song extends AudioElement { - private Genre genre; - - public Song(String title, String artist, int length, String uid, String content, String genre) { - super(title, artist, length, uid, content); - this.setGenre(genre); - } - - public Song(String title, String artist, int length, String content, String genre) { - super(title, artist, length, content); - this.setGenre(genre); - } - - public Song(Element xmlElement) { - super(xmlElement); - this.setGenre(xmlElement.getElementsByTagName("genre").item(0).getTextContent()); - } - - public String getGenre() { - return genre.getGenre(); - } - - public void setGenre(String genre) { - switch (genre.toLowerCase()) { - default -> this.genre = Genre.JAZZ; - case "classic" -> this.genre = Genre.CLASSIC; - case "hiphop" -> this.genre = Genre.HIPHOP; - case "rock" -> this.genre = Genre.ROCK; - case "pop" -> this.genre = Genre.POP; - case "rap" -> this.genre = Genre.RAP; - } - } - - public String toString() { - return super.toString() + ", Genre = " + getGenre() + "\n"; - } - - public void createXMLElement(Document document, Element parentElement) { - // song element - Element song = document.createElement("song"); - - super.createXMLElement(document, song); - - Element genreElement = document.createElement("genre"); - genreElement.appendChild(document.createTextNode(genre.getGenre())); - song.appendChild(genreElement); - - parentElement.appendChild(song); - } -} \ No newline at end of file diff --git a/src/musichub/main/Main.java b/src/musichub/main/Main.java deleted file mode 100644 index b72a95b..0000000 --- a/src/musichub/main/Main.java +++ /dev/null @@ -1,248 +0,0 @@ -package musichub.main; - -import musichub.business.*; - -import java.util.Iterator; -import java.util.Scanner; - -public class Main { - public static void main(String[] args) { - - MusicHub theHub = new MusicHub(); - - System.out.println("Type h for available commands"); - - - Scanner scan = new Scanner(System.in); - String choice = scan.nextLine(); - - String albumTitle; - - if (choice.length() == 0) System.exit(0); - - while (!choice.equals("")) { //if the user puts nothing, quit the loop/system - switch (choice.charAt(0)) { - case 'q': //added the option directly in the switch instead of the loop - System.exit(0); - case 'h': - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 't': - //album titles, ordered by date - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'g': - //songs of an album, sorted by genre - System.out.println("Songs of an album sorted by genre will be displayed; enter the album name, available albums are:"); - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - - albumTitle = scan.nextLine(); - try { - System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); - } catch (NoAlbumFoundException ex) { - System.out.println("No album found with the requested title " + ex.getMessage()); - } - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'd': - //songs of an album - System.out.println("Songs of an album will be displayed; enter the album name, available albums are:"); - System.out.println(theHub.getAlbumsTitlesSortedByDate()); - - albumTitle = scan.nextLine(); - try { - System.out.println(theHub.getAlbumSongs(albumTitle)); - } catch (NoAlbumFoundException ex) { - System.out.println("No album found with the requested title " + ex.getMessage()); - } - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'u': - //audiobooks ordered by author - System.out.println(theHub.getAudiobooksTitlesSortedByAuthor()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'c': - // add a new song - System.out.println("Enter a new song: "); - System.out.println("Song title: "); - String title = scan.nextLine(); - System.out.println("Song genre (jazz, classic, hiphop, rock, pop, rap):"); - String genre = scan.nextLine(); - System.out.println("Song artist: "); - String artist = scan.nextLine(); - System.out.println("Song length in seconds: "); - int length = Integer.parseInt(scan.nextLine()); - System.out.println("Song content: "); - String content = scan.nextLine(); - Song s = new Song(title, artist, length, content, genre); - theHub.addElement(s); - System.out.println("New element list: "); - Iterator it = theHub.elements(); - while (it.hasNext()) System.out.println(it.next().getTitle()); - System.out.println("Song created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'a': - // add a new album - System.out.println("Enter a new album: "); - System.out.println("Album title: "); - String aTitle = scan.nextLine(); - System.out.println("Album artist: "); - String aArtist = scan.nextLine(); - System.out.println("Album length in seconds: "); - int aLength = Integer.parseInt(scan.nextLine()); - System.out.println("Album date as YYYY-DD-MM: "); - String aDate = scan.nextLine(); - Album a = new Album(aTitle, aArtist, aLength, aDate); - theHub.addAlbum(a); - System.out.println("New list of albums: "); - Iterator ita = theHub.albums(); - while (ita.hasNext()) System.out.println(ita.next().getTitle()); - System.out.println("Album created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case '+': - //add a song to an album: - System.out.println("Add an existing song to an existing album"); - System.out.println("Type the name of the song you wish to add. Available songs: "); - Iterator itae = theHub.elements(); - while (itae.hasNext()) { - AudioElement ae = itae.next(); - if (ae instanceof Song) System.out.println(ae.getTitle()); - } - String songTitle = scan.nextLine(); - - System.out.println("Type the name of the album you wish to enrich. Available albums: "); - Iterator ait = theHub.albums(); - while (ait.hasNext()) { - Album al = ait.next(); - System.out.println(al.getTitle()); - } - String titleAlbum = scan.nextLine(); - try { - theHub.addElementToAlbum(songTitle, titleAlbum); - } catch (NoAlbumFoundException | NoElementFoundException ex) { - System.out.println(ex.getMessage()); - } - System.out.println("Song added to the album!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'l': - // add a new audiobook - System.out.println("Enter a new audiobook: "); - System.out.println("AudioBook title: "); - String bTitle = scan.nextLine(); - System.out.println("AudioBook category (youth, novel, theater, documentary, speech)"); - String bCategory = scan.nextLine(); - System.out.println("AudioBook artist: "); - String bArtist = scan.nextLine(); - System.out.println("AudioBook length in seconds: "); - int bLength = Integer.parseInt(scan.nextLine()); - System.out.println("AudioBook content: "); - String bContent = scan.nextLine(); - System.out.println("AudioBook language (french, english, italian, spanish, german)"); - String bLanguage = scan.nextLine(); - AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory); - theHub.addElement(b); - System.out.println("Audiobook created! New element list: "); - Iterator itl = theHub.elements(); - while (itl.hasNext()) System.out.println(itl.next().getTitle()); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 'p': - //create a new playlist from existing elements - System.out.println("Add an existing song or audiobook to a new playlist"); - System.out.println("Existing playlists:"); - Iterator itpl = theHub.playlists(); - while (itpl.hasNext()) { - PlayList pl = itpl.next(); - System.out.println(pl.getTitle()); - } - System.out.println("Type the name of the playlist you wish to create:"); - String playListTitle = scan.nextLine(); - PlayList pl = new PlayList(playListTitle); - theHub.addPlaylist(pl); - System.out.println("Available elements: "); - - Iterator itael = theHub.elements(); - while (itael.hasNext()) { - AudioElement ae = itael.next(); - System.out.println(ae.getTitle()); - } - while (choice.charAt(0) != 'n') { - System.out.println("Type the name of the audio element you wish to add or 'n' to exit:"); - String elementTitle = scan.nextLine(); - try { - theHub.addElementToPlayList(elementTitle, playListTitle); - } catch (NoPlayListFoundException | NoElementFoundException ex) { - System.out.println(ex.getMessage()); - } - - System.out.println("Type y to add a new one, n to end"); - choice = scan.nextLine(); - } - System.out.println("Playlist created!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case '-': - //delete a playlist - System.out.println("Delete an existing playlist. Available playlists:"); - Iterator itp = theHub.playlists(); - while (itp.hasNext()) { - PlayList p = itp.next(); - System.out.println(p.getTitle()); - } - String plTitle = scan.nextLine(); - try { - theHub.deletePlayList(plTitle); - } catch (NoPlayListFoundException ex) { - System.out.println(ex.getMessage()); - } - System.out.println("Playlist deleted!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - case 's': - //save elements, albums, playlists - theHub.saveElements(); - theHub.saveAlbums(); - theHub.savePlayLists(); - System.out.println("Elements, albums and playlists saved!"); - printAvailableCommands(); - choice = scan.nextLine(); - break; - default: - - break; - } - } - scan.close(); - } - - private static void printAvailableCommands() { - System.out.println("t: display the album titles, ordered by date"); - System.out.println("g: display songs of an album, ordered by genre"); - System.out.println("d: display songs of an album"); - System.out.println("u: display audiobooks ordered by author"); - System.out.println("c: add a new song"); - System.out.println("a: add a new album"); - System.out.println("+: add a song to an album"); - System.out.println("l: add a new audiobook"); - System.out.println("p: create a new playlist from existing songs and audio books"); - System.out.println("-: delete an existing playlist"); - System.out.println("s: save elements, albums, playlists"); - System.out.println("q: quit program"); - } -} \ No newline at end of file diff --git a/src/musichub/util/XMLHandler.java b/src/musichub/util/XMLHandler.java deleted file mode 100644 index 4b61842..0000000 --- a/src/musichub/util/XMLHandler.java +++ /dev/null @@ -1,74 +0,0 @@ -package musichub.util; - -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NodeList; -import org.xml.sax.SAXException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; -import java.io.File; -import java.io.IOException; - - -public class XMLHandler { - TransformerFactory transformerFactory; - Transformer transformer; - DocumentBuilderFactory documentFactory; - DocumentBuilder documentBuilder; - - public XMLHandler() { - try { - transformerFactory = TransformerFactory.newInstance(); - transformer = transformerFactory.newTransformer(); - documentFactory = DocumentBuilderFactory.newInstance(); - documentBuilder = documentFactory.newDocumentBuilder(); - } catch (TransformerException | ParserConfigurationException tfe) { - tfe.printStackTrace(); - } - } - - public void createXMLFile(Document document, String filePath) { - try { - // create the xml file - //transform the DOM Object to an XML File - DOMSource domSource = new DOMSource(document); - StreamResult streamResult = new StreamResult(new File(filePath)); - - // If you use - // StreamResult result = new StreamResult(System.out); - // the output will be pushed to the standard output ... - // You can use that for debugging - - transformer.transform(domSource, streamResult); - - } catch (TransformerException tfe) { - tfe.printStackTrace(); - } - } - - public Document createXMLDocument() { - return documentBuilder.newDocument(); - } - - public NodeList parseXMLFile(String filePath) { - NodeList elementNodes = null; - try { - Document document = documentBuilder.parse(new File(filePath)); - Element root = document.getDocumentElement(); - - elementNodes = root.getChildNodes(); - } catch (SAXException | IOException e) { - e.printStackTrace(); - } - return elementNodes; - } - - -} \ No newline at end of file diff --git a/target/classes/musichub/business/Album.class b/target/classes/musichub/business/Album.class new file mode 100644 index 0000000..c08b1be Binary files /dev/null and b/target/classes/musichub/business/Album.class differ diff --git a/target/classes/musichub/business/AudioBook.class b/target/classes/musichub/business/AudioBook.class new file mode 100644 index 0000000..3ad965d Binary files /dev/null and b/target/classes/musichub/business/AudioBook.class differ diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class new file mode 100644 index 0000000..ab20d50 Binary files /dev/null and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/Category.class b/target/classes/musichub/business/Category.class new file mode 100644 index 0000000..51a68d1 Binary files /dev/null and b/target/classes/musichub/business/Category.class differ diff --git a/target/classes/musichub/business/Genre.class b/target/classes/musichub/business/Genre.class new file mode 100644 index 0000000..66a7d69 Binary files /dev/null and b/target/classes/musichub/business/Genre.class differ diff --git a/target/classes/musichub/business/Language.class b/target/classes/musichub/business/Language.class new file mode 100644 index 0000000..31b17c2 Binary files /dev/null and b/target/classes/musichub/business/Language.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class new file mode 100644 index 0000000..e1a0961 Binary files /dev/null and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/NoAlbumFoundException.class b/target/classes/musichub/business/NoAlbumFoundException.class new file mode 100644 index 0000000..03aff87 Binary files /dev/null and b/target/classes/musichub/business/NoAlbumFoundException.class differ diff --git a/target/classes/musichub/business/NoElementFoundException.class b/target/classes/musichub/business/NoElementFoundException.class new file mode 100644 index 0000000..6ba1c87 Binary files /dev/null and b/target/classes/musichub/business/NoElementFoundException.class differ diff --git a/target/classes/musichub/business/NoPlayListFoundException.class b/target/classes/musichub/business/NoPlayListFoundException.class new file mode 100644 index 0000000..54319de Binary files /dev/null and b/target/classes/musichub/business/NoPlayListFoundException.class differ diff --git a/target/classes/musichub/business/PlayList.class b/target/classes/musichub/business/PlayList.class new file mode 100644 index 0000000..ea68021 Binary files /dev/null and b/target/classes/musichub/business/PlayList.class differ diff --git a/target/classes/musichub/business/Song.class b/target/classes/musichub/business/Song.class new file mode 100644 index 0000000..c3bdeb7 Binary files /dev/null and b/target/classes/musichub/business/Song.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class new file mode 100644 index 0000000..fb8ee7a Binary files /dev/null and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class new file mode 100644 index 0000000..c52e870 Binary files /dev/null and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class new file mode 100644 index 0000000..2016012 Binary files /dev/null and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class new file mode 100644 index 0000000..06c19ac Binary files /dev/null and b/target/classes/musichub/main/Main.class differ diff --git a/target/classes/musichub/util/XMLHandler.class b/target/classes/musichub/util/XMLHandler.class new file mode 100644 index 0000000..4ab0064 Binary files /dev/null and b/target/classes/musichub/util/XMLHandler.class differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 24b2415..2665c29 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 10:59:45 CEST 2021 +#Sat Jun 26 12:33:30 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt new file mode 100644 index 0000000..4368553 --- /dev/null +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -0,0 +1,64 @@ +@options +@argfile +-classpath +'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar' +-encoding +'Cp1252' +-protected +--release +16 +-sourcepath +'C:/Users/SoftA/Documents/spoteezer/src/main/java' +-author +-bottom +'Copyright © 2021. All rights reserved.' +-charset +'UTF-8' +-d +'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs' +-docencoding +'UTF-8' +-doctitle +'spoteezer 0.1.0 API' +-use +-version +-windowtitle +'spoteezer 0.1.0 API' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java' +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799 +C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785 +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624701235404 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624703620814 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624703620816 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624703620727 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624703620841 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624703620837 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624703620798 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624703620864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624703620820 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624703620817 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624703620839 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624703620795 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624703620818 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624703620845 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624703620848 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624703620749 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624703620844 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624703620821 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624703620819 \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 0000000..a388223 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,17 @@ +musichub\util\XMLHandler.class +musichub\business\NoElementFoundException.class +musichub\business\Language.class +musichub\business\PlayList.class +musichub\main\Main.class +musichub\business\Album.class +musichub\business\SortByDate.class +musichub\business\AudioElement.class +musichub\business\SortByAuthor.class +musichub\business\NoAlbumFoundException.class +musichub\business\AudioBook.class +musichub\business\Song.class +musichub\business\Genre.class +musichub\business\NoPlayListFoundException.class +musichub\business\Category.class +musichub\business\MusicHub.class +musichub\business\SortByGenre.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 0000000..5354743 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,14 @@ +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Genre.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Song.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PlayList.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\main\Main.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioBook.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoElementFoundException.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\XMLHandler.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 0000000..e69de29 diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 3850ad4..1acfbb8 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html new file mode 100644 index 0000000..cf6d8b7 --- /dev/null +++ b/target/site/apidocs/allclasses-index.html @@ -0,0 +1,106 @@ + + + + + +All Classes (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes

+
+
+
+
+
+
Class
+
Description
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html new file mode 100644 index 0000000..28ab802 --- /dev/null +++ b/target/site/apidocs/allpackages-index.html @@ -0,0 +1,76 @@ + + + + + +All Packages (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

All Packages

+
+
Package Summary
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/element-list b/target/site/apidocs/element-list new file mode 100644 index 0000000..87e8cdc --- /dev/null +++ b/target/site/apidocs/element-list @@ -0,0 +1,3 @@ +musichub.business +musichub.main +musichub.util diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html new file mode 100644 index 0000000..678cc80 --- /dev/null +++ b/target/site/apidocs/help-doc.html @@ -0,0 +1,162 @@ + + + + + +API Help (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+

Overview

+

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+
+
+

Package

+

Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:

+
    +
  • Interfaces
  • +
  • Classes
  • +
  • Enum Classes
  • +
  • Exceptions
  • +
  • Errors
  • +
  • Annotation Interfaces
  • +
+
+
+

Class or Interface

+

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

+
    +
  • Class Inheritance Diagram
  • +
  • Direct Subclasses
  • +
  • All Known Subinterfaces
  • +
  • All Known Implementing Classes
  • +
  • Class or Interface Declaration
  • +
  • Class or Interface Description
  • +
+
+
    +
  • Nested Class Summary
  • +
  • Field Summary
  • +
  • Property Summary
  • +
  • Constructor Summary
  • +
  • Method Summary
  • +
+
+
    +
  • Field Details
  • +
  • Property Details
  • +
  • Constructor Details
  • +
  • Method Details
  • +
+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Annotation Interface

+

Each annotation interface has its own separate page with the following sections:

+
    +
  • Annotation Interface Declaration
  • +
  • Annotation Interface Description
  • +
  • Required Element Summary
  • +
  • Optional Element Summary
  • +
  • Element Details
  • +
+
+
+

Enum Class

+

Each enum class has its own separate page with the following sections:

+
    +
  • Enum Declaration
  • +
  • Enum Description
  • +
  • Enum Constant Summary
  • +
  • Enum Constant Details
  • +
+
+
+

Use

+

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

+
+
+

Tree (Class Hierarchy)

+

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

+
    +
  • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
  • +
  • When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.
  • +
+
+
+

Index

+

The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.

+
+
+

Serialized Form

+

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

+
+
+

Search

+

You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:

+
    +
  • j.l.obj will match "java.lang.Object"
  • +
  • InpStr will match "java.io.InputStream"
  • +
  • HM.cK will match "java.util.HashMap.containsKey(Object)"
  • +
+

Refer to the Javadoc Search Specification for a full description of search features.

+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html new file mode 100644 index 0000000..4260fa8 --- /dev/null +++ b/target/site/apidocs/index-all.html @@ -0,0 +1,375 @@ + + + + + +Index (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A C D E F G H I J L M N P R S T U V X Y 
All Classes|All Packages|Serialized Form +

A

+
+
addAlbum(Album) - Method in class musichub.business.MusicHub
+
 
+
addElement(UUID) - Method in class musichub.business.PlayList
+
 
+
addElement(AudioElement) - Method in class musichub.business.MusicHub
+
 
+
addElementToAlbum(String, String) - Method in class musichub.business.MusicHub
+
 
+
addElementToPlayList(String, String) - Method in class musichub.business.MusicHub
+
 
+
addPlaylist(PlayList) - Method in class musichub.business.MusicHub
+
 
+
addSong(UUID) - Method in class musichub.business.Album
+
 
+
Album - Class in musichub.business
+
 
+
Album(String, String, int, String) - Constructor for class musichub.business.Album
+
 
+
Album(String, String, int, String, String, ArrayList<UUID>) - Constructor for class musichub.business.Album
+
 
+
Album(Element) - Constructor for class musichub.business.Album
+
 
+
albums() - Method in class musichub.business.MusicHub
+
 
+
ALBUMS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
artist - Variable in class musichub.business.AudioElement
+
 
+
AudioBook - Class in musichub.business
+
 
+
AudioBook(String, String, int, String, String, String) - Constructor for class musichub.business.AudioBook
+
 
+
AudioBook(String, String, int, String, String, String, String) - Constructor for class musichub.business.AudioBook
+
 
+
AudioBook(Element) - Constructor for class musichub.business.AudioBook
+
 
+
AudioElement - Class in musichub.business
+
 
+
AudioElement(String, String, int, String) - Constructor for class musichub.business.AudioElement
+
 
+
AudioElement(String, String, int, String, String) - Constructor for class musichub.business.AudioElement
+
 
+
AudioElement(Element) - Constructor for class musichub.business.AudioElement
+
 
+
+

C

+
+
Category - Enum Class in musichub.business
+
 
+
CLASSIC - Enum constant in enum class musichub.business.Genre
+
 
+
content - Variable in class musichub.business.AudioElement
+
 
+
createXMLDocument() - Method in class musichub.util.XMLHandler
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.Album
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.AudioBook
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.AudioElement
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.PlayList
+
 
+
createXMLElement(Document, Element) - Method in class musichub.business.Song
+
 
+
createXMLFile(Document, String) - Method in class musichub.util.XMLHandler
+
 
+
+

D

+
+
deletePlayList(String) - Method in class musichub.business.MusicHub
+
 
+
DIR - Static variable in class musichub.business.MusicHub
+
 
+
DOCUMENTARY - Enum constant in enum class musichub.business.Category
+
 
+
+

E

+
+
elements() - Method in class musichub.business.MusicHub
+
 
+
ELEMENTS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
ENGLISH - Enum constant in enum class musichub.business.Language
+
 
+
+

F

+
+
FRENCH - Enum constant in enum class musichub.business.Language
+
 
+
+

G

+
+
Genre - Enum Class in musichub.business
+
 
+
GERMAN - Enum constant in enum class musichub.business.Language
+
 
+
getAlbumSongs(String) - Method in class musichub.business.MusicHub
+
 
+
getAlbumSongsSortedByGenre(String) - Method in class musichub.business.MusicHub
+
 
+
getAlbumsTitlesSortedByDate() - Method in class musichub.business.MusicHub
+
 
+
getArtist() - Method in class musichub.business.AudioElement
+
 
+
getAudiobooksTitlesSortedByAuthor() - Method in class musichub.business.MusicHub
+
 
+
getCategory() - Method in class musichub.business.AudioBook
+
 
+
getCategory() - Method in enum class musichub.business.Category
+
 
+
getDate() - Method in class musichub.business.Album
+
 
+
getElements() - Method in class musichub.business.PlayList
+
 
+
getGenre() - Method in enum class musichub.business.Genre
+
 
+
getGenre() - Method in class musichub.business.Song
+
 
+
getLanguage() - Method in class musichub.business.AudioBook
+
 
+
getLanguage() - Method in enum class musichub.business.Language
+
 
+
getSongs() - Method in class musichub.business.Album
+
 
+
getSongsRandomly() - Method in class musichub.business.Album
+
 
+
getTitle() - Method in class musichub.business.Album
+
 
+
getTitle() - Method in class musichub.business.AudioElement
+
 
+
getTitle() - Method in class musichub.business.PlayList
+
 
+
getUUID() - Method in class musichub.business.AudioElement
+
 
+
+

H

+
+
HIPHOP - Enum constant in enum class musichub.business.Genre
+
 
+
+

I

+
+
ITALIAN - Enum constant in enum class musichub.business.Language
+
 
+
+

J

+
+
JAZZ - Enum constant in enum class musichub.business.Genre
+
 
+
+

L

+
+
Language - Enum Class in musichub.business
+
 
+
lengthInSeconds - Variable in class musichub.business.AudioElement
+
 
+
+

M

+
+
main(String[]) - Static method in class musichub.main.Main
+
 
+
Main - Class in musichub.main
+
 
+
Main() - Constructor for class musichub.main.Main
+
 
+
MusicHub - Class in musichub.business
+
 
+
MusicHub() - Constructor for class musichub.business.MusicHub
+
 
+
musichub.business - package musichub.business
+
 
+
musichub.main - package musichub.main
+
 
+
musichub.util - package musichub.util
+
 
+
+

N

+
+
NoAlbumFoundException - Exception in musichub.business
+
 
+
NoAlbumFoundException(String) - Constructor for exception musichub.business.NoAlbumFoundException
+
 
+
NoElementFoundException - Exception in musichub.business
+
 
+
NoElementFoundException(String) - Constructor for exception musichub.business.NoElementFoundException
+
 
+
NoPlayListFoundException - Exception in musichub.business
+
 
+
NoPlayListFoundException(String) - Constructor for exception musichub.business.NoPlayListFoundException
+
 
+
NOVEL - Enum constant in enum class musichub.business.Category
+
 
+
+

P

+
+
parseXMLFile(String) - Method in class musichub.util.XMLHandler
+
 
+
PlayList - Class in musichub.business
+
 
+
PlayList(String) - Constructor for class musichub.business.PlayList
+
 
+
PlayList(String, String, ArrayList<UUID>) - Constructor for class musichub.business.PlayList
+
 
+
PlayList(Element) - Constructor for class musichub.business.PlayList
+
 
+
playlists() - Method in class musichub.business.MusicHub
+
 
+
PLAYLISTS_FILE_PATH - Static variable in class musichub.business.MusicHub
+
 
+
POP - Enum constant in enum class musichub.business.Genre
+
 
+
+

R

+
+
RAP - Enum constant in enum class musichub.business.Genre
+
 
+
ROCK - Enum constant in enum class musichub.business.Genre
+
 
+
+

S

+
+
saveAlbums() - Method in class musichub.business.MusicHub
+
 
+
saveElements() - Method in class musichub.business.MusicHub
+
 
+
savePlayLists() - Method in class musichub.business.MusicHub
+
 
+
setCategory(String) - Method in class musichub.business.AudioBook
+
 
+
setGenre(String) - Method in class musichub.business.Song
+
 
+
setLanguage(String) - Method in class musichub.business.AudioBook
+
 
+
Song - Class in musichub.business
+
 
+
Song(String, String, int, String, String) - Constructor for class musichub.business.Song
+
 
+
Song(String, String, int, String, String, String) - Constructor for class musichub.business.Song
+
 
+
Song(Element) - Constructor for class musichub.business.Song
+
 
+
SPANISH - Enum constant in enum class musichub.business.Language
+
 
+
SPEECH - Enum constant in enum class musichub.business.Category
+
 
+
+

T

+
+
THEATER - Enum constant in enum class musichub.business.Category
+
 
+
title - Variable in class musichub.business.AudioElement
+
 
+
toString() - Method in class musichub.business.AudioBook
+
 
+
toString() - Method in class musichub.business.AudioElement
+
 
+
toString() - Method in class musichub.business.Song
+
 
+
+

U

+
+
uuid - Variable in class musichub.business.AudioElement
+
 
+
+

V

+
+
valueOf(String) - Static method in enum class musichub.business.Category
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class musichub.business.Genre
+
+
Returns the enum constant of this class with the specified name.
+
+
valueOf(String) - Static method in enum class musichub.business.Language
+
+
Returns the enum constant of this class with the specified name.
+
+
values() - Static method in enum class musichub.business.Category
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class musichub.business.Genre
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
values() - Static method in enum class musichub.business.Language
+
+
Returns an array containing the constants of this enum class, in +the order they are declared.
+
+
+

X

+
+
XMLHandler - Class in musichub.util
+
 
+
XMLHandler() - Constructor for class musichub.util.XMLHandler
+
 
+
+

Y

+
+
YOUTH - Enum constant in enum class musichub.business.Category
+
 
+
+A C D E F G H I J L M N P R S T U V X Y 
All Classes|All Packages|Serialized Form
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html new file mode 100644 index 0000000..62084d5 --- /dev/null +++ b/target/site/apidocs/index.html @@ -0,0 +1,78 @@ + + + + + +Overview (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

spoteezer 0.1.0 API

+
+
+
Packages
+
+
Package
+
Description
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/jquery-ui.overrides.css b/target/site/apidocs/jquery-ui.overrides.css new file mode 100644 index 0000000..f89acb6 --- /dev/null +++ b/target/site/apidocs/jquery-ui.overrides.css @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; +} diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js new file mode 100644 index 0000000..d356ad0 --- /dev/null +++ b/target/site/apidocs/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/module-search-index.js b/target/site/apidocs/module-search-index.js new file mode 100644 index 0000000..0d59754 --- /dev/null +++ b/target/site/apidocs/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html new file mode 100644 index 0000000..4c8007c --- /dev/null +++ b/target/site/apidocs/musichub/business/Album.html @@ -0,0 +1,250 @@ + + + + + +Album (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Album

+
+
java.lang.Object +
musichub.business.Album
+
+
+
+
public class Album +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addSong

      +
      public void addSong(UUID song)
      +
      +
    • +
    • +
      +

      getSongs

      +
      public List<UUID> getSongs()
      +
      +
    • +
    • +
      +

      getSongsRandomly

      +
      public ArrayList<UUID> getSongsRandomly()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      getDate

      +
      public Date getDate()
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html new file mode 100644 index 0000000..cb3aae7 --- /dev/null +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -0,0 +1,273 @@ + + + + + +AudioBook (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AudioBook

+
+
java.lang.Object +
musichub.business.AudioElement +
musichub.business.AudioBook
+
+
+
+
+
public class AudioBook +extends AudioElement
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AudioBook

      +
      public AudioBook(String title, + String artist, + int lengthInSeconds, + String uid, + String content, + String language, + String category)
      +
      +
    • +
    • +
      +

      AudioBook

      +
      public AudioBook(String title, + String artist, + int lengthInSeconds, + String content, + String language, + String category)
      +
      +
    • +
    • +
      +

      AudioBook

      +
      public AudioBook(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getLanguage

      +
      public Language getLanguage()
      +
      +
    • +
    • +
      +

      setLanguage

      +
      public void setLanguage(String language)
      +
      +
    • +
    • +
      +

      getCategory

      +
      public Category getCategory()
      +
      +
    • +
    • +
      +

      setCategory

      +
      public void setCategory(String category)
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      +
      Overrides:
      +
      toString in class AudioElement
      +
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
      Overrides:
      +
      createXMLElement in class AudioElement
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html new file mode 100644 index 0000000..3679f49 --- /dev/null +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -0,0 +1,307 @@ + + + + + +AudioElement (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class AudioElement

+
+
java.lang.Object +
musichub.business.AudioElement
+
+
+
+
Direct Known Subclasses:
+
AudioBook, Song
+
+
+
public abstract class AudioElement +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      title

      +
      protected String title
      +
      +
    • +
    • +
      +

      artist

      +
      protected String artist
      +
      +
    • +
    • +
      +

      lengthInSeconds

      +
      protected int lengthInSeconds
      +
      +
    • +
    • +
      +

      uuid

      +
      protected UUID uuid
      +
      +
    • +
    • +
      +

      content

      +
      protected String content
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      AudioElement

      +
      public AudioElement(String title, + String artist, + int lengthInSeconds, + String id, + String content)
      +
      +
    • +
    • +
      +

      AudioElement

      +
      public AudioElement(String title, + String artist, + int lengthInSeconds, + String content)
      +
      +
    • +
    • +
      +

      AudioElement

      +
      public AudioElement(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getUUID

      +
      public UUID getUUID()
      +
      +
    • +
    • +
      +

      getArtist

      +
      public String getArtist()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      toString

      +
      public String toString()
      +
      +
      Overrides:
      +
      toString in class Object
      +
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html new file mode 100644 index 0000000..7a26b6d --- /dev/null +++ b/target/site/apidocs/musichub/business/Category.html @@ -0,0 +1,258 @@ + + + + + +Category (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Category

+
+
java.lang.Object +
java.lang.Enum<Category> +
musichub.business.Category
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Category>, Constable
+
+
+
public enum Category +extends Enum<Category>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      YOUTH

      +
      public static final Category YOUTH
      +
      +
    • +
    • +
      +

      NOVEL

      +
      public static final Category NOVEL
      +
      +
    • +
    • +
      +

      THEATER

      +
      public static final Category THEATER
      +
      +
    • +
    • +
      +

      DOCUMENTARY

      +
      public static final Category DOCUMENTARY
      +
      +
    • +
    • +
      +

      SPEECH

      +
      public static final Category SPEECH
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Category[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Category valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getCategory

      +
      public String getCategory()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html new file mode 100644 index 0000000..eac735c --- /dev/null +++ b/target/site/apidocs/musichub/business/Genre.html @@ -0,0 +1,266 @@ + + + + + +Genre (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Genre

+
+
java.lang.Object +
java.lang.Enum<Genre> +
musichub.business.Genre
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Genre>, Constable
+
+
+
public enum Genre +extends Enum<Genre>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      JAZZ

      +
      public static final Genre JAZZ
      +
      +
    • +
    • +
      +

      CLASSIC

      +
      public static final Genre CLASSIC
      +
      +
    • +
    • +
      +

      HIPHOP

      +
      public static final Genre HIPHOP
      +
      +
    • +
    • +
      +

      ROCK

      +
      public static final Genre ROCK
      +
      +
    • +
    • +
      +

      POP

      +
      public static final Genre POP
      +
      +
    • +
    • +
      +

      RAP

      +
      public static final Genre RAP
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Genre[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Genre valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getGenre

      +
      public String getGenre()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html new file mode 100644 index 0000000..e220e63 --- /dev/null +++ b/target/site/apidocs/musichub/business/Language.html @@ -0,0 +1,258 @@ + + + + + +Language (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Enum Class Language

+
+
java.lang.Object +
java.lang.Enum<Language> +
musichub.business.Language
+
+
+
+
+
All Implemented Interfaces:
+
Serializable, Comparable<Language>, Constable
+
+
+
public enum Language +extends Enum<Language>
+
+
+ +
+
+
    + +
  • +
    +

    Enum Constant Details

    +
      +
    • +
      +

      FRENCH

      +
      public static final Language FRENCH
      +
      +
    • +
    • +
      +

      ENGLISH

      +
      public static final Language ENGLISH
      +
      +
    • +
    • +
      +

      ITALIAN

      +
      public static final Language ITALIAN
      +
      +
    • +
    • +
      +

      SPANISH

      +
      public static final Language SPANISH
      +
      +
    • +
    • +
      +

      GERMAN

      +
      public static final Language GERMAN
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      values

      +
      public static Language[] values()
      +
      Returns an array containing the constants of this enum class, in +the order they are declared.
      +
      +
      Returns:
      +
      an array containing the constants of this enum class, in the order they are declared
      +
      +
      +
    • +
    • +
      +

      valueOf

      +
      public static Language valueOf(String name)
      +
      Returns the enum constant of this class with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this class. (Extraneous whitespace characters are +not permitted.)
      +
      +
      Parameters:
      +
      name - the name of the enum constant to be returned.
      +
      Returns:
      +
      the enum constant with the specified name
      +
      Throws:
      +
      IllegalArgumentException - if this enum class has no constant with the specified name
      +
      NullPointerException - if the argument is null
      +
      +
      +
    • +
    • +
      +

      getLanguage

      +
      public String getLanguage()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html new file mode 100644 index 0000000..87380ec --- /dev/null +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -0,0 +1,390 @@ + + + + + +MusicHub (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class MusicHub

+
+
java.lang.Object +
musichub.business.MusicHub
+
+
+
+
public class MusicHub +extends Object
+
+
+ +
+
+ +
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html new file mode 100644 index 0000000..f906ae8 --- /dev/null +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoAlbumFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoAlbumFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoAlbumFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoAlbumFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoAlbumFoundException

      +
      public NoAlbumFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html new file mode 100644 index 0000000..a15f7a4 --- /dev/null +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoElementFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoElementFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoElementFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoElementFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoElementFoundException

      +
      public NoElementFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html new file mode 100644 index 0000000..65dfbeb --- /dev/null +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -0,0 +1,150 @@ + + + + + +NoPlayListFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class NoPlayListFoundException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
musichub.business.NoPlayListFoundException
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class NoPlayListFoundException +extends Exception
+
+
See Also:
+
Serialized Form
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      NoPlayListFoundException

      +
      public NoPlayListFoundException(String msg)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html new file mode 100644 index 0000000..5688387 --- /dev/null +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -0,0 +1,215 @@ + + + + + +PlayList (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PlayList

+
+
java.lang.Object +
musichub.business.PlayList
+
+
+
+
public class PlayList +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PlayList

      +
      public PlayList(String title, + String id, + ArrayList<UUID> elementUUIDs)
      +
      +
    • +
    • +
      +

      PlayList

      +
      public PlayList(String title)
      +
      +
    • +
    • +
      +

      PlayList

      +
      public PlayList(Element xmlElement)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      addElement

      +
      public void addElement(UUID element)
      +
      +
    • +
    • +
      +

      getElements

      +
      public ArrayList<UUID> getElements()
      +
      +
    • +
    • +
      +

      getTitle

      +
      public String getTitle()
      +
      +
    • +
    • +
      +

      createXMLElement

      +
      public void createXMLElement(Document document, + Element parentElement)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html new file mode 100644 index 0000000..cfbc99a --- /dev/null +++ b/target/site/apidocs/musichub/business/Song.html @@ -0,0 +1,251 @@ + + + + + +Song (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Song

+
+ +
+
+
public class Song +extends AudioElement
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    + +
    +
  • + +
  • +
    +

    Method Details

    + +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html new file mode 100644 index 0000000..98538f1 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -0,0 +1,99 @@ + + + + + +Uses of Class musichub.business.Album (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.Album

+
+
Packages that use Album
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html new file mode 100644 index 0000000..bd1fe37 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.AudioBook

+
+No usage of musichub.business.AudioBook
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html new file mode 100644 index 0000000..805e3cb --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -0,0 +1,114 @@ + + + + + +Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.AudioElement

+
+
Packages that use AudioElement
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html new file mode 100644 index 0000000..cb51f60 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -0,0 +1,101 @@ + + + + + +Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Category

+
+
Packages that use Category
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html new file mode 100644 index 0000000..224ace7 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -0,0 +1,98 @@ + + + + + +Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Genre

+
+
Packages that use Genre
+
+
Package
+
Description
+ +
 
+
+
+
    +
  • +
    +

    Uses of Genre in musichub.business

    +
    Methods in musichub.business that return Genre
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    static Genre
    +
    Genre.valueOf​(String name)
    +
    +
    Returns the enum constant of this class with the specified name.
    +
    +
    static Genre[]
    +
    Genre.values()
    +
    +
    Returns an array containing the constants of this enum class, in +the order they are declared.
    +
    +
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html new file mode 100644 index 0000000..c02b71d --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -0,0 +1,101 @@ + + + + + +Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Enum Class
musichub.business.Language

+
+
Packages that use Language
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html new file mode 100644 index 0000000..0c5288d --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.MusicHub

+
+No usage of musichub.business.MusicHub
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html new file mode 100644 index 0000000..69c1a6c --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -0,0 +1,97 @@ + + + + + +Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoAlbumFoundException

+
+
Packages that use NoAlbumFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html new file mode 100644 index 0000000..47178b8 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -0,0 +1,95 @@ + + + + + +Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoElementFoundException

+
+
Packages that use NoElementFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html new file mode 100644 index 0000000..0a7cd6f --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -0,0 +1,94 @@ + + + + + +Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.NoPlayListFoundException

+
+
Packages that use NoPlayListFoundException
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html new file mode 100644 index 0000000..39e18c2 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -0,0 +1,99 @@ + + + + + +Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.PlayList

+
+
Packages that use PlayList
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html new file mode 100644 index 0000000..1303885 --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -0,0 +1,90 @@ + + + + + +Uses of Class musichub.business.Song (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.business.Song

+
+
Packages that use Song
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html new file mode 100644 index 0000000..79ed6a4 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -0,0 +1,116 @@ + + + + + +musichub.business (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.business

+
+
+
package musichub.business
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html new file mode 100644 index 0000000..1a6bff9 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -0,0 +1,114 @@ + + + + + +musichub.business Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.business

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html new file mode 100644 index 0000000..a793731 --- /dev/null +++ b/target/site/apidocs/musichub/business/package-use.html @@ -0,0 +1,105 @@ + + + + + +Uses of Package musichub.business (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.business

+
+
Packages that use musichub.business
+
+
Package
+
Description
+ +
 
+
+
+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html new file mode 100644 index 0000000..3156088 --- /dev/null +++ b/target/site/apidocs/musichub/main/Main.html @@ -0,0 +1,166 @@ + + + + + +Main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+
Package musichub.main
+

Class Main

+
+
java.lang.Object +
musichub.main.Main
+
+
+
+
public class Main +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Main

      +
      public Main()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      main

      +
      public static void main(String[] args)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html new file mode 100644 index 0000000..2c0e0ad --- /dev/null +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.main.Main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.main.Main

+
+No usage of musichub.main.Main
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html new file mode 100644 index 0000000..316cd6d --- /dev/null +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -0,0 +1,80 @@ + + + + + +musichub.main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.main

+
+
+
package musichub.main
+
+
    +
  • +
    Class Summary
    +
    +
    Class
    +
    Description
    + +
     
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html new file mode 100644 index 0000000..57cd805 --- /dev/null +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -0,0 +1,79 @@ + + + + + +musichub.main Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.main

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html new file mode 100644 index 0000000..d98a9cf --- /dev/null +++ b/target/site/apidocs/musichub/main/package-use.html @@ -0,0 +1,65 @@ + + + + + +Uses of Package musichub.main (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.main

+
+No usage of musichub.main
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html new file mode 100644 index 0000000..fae13b3 --- /dev/null +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -0,0 +1,186 @@ + + + + + +XMLHandler (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+ +
+
Package musichub.util
+

Class XMLHandler

+
+
java.lang.Object +
musichub.util.XMLHandler
+
+
+
+
public class XMLHandler +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      XMLHandler

      +
      public XMLHandler()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      createXMLFile

      +
      public void createXMLFile(Document document, + String filePath)
      +
      +
    • +
    • +
      +

      createXMLDocument

      +
      public Document createXMLDocument()
      +
      +
    • +
    • +
      +

      parseXMLFile

      +
      public NodeList parseXMLFile(String filePath)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html new file mode 100644 index 0000000..86a8a19 --- /dev/null +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Class
musichub.util.XMLHandler

+
+No usage of musichub.util.XMLHandler
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html new file mode 100644 index 0000000..ba36654 --- /dev/null +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -0,0 +1,80 @@ + + + + + +musichub.util (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Package musichub.util

+
+
+
package musichub.util
+
+
    +
  • +
    Class Summary
    +
    +
    Class
    +
    Description
    + +
     
    +
    +
  • +
+
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html new file mode 100644 index 0000000..f2ad19b --- /dev/null +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -0,0 +1,79 @@ + + + + + +musichub.util Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package musichub.util

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html new file mode 100644 index 0000000..7a3d44d --- /dev/null +++ b/target/site/apidocs/musichub/util/package-use.html @@ -0,0 +1,65 @@ + + + + + +Uses of Package musichub.util (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Uses of Package
musichub.util

+
+No usage of musichub.util
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html new file mode 100644 index 0000000..33c47d8 --- /dev/null +++ b/target/site/apidocs/overview-summary.html @@ -0,0 +1,27 @@ + + + + + +spoteezer 0.1.0 API + + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html new file mode 100644 index 0000000..dbb2e21 --- /dev/null +++ b/target/site/apidocs/overview-tree.html @@ -0,0 +1,118 @@ + + + + + +Class Hierarchy (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+

Enum Class Hierarchy

+ +
+
+
+
+ +
+
+
+ + diff --git a/target/site/apidocs/package-search-index.js b/target/site/apidocs/package-search-index.js new file mode 100644 index 0000000..3098d0e --- /dev/null +++ b/target/site/apidocs/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"musichub.business"},{"l":"musichub.main"},{"l":"musichub.util"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/resources/glass.png b/target/site/apidocs/resources/glass.png new file mode 100644 index 0000000..a7f591f Binary files /dev/null and b/target/site/apidocs/resources/glass.png differ diff --git a/target/site/apidocs/resources/x.png b/target/site/apidocs/resources/x.png new file mode 100644 index 0000000..30548a7 Binary files /dev/null and b/target/site/apidocs/resources/x.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..34abd18 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png new file mode 100644 index 0000000..f058a93 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..2ce04c1 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..a90afb8 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..dbe091f Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..5dc3593 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..e723e17 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..1f5f497 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..618f5b0 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..ee5e33f Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png differ diff --git a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..7e8ebc1 Binary files /dev/null and b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png differ diff --git a/target/site/apidocs/script-dir/jquery-3.5.1.min.js b/target/site/apidocs/script-dir/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/target/site/apidocs/script-dir/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file diff --git a/target/site/apidocs/script-dir/jquery-ui.structure.min.css b/target/site/apidocs/script-dir/jquery-ui.structure.min.css new file mode 100644 index 0000000..e880892 --- /dev/null +++ b/target/site/apidocs/script-dir/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-12-06 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/target/site/apidocs/script.js b/target/site/apidocs/script.js new file mode 100644 index 0000000..864989c --- /dev/null +++ b/target/site/apidocs/script.js @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} + +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/target/site/apidocs/search.js b/target/site/apidocs/search.js new file mode 100644 index 0000000..2c2ced0 --- /dev/null +++ b/target/site/apidocs/search.js @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; +var RANKING_THRESHOLD = 2; +var NO_MATCH = 0xffff; +var MIN_RESULTS = 3; +var MAX_RESULTS = 500; +var UNNAMED = ""; +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(item, matcher, fallbackMatcher) { + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; +} +function getURLPrefix(ui) { + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); + } + } + return urlPrefix; +} +function createSearchPattern(term) { + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } + } + }); + return pattern; +} +function createMatcher(pattern, flags) { + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); +} +var watermark = 'Search'; +$(function() { + var search = $("#search"); + var reset = $("#reset"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + item.category + "
    • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
      " + + item.d + "
      "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; + } +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + +} +function doSearch(request, response) { + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); + + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); + } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } + } + + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); + } + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search").focus(); + } + } + }); +}); diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html new file mode 100644 index 0000000..a693241 --- /dev/null +++ b/target/site/apidocs/serialized-form.html @@ -0,0 +1,89 @@ + + + + + +Serialized Form (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Serialized Form

      +
      + +
      +
      +
      + +
      +
      +
      + + diff --git a/target/site/apidocs/stylesheet.css b/target/site/apidocs/stylesheet.css new file mode 100644 index 0000000..932e56c --- /dev/null +++ b/target/site/apidocs/stylesheet.css @@ -0,0 +1,827 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +.summary-table dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0; + overflow:hidden; +} +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +@media screen { + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.sub-nav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.sub-nav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list { + padding-top:5px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; +} +.nav-list-search label { + position:relative; + right:-16px; +} +ul.sub-nav-list li { + list-style:none; + float:left; + padding-top:10px; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.nav-bar-cell1-rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header and footer. + */ +.title { + color:#2c4557; + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +dl.notes > dd { + margin:5px 0 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +/* + * Styles for tables. + */ +.summary-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.summary-table { + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; +} +.caption a:hover, +.caption a:active { + color:#FFFFFF; +} +.caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} + +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; +} +div.table-tabs > button.active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +@media screen and (max-width: 800px) { + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:#dee3e9; + font-weight: bold; +} +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; +} +.table-sub-heading-color { + background-color:#EEEEFF; +} +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; +} +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.deprecated-content { + margin:0; + padding:10px 0; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .interface-name { + font-style:italic; +} +.deprecation-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment, div.block div.block span.emphasized-phrase, +div.block div.block span.interface-name { + font-style:normal; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.result-item { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.result-highlight { + font-weight:bold; +} +#search { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; +} +#reset { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:yellow; +} +.module-graph span { + display:none; + position:absolute; +} +.module-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak font sizes and paddings for small screens. + */ +@media screen and (max-width: 1050px) { + #search { + width: 300px; + } +} +@media screen and (max-width: 800px) { + #search { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 500px) { + #search { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } +} diff --git a/target/site/apidocs/tag-search-index.js b/target/site/apidocs/tag-search-index.js new file mode 100644 index 0000000..f38b3cb --- /dev/null +++ b/target/site/apidocs/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js new file mode 100644 index 0000000..2401962 --- /dev/null +++ b/target/site/apidocs/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 99be000..2c80e1b 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 443140cfbde040afd3f1b279c77e2b8d61765c85 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 12:57:09 +0200 Subject: Update --- dependency-reduced-pom.xml | 38 ++++++++++----------- target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 38 ++++++++++----------- target/original-spoteezer-0.1.0.jar | Bin 29836 -> 29836 bytes target/site/apidocs/allclasses-index.html | 2 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 2 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 2 +- .../apidocs/musichub/business/AudioElement.html | 2 +- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 2 +- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 2 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 2 +- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 2 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 2 +- .../apidocs/musichub/business/package-tree.html | 2 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 2 +- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 2 +- target/site/apidocs/serialized-form.html | 2 +- target/spoteezer-0.1.0.jar | Bin 365706 -> 365706 bytes 50 files changed, 84 insertions(+), 84 deletions(-) (limited to 'target/maven-archiver/pom.properties') diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml index 027738e..de729db 100644 --- a/dependency-reduced-pom.xml +++ b/dependency-reduced-pom.xml @@ -11,16 +11,16 @@ maven-shade-plugin 3.2.4 - - package - - shade - - - - - musichub.main.Main - + + package + + shade + + + + + musichub.main.Main + @@ -49,15 +49,15 @@ - - maven-compiler-plugin - - 16 - 16 - - - - + + maven-compiler-plugin + + 16 + 16 + + + + 16 16 diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 2665c29..93fc220 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 12:33:30 CEST 2021 +#Sat Jun 26 12:55:18 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index 4368553..106bfed 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -43,22 +43,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624701235404 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624703620814 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624703620816 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624703620727 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624703620841 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624703620837 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624703620798 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624703620864 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624703620820 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624703620817 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624703620839 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624703620795 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624703620818 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624703620845 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624703620848 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624703620749 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624703620844 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624703620821 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624703620819 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624704746958 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624704928892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624704928894 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624704928806 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624704928918 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624704928914 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624704928876 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624704928938 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624704928898 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624704928895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624704928916 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624704928873 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624704928896 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624704928921 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624704928924 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624704928827 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624704928920 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624704928899 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624704928897 \ No newline at end of file diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 1acfbb8..28e38bb 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index cf6d8b7..fb49088 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index 28ab802..9c043ad 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index 678cc80..e124b74 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index 4260fa8..f91c9b3 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 62084d5..7c966a1 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 4c8007c..3e67075 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index cb3aae7..48361da 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 3679f49..89abaab 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 7a26b6d..839a958 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index eac735c..0b854bf 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index e220e63..96488c5 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 87380ec..9c5266c 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index f906ae8..5a480c3 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index a15f7a4..704f5ce 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 65dfbeb..9d832fc 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index 5688387..80f0b18 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index cfbc99a..0a4f1fd 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index 98538f1..c7a6a88 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index bd1fe37..83d738a 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index 805e3cb..1a553bf 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index cb51f60..62d35c3 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index 224ace7..e87b8fb 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index c02b71d..cf13a0c 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 0c5288d..7ae64d9 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index 69c1a6c..165de5a 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index 47178b8..b26799b 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index 0a7cd6f..0ff787f 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index 39e18c2..f230f7f 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 1303885..9d1c95e 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index 79ed6a4..0df1343 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index 1a6bff9..8104cc3 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index a793731..a1cf6fb 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index 3156088..f0ef281 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 2c0e0ad..0af879d 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 316cd6d..4be4c16 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 57cd805..96aab23 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index d98a9cf..e22beef 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index fae13b3..4b8d7ba 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index 86a8a19..7435f8d 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index ba36654..b38851e 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index f2ad19b..c4625b5 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index 7a3d44d..471f563 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index 33c47d8..f15374c 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index dbb2e21..cecf679 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index a693241..d1ab954 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 2c80e1b..3f4d90b 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From 8e13dba6e1c39dd841d60fddc3c4060f9b4a4b85 Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 13:32:26 +0200 Subject: Removed reduced pom and added the content of STZ-0001 with a switch modif. --- Song/Side_To_Side.wav | Bin 0 -> 43422962 bytes dependency-reduced-pom.xml | 67 --------------------- files/albums.xml | 2 + files/elements.xml | 6 +- pom.xml | 1 + src/main/java/musichub/business/AudioElement.java | 34 +++++++++++ src/main/java/musichub/business/MusicHub.java | 12 ++++ src/main/java/musichub/business/Song.java | 2 + src/main/java/musichub/main/Main.java | 12 +++- .../classes/musichub/business/AudioElement.class | Bin 3752 -> 5392 bytes target/classes/musichub/business/MusicHub.class | Bin 11031 -> 11543 bytes .../classes/musichub/business/SortByAuthor.class | Bin 901 -> 901 bytes target/classes/musichub/business/SortByDate.class | Bin 854 -> 854 bytes target/classes/musichub/business/SortByGenre.class | Bin 858 -> 858 bytes target/classes/musichub/main/Main.class | Bin 9390 -> 9840 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 38 ++++++------ target/original-spoteezer-0.1.0.jar | Bin 29836 -> 31130 bytes target/site/apidocs/allclasses-index.html | 2 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 6 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/member-search-index.js | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 4 +- .../apidocs/musichub/business/AudioElement.html | 24 +++++++- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 36 ++++++++--- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 4 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 12 +++- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 6 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 2 +- .../apidocs/musichub/business/package-tree.html | 2 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 13 +++- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 2 +- target/site/apidocs/serialized-form.html | 2 +- target/spoteezer-0.1.0.jar | Bin 365706 -> 367000 bytes 65 files changed, 208 insertions(+), 149 deletions(-) create mode 100644 Song/Side_To_Side.wav delete mode 100644 dependency-reduced-pom.xml (limited to 'target/maven-archiver/pom.properties') diff --git a/Song/Side_To_Side.wav b/Song/Side_To_Side.wav new file mode 100644 index 0000000..3c874db Binary files /dev/null and b/Song/Side_To_Side.wav differ diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml deleted file mode 100644 index de729db..0000000 --- a/dependency-reduced-pom.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - 4.0.0 - esiea.softwareengineering - spoteezer - 0.1.0 - - - - maven-shade-plugin - 3.2.4 - - - package - - shade - - - - - musichub.main.Main - - - - - - - - maven-surefire-plugin - 2.22.0 - - - org.jacoco - jacoco-maven-plugin - 0.8.7 - - - - prepare-agent - - - - report - test - - report - - - - - - maven-compiler-plugin - - 16 - 16 - - - - - - 16 - 16 - 16 - 16 - - diff --git a/files/albums.xml b/files/albums.xml index edfd610..edb2a94 100644 --- a/files/albums.xml +++ b/files/albums.xml @@ -12,6 +12,7 @@ b2ee0ca0-b5e2-4bc9-8fed-7932fb145f2f bbe99998-1be6-4a40-8bf0-6a7fce9087c9 66d277ca-cbc4-471c-a07e-082363375bcc + 44136020-dc80-4522-9b71-2b9aad5e3039 @@ -22,6 +23,7 @@ 1978-01-23 44136020-dc80-4522-9b71-2b9aad5e3039 + 66d277ca-cbc4-471c-a07e-082363375bcc \ No newline at end of file diff --git a/files/elements.xml b/files/elements.xml index 7fefc5f..553f228 100644 --- a/files/elements.xml +++ b/files/elements.xml @@ -9,11 +9,11 @@ pop - I Want to Hold your Hand - The Beatles + Side To Side + Ariana Grande 186 66d277ca-cbc4-471c-a07e-082363375bcc - i_want_to_hold_your_hand.mp3 + Song/Side_To_Side.wav rock diff --git a/pom.xml b/pom.xml index 821c1b6..7ebddc1 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ shade + false diff --git a/src/main/java/musichub/business/AudioElement.java b/src/main/java/musichub/business/AudioElement.java index e0a686b..0a51c16 100644 --- a/src/main/java/musichub/business/AudioElement.java +++ b/src/main/java/musichub/business/AudioElement.java @@ -3,6 +3,10 @@ package musichub.business; import org.w3c.dom.Document; import org.w3c.dom.Element; +import javax.sound.sampled.*; +import java.io.File; +import java.io.IOException; +import java.util.Scanner; import java.util.UUID; public abstract class AudioElement { @@ -85,4 +89,34 @@ public abstract class AudioElement { } + public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException { + + Scanner scanner = new Scanner(System.in); + + File file = new File(this.content); + AudioInputStream audioStream = AudioSystem.getAudioInputStream(file); + Clip clip = AudioSystem.getClip(); + clip.open(audioStream); + + String action = ""; + + while (!action.equals("Q")) { + System.out.println("P = Play \b S = Stop \b R = Reset \b Q = Quit"); + System.out.println("Enter your choice"); + action = scanner.next(); + action = action.toUpperCase(); + + switch (action) { + case "S", "Q" -> clip.stop(); + case "P" -> clip.start(); + case "R" -> clip.setMicrosecondPosition(0); + default -> System.out.println("try again"); + } + System.out.println("You stopped the Audio element"); + } + + clip.close(); + + } + } \ No newline at end of file diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index 38e2214..f289f1a 100644 --- a/src/main/java/musichub/business/MusicHub.java +++ b/src/main/java/musichub/business/MusicHub.java @@ -6,6 +6,9 @@ import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.IOException; import java.util.*; class SortByDate implements Comparator { @@ -326,4 +329,13 @@ public class MusicHub { } xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH); } + + public void getAudioElement(List audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException { + for (AudioElement el : audios) { + if (el.getTitle().equalsIgnoreCase(elementTitle)) { + el.manageAudioElement(); + } + } + + } } \ No newline at end of file diff --git a/src/main/java/musichub/business/Song.java b/src/main/java/musichub/business/Song.java index 3e9011b..5d044a9 100644 --- a/src/main/java/musichub/business/Song.java +++ b/src/main/java/musichub/business/Song.java @@ -53,4 +53,6 @@ public class Song extends AudioElement { parentElement.appendChild(song); } + + } \ No newline at end of file diff --git a/src/main/java/musichub/main/Main.java b/src/main/java/musichub/main/Main.java index b72a95b..c820b5d 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -2,11 +2,15 @@ package musichub.main; import musichub.business.*; +import javax.sound.sampled.LineUnavailableException; +import javax.sound.sampled.UnsupportedAudioFileException; +import java.io.IOException; import java.util.Iterator; +import java.util.List; import java.util.Scanner; public class Main { - public static void main(String[] args) { + public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException { MusicHub theHub = new MusicHub(); @@ -41,7 +45,8 @@ public class Main { albumTitle = scan.nextLine(); try { - System.out.println(theHub.getAlbumSongsSortedByGenre(albumTitle)); + List songs = theHub.getAlbumSongsSortedByGenre(albumTitle); + System.out.println(songs); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } @@ -55,7 +60,10 @@ public class Main { albumTitle = scan.nextLine(); try { + List songs = theHub.getAlbumSongs(albumTitle); System.out.println(theHub.getAlbumSongs(albumTitle)); + String song = scan.nextLine(); + theHub.getAudioElement(songs, song); } catch (NoAlbumFoundException ex) { System.out.println("No album found with the requested title " + ex.getMessage()); } diff --git a/target/classes/musichub/business/AudioElement.class b/target/classes/musichub/business/AudioElement.class index ab20d50..3579513 100644 Binary files a/target/classes/musichub/business/AudioElement.class and b/target/classes/musichub/business/AudioElement.class differ diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class index e1a0961..8b8b280 100644 Binary files a/target/classes/musichub/business/MusicHub.class and b/target/classes/musichub/business/MusicHub.class differ diff --git a/target/classes/musichub/business/SortByAuthor.class b/target/classes/musichub/business/SortByAuthor.class index fb8ee7a..ac4474a 100644 Binary files a/target/classes/musichub/business/SortByAuthor.class and b/target/classes/musichub/business/SortByAuthor.class differ diff --git a/target/classes/musichub/business/SortByDate.class b/target/classes/musichub/business/SortByDate.class index c52e870..6892059 100644 Binary files a/target/classes/musichub/business/SortByDate.class and b/target/classes/musichub/business/SortByDate.class differ diff --git a/target/classes/musichub/business/SortByGenre.class b/target/classes/musichub/business/SortByGenre.class index 2016012..7cabb3e 100644 Binary files a/target/classes/musichub/business/SortByGenre.class and b/target/classes/musichub/business/SortByGenre.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index 06c19ac..1e19601 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 93fc220..1b408a6 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 12:55:18 CEST 2021 +#Sat Jun 26 13:25:26 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index 106bfed..c701b12 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -43,22 +43,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624704746958 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624704928892 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624704928894 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624704928806 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624704928918 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624704928914 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624704928876 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624704928938 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624704928898 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624704928895 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624704928916 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624704928873 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624704928896 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624704928921 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624704928924 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624704928827 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624704928920 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624704928899 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624704928897 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624705682872 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624706731862 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624706731864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624706731767 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624706731890 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624706731885 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624706731838 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624706731909 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624706731868 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624706731865 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624706731887 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624706731835 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624706731866 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624706731894 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624706731895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624706731788 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624706731892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624706731869 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624706731867 \ No newline at end of file diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index 28e38bb..b2c45cf 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index fb49088..83bf57c 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index 9c043ad..a9e8eb8 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index e124b74..a2e0731 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index f91c9b3..cd292d0 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) @@ -164,6 +164,8 @@ loadScripts(document, 'script');
       
      getAudiobooksTitlesSortedByAuthor() - Method in class musichub.business.MusicHub
       
      +
      getAudioElement(List<AudioElement>, String) - Method in class musichub.business.MusicHub
      +
       
      getCategory() - Method in class musichub.business.AudioBook
       
      getCategory() - Method in enum class musichub.business.Category
      @@ -223,6 +225,8 @@ loadScripts(document, 'script');
       
      Main() - Constructor for class musichub.main.Main
       
      +
      manageAudioElement() - Method in class musichub.business.AudioElement
      +
       
      MusicHub - Class in musichub.business
       
      MusicHub() - Constructor for class musichub.business.MusicHub
      diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 7c966a1..87cf0ec 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js index d356ad0..784449a 100644 --- a/target/site/apidocs/member-search-index.js +++ b/target/site/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 3e67075..8d24dd6 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index 48361da..0d8d9b5 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) @@ -159,7 +159,7 @@ loadScripts(document, 'script');

      Methods inherited from class musichub.business.AudioElement

      -getArtist, getTitle, getUUID
      +getArtist, getTitle, getUUID, manageAudioElement
    • Methods inherited from class java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
      diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 89abaab..493874c 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) @@ -164,9 +164,12 @@ loadScripts(document, 'script');
       
      - - +
      void
      +
       
      + + +
       
      @@ -290,6 +293,21 @@ loadScripts(document, 'script'); Element parentElement)
+
  • +
    +

    manageAudioElement

    +
    public void manageAudioElement() + throws UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
    +
    +
  • diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 839a958..7748822 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index 0b854bf..f943c15 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index 96488c5..3690e27 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 9c5266c..9ef7adf 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) @@ -171,18 +171,22 @@ loadScripts(document, 'script');
     
    - - +
    void
    +
    getAudioElement​(List<AudioElement> audios, + String elementTitle)
     
    -
    void
    - + +
     
    void
    - +
     
    void
    - +
     
    +
    void
    + +
     
    @@ -373,6 +377,24 @@ loadScripts(document, 'script');
    public void saveElements()
    +
  • +
    +

    getAudioElement

    +
    public void getAudioElement(List<AudioElement> audios, + String elementTitle) + throws NoAlbumFoundException, +UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    NoAlbumFoundException
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
    +
    +
  • diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index 5a480c3..0809462 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index 704f5ce..81e9dce 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 9d832fc..6a2c7a3 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index 80f0b18..c294b58 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index 0a4f1fd..57e0fa5 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) @@ -151,7 +151,7 @@ loadScripts(document, 'script');

    Methods inherited from class musichub.business.AudioElement

    -getArtist, getTitle, getUUID
    +getArtist, getTitle, getUUID, manageAudioElement

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index c7a6a88..eeb9cfe 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index 83d738a..07abecb 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index 1a553bf..a0c35cf 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) @@ -99,6 +99,16 @@ loadScripts(document, 'script');
    MusicHub.addElement​(AudioElement element)
     
    +
    Method parameters in musichub.business with type arguments of type AudioElement
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    +
    MusicHub.getAudioElement​(List<AudioElement> audios, + String elementTitle)
    +
     
    +
    diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index 62d35c3..f916411 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index e87b8fb..a952ca6 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index cf13a0c..6205bc4 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 7ae64d9..8f239ba 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index 165de5a..d948beb 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) @@ -81,6 +81,10 @@ loadScripts(document, 'script');
    MusicHub.getAlbumSongsSortedByGenre​(String albumTitle)
     
    +
    void
    +
    MusicHub.getAudioElement​(List<AudioElement> audios, + String elementTitle)
    +
     
    diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index b26799b..ae74b4d 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index 0ff787f..aab3251 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index f230f7f..4fdd1e0 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 9d1c95e..92d62d4 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index 0df1343..b5af4ec 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index 8104cc3..f640a6b 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index a1cf6fb..7ed1edb 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index f0ef281..f8bfd28 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) @@ -146,7 +146,16 @@ loadScripts(document, 'script');
  • main

    -
    public static void main(String[] args)
    +
    public static void main(String[] args) + throws UnsupportedAudioFileException, +IOException, +LineUnavailableException
    +
    +
    Throws:
    +
    UnsupportedAudioFileException
    +
    IOException
    +
    LineUnavailableException
    +
  • diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 0af879d..6d45c1a 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 4be4c16..350f1ec 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 96aab23..8322e63 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index e22beef..698c432 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index 4b8d7ba..942ecac 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index 7435f8d..f3cd47c 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index b38851e..12cbd12 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index c4625b5..b987ff3 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index 471f563..cf30494 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index f15374c..0415e8e 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index cecf679..b53ddc6 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index d1ab954..de7162a 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar index 3f4d90b..9f65573 100644 Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ -- cgit v1.2.3 From e9ee951e570c441151385d1ccd8c4230abf704ca Mon Sep 17 00:00:00 2001 From: Clyhtsuriva Date: Sat, 26 Jun 2021 14:32:12 +0200 Subject: Updated javadoc, added jacoco and the necessary JUnit for this feature. --- .../java/musichub/business/PathValidation.java | 15 +- .../java/musichub/business/PathValidationTest.java | 22 +- .../classes/musichub/business/PathValidation.class | Bin 0 -> 865 bytes target/classes/musichub/main/Main.class | Bin 10064 -> 10064 bytes target/jacoco.exec | Bin 0 -> 80650 bytes target/maven-archiver/pom.properties | 2 +- target/maven-javadoc-plugin-stale-data.txt | 39 +- .../compile/default-compile/createdFiles.lst | 1 + .../compile/default-compile/inputFiles.lst | 1 + .../default-testCompile/createdFiles.lst | 1 + .../testCompile/default-testCompile/inputFiles.lst | 1 + target/original-spoteezer-0.1.0.jar | Bin 31130 -> 31900 bytes target/site/apidocs/allclasses-index.html | 14 +- target/site/apidocs/allpackages-index.html | 2 +- target/site/apidocs/help-doc.html | 2 +- target/site/apidocs/index-all.html | 14 +- target/site/apidocs/index.html | 2 +- target/site/apidocs/member-search-index.js | 2 +- target/site/apidocs/musichub/business/Album.html | 2 +- .../site/apidocs/musichub/business/AudioBook.html | 2 +- .../apidocs/musichub/business/AudioElement.html | 2 +- .../site/apidocs/musichub/business/Category.html | 2 +- target/site/apidocs/musichub/business/Genre.html | 2 +- .../site/apidocs/musichub/business/Language.html | 2 +- .../site/apidocs/musichub/business/MusicHub.html | 2 +- .../musichub/business/NoAlbumFoundException.html | 2 +- .../musichub/business/NoElementFoundException.html | 2 +- .../business/NoPlayListFoundException.html | 2 +- .../apidocs/musichub/business/PathValidation.html | 189 +++ .../site/apidocs/musichub/business/PlayList.html | 2 +- target/site/apidocs/musichub/business/Song.html | 2 +- .../apidocs/musichub/business/class-use/Album.html | 2 +- .../musichub/business/class-use/AudioBook.html | 2 +- .../musichub/business/class-use/AudioElement.html | 2 +- .../musichub/business/class-use/Category.html | 2 +- .../apidocs/musichub/business/class-use/Genre.html | 2 +- .../musichub/business/class-use/Language.html | 2 +- .../musichub/business/class-use/MusicHub.html | 2 +- .../business/class-use/NoAlbumFoundException.html | 2 +- .../class-use/NoElementFoundException.html | 2 +- .../class-use/NoPlayListFoundException.html | 2 +- .../business/class-use/PathValidation.html | 65 + .../musichub/business/class-use/PlayList.html | 2 +- .../apidocs/musichub/business/class-use/Song.html | 2 +- .../apidocs/musichub/business/package-summary.html | 12 +- .../apidocs/musichub/business/package-tree.html | 3 +- .../apidocs/musichub/business/package-use.html | 2 +- target/site/apidocs/musichub/main/Main.html | 2 +- .../site/apidocs/musichub/main/class-use/Main.html | 2 +- .../apidocs/musichub/main/package-summary.html | 2 +- .../site/apidocs/musichub/main/package-tree.html | 2 +- target/site/apidocs/musichub/main/package-use.html | 2 +- target/site/apidocs/musichub/util/XMLHandler.html | 2 +- .../musichub/util/class-use/XMLHandler.html | 2 +- .../apidocs/musichub/util/package-summary.html | 2 +- .../site/apidocs/musichub/util/package-tree.html | 2 +- target/site/apidocs/musichub/util/package-use.html | 2 +- target/site/apidocs/overview-summary.html | 2 +- target/site/apidocs/overview-tree.html | 3 +- target/site/apidocs/serialized-form.html | 2 +- target/site/apidocs/type-search-index.js | 2 +- target/site/jacoco/index.html | 1 + target/site/jacoco/jacoco-resources/branchfc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/branchnc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/branchpc.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/bundle.gif | Bin 0 -> 709 bytes target/site/jacoco/jacoco-resources/class.gif | Bin 0 -> 586 bytes target/site/jacoco/jacoco-resources/down.gif | Bin 0 -> 67 bytes target/site/jacoco/jacoco-resources/greenbar.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/group.gif | Bin 0 -> 351 bytes target/site/jacoco/jacoco-resources/method.gif | Bin 0 -> 193 bytes target/site/jacoco/jacoco-resources/package.gif | Bin 0 -> 227 bytes target/site/jacoco/jacoco-resources/prettify.css | 13 + target/site/jacoco/jacoco-resources/prettify.js | 1510 ++++++++++++++++++++ target/site/jacoco/jacoco-resources/redbar.gif | Bin 0 -> 91 bytes target/site/jacoco/jacoco-resources/report.css | 243 ++++ target/site/jacoco/jacoco-resources/report.gif | Bin 0 -> 363 bytes target/site/jacoco/jacoco-resources/session.gif | Bin 0 -> 213 bytes target/site/jacoco/jacoco-resources/sort.gif | Bin 0 -> 58 bytes target/site/jacoco/jacoco-resources/sort.js | 148 ++ target/site/jacoco/jacoco-resources/source.gif | Bin 0 -> 354 bytes target/site/jacoco/jacoco-resources/up.gif | Bin 0 -> 67 bytes target/site/jacoco/jacoco-sessions.html | 1 + target/site/jacoco/jacoco.csv | 19 + target/site/jacoco/jacoco.xml | 1 + target/site/jacoco/musichub.business/Album.html | 1 + .../site/jacoco/musichub.business/Album.java.html | 146 ++ .../site/jacoco/musichub.business/AudioBook.html | 1 + .../jacoco/musichub.business/AudioBook.java.html | 79 + .../jacoco/musichub.business/AudioElement.html | 1 + .../musichub.business/AudioElement.java.html | 133 ++ target/site/jacoco/musichub.business/Category.html | 1 + .../jacoco/musichub.business/Category.java.html | 15 + target/site/jacoco/musichub.business/Genre.html | 1 + .../site/jacoco/musichub.business/Genre.java.html | 15 + target/site/jacoco/musichub.business/Language.html | 1 + .../jacoco/musichub.business/Language.java.html | 15 + target/site/jacoco/musichub.business/MusicHub.html | 1 + .../jacoco/musichub.business/MusicHub.java.html | 343 +++++ .../musichub.business/NoAlbumFoundException.html | 1 + .../NoAlbumFoundException.java.html | 9 + .../musichub.business/NoElementFoundException.html | 1 + .../NoElementFoundException.java.html | 9 + .../NoPlayListFoundException.html | 1 + .../NoPlayListFoundException.java.html | 9 + .../jacoco/musichub.business/PathValidation.html | 1 + .../musichub.business/PathValidation.java.html | 39 + target/site/jacoco/musichub.business/PlayList.html | 1 + .../jacoco/musichub.business/PlayList.java.html | 101 ++ target/site/jacoco/musichub.business/Song.html | 1 + .../site/jacoco/musichub.business/Song.java.html | 59 + .../jacoco/musichub.business/SortByAuthor.html | 1 + .../site/jacoco/musichub.business/SortByDate.html | 1 + .../site/jacoco/musichub.business/SortByGenre.html | 1 + target/site/jacoco/musichub.business/index.html | 1 + .../jacoco/musichub.business/index.source.html | 1 + target/site/jacoco/musichub.main/Main.html | 1 + target/site/jacoco/musichub.main/Main.java.html | 266 ++++ target/site/jacoco/musichub.main/index.html | 1 + target/site/jacoco/musichub.main/index.source.html | 1 + target/site/jacoco/musichub.util/XMLHandler.html | 1 + .../site/jacoco/musichub.util/XMLHandler.java.html | 75 + target/site/jacoco/musichub.util/index.html | 1 + target/site/jacoco/musichub.util/index.source.html | 1 + target/spoteezer-0.1.0.jar | Bin 367000 -> 367786 bytes .../TEST-musichub.business.PathValidationTest.xml | 60 + .../musichub.business.PathValidationTest.txt | 4 + .../musichub/business/PathValidationTest.class | Bin 0 -> 1190 bytes 128 files changed, 3725 insertions(+), 78 deletions(-) create mode 100644 target/classes/musichub/business/PathValidation.class create mode 100644 target/jacoco.exec create mode 100644 target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst create mode 100644 target/site/apidocs/musichub/business/PathValidation.html create mode 100644 target/site/apidocs/musichub/business/class-use/PathValidation.html create mode 100644 target/site/jacoco/index.html create mode 100644 target/site/jacoco/jacoco-resources/branchfc.gif create mode 100644 target/site/jacoco/jacoco-resources/branchnc.gif create mode 100644 target/site/jacoco/jacoco-resources/branchpc.gif create mode 100644 target/site/jacoco/jacoco-resources/bundle.gif create mode 100644 target/site/jacoco/jacoco-resources/class.gif create mode 100644 target/site/jacoco/jacoco-resources/down.gif create mode 100644 target/site/jacoco/jacoco-resources/greenbar.gif create mode 100644 target/site/jacoco/jacoco-resources/group.gif create mode 100644 target/site/jacoco/jacoco-resources/method.gif create mode 100644 target/site/jacoco/jacoco-resources/package.gif create mode 100644 target/site/jacoco/jacoco-resources/prettify.css create mode 100644 target/site/jacoco/jacoco-resources/prettify.js create mode 100644 target/site/jacoco/jacoco-resources/redbar.gif create mode 100644 target/site/jacoco/jacoco-resources/report.css create mode 100644 target/site/jacoco/jacoco-resources/report.gif create mode 100644 target/site/jacoco/jacoco-resources/session.gif create mode 100644 target/site/jacoco/jacoco-resources/sort.gif create mode 100644 target/site/jacoco/jacoco-resources/sort.js create mode 100644 target/site/jacoco/jacoco-resources/source.gif create mode 100644 target/site/jacoco/jacoco-resources/up.gif create mode 100644 target/site/jacoco/jacoco-sessions.html create mode 100644 target/site/jacoco/jacoco.csv create mode 100644 target/site/jacoco/jacoco.xml create mode 100644 target/site/jacoco/musichub.business/Album.html create mode 100644 target/site/jacoco/musichub.business/Album.java.html create mode 100644 target/site/jacoco/musichub.business/AudioBook.html create mode 100644 target/site/jacoco/musichub.business/AudioBook.java.html create mode 100644 target/site/jacoco/musichub.business/AudioElement.html create mode 100644 target/site/jacoco/musichub.business/AudioElement.java.html create mode 100644 target/site/jacoco/musichub.business/Category.html create mode 100644 target/site/jacoco/musichub.business/Category.java.html create mode 100644 target/site/jacoco/musichub.business/Genre.html create mode 100644 target/site/jacoco/musichub.business/Genre.java.html create mode 100644 target/site/jacoco/musichub.business/Language.html create mode 100644 target/site/jacoco/musichub.business/Language.java.html create mode 100644 target/site/jacoco/musichub.business/MusicHub.html create mode 100644 target/site/jacoco/musichub.business/MusicHub.java.html create mode 100644 target/site/jacoco/musichub.business/NoAlbumFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoAlbumFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/NoElementFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoElementFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/NoPlayListFoundException.html create mode 100644 target/site/jacoco/musichub.business/NoPlayListFoundException.java.html create mode 100644 target/site/jacoco/musichub.business/PathValidation.html create mode 100644 target/site/jacoco/musichub.business/PathValidation.java.html create mode 100644 target/site/jacoco/musichub.business/PlayList.html create mode 100644 target/site/jacoco/musichub.business/PlayList.java.html create mode 100644 target/site/jacoco/musichub.business/Song.html create mode 100644 target/site/jacoco/musichub.business/Song.java.html create mode 100644 target/site/jacoco/musichub.business/SortByAuthor.html create mode 100644 target/site/jacoco/musichub.business/SortByDate.html create mode 100644 target/site/jacoco/musichub.business/SortByGenre.html create mode 100644 target/site/jacoco/musichub.business/index.html create mode 100644 target/site/jacoco/musichub.business/index.source.html create mode 100644 target/site/jacoco/musichub.main/Main.html create mode 100644 target/site/jacoco/musichub.main/Main.java.html create mode 100644 target/site/jacoco/musichub.main/index.html create mode 100644 target/site/jacoco/musichub.main/index.source.html create mode 100644 target/site/jacoco/musichub.util/XMLHandler.html create mode 100644 target/site/jacoco/musichub.util/XMLHandler.java.html create mode 100644 target/site/jacoco/musichub.util/index.html create mode 100644 target/site/jacoco/musichub.util/index.source.html create mode 100644 target/surefire-reports/TEST-musichub.business.PathValidationTest.xml create mode 100644 target/surefire-reports/musichub.business.PathValidationTest.txt create mode 100644 target/test-classes/musichub/business/PathValidationTest.class (limited to 'target/maven-archiver/pom.properties') diff --git a/src/main/java/musichub/business/PathValidation.java b/src/main/java/musichub/business/PathValidation.java index 97f8759..b0281ba 100644 --- a/src/main/java/musichub/business/PathValidation.java +++ b/src/main/java/musichub/business/PathValidation.java @@ -11,10 +11,21 @@ import java.nio.file.Paths; * @version 1.0 */ -public class PathValidation { +public final class PathValidation { /** - * Methode that checks the validity of a given path + * Method that just throws an AssertionError if the class is called + * + * @throws AssertionError you can't instantiate this class + * @author Aimeric ADJUTOR + */ + + public PathValidation() { + throw new AssertionError("You just can't instantiate this class."); + } + + /** + * Method that checks the validity of a given path * * @param inputPath the path given by the user * @return a boolean diff --git a/src/test/java/musichub/business/PathValidationTest.java b/src/test/java/musichub/business/PathValidationTest.java index 2b24d7a..fffbdde 100644 --- a/src/test/java/musichub/business/PathValidationTest.java +++ b/src/test/java/musichub/business/PathValidationTest.java @@ -1,8 +1,26 @@ package musichub.business; +import org.junit.jupiter.api.Test; + +import static musichub.business.PathValidation.isPathValid; +import static org.junit.jupiter.api.Assertions.*; + public class PathValidationTest { + @Test void testIsPathValid() { - //Not implemented yet + assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path + assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path + assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension + } + + @Test + void testPathValidationClass() { + try { + PathValidation pathValidationClass = new PathValidation(); + } catch (Error ex) { + assertTrue(ex instanceof AssertionError); + assertEquals("You just can't instantiate this class.", ex.getMessage()); + } } -} \ No newline at end of file +} diff --git a/target/classes/musichub/business/PathValidation.class b/target/classes/musichub/business/PathValidation.class new file mode 100644 index 0000000..5e3ac15 Binary files /dev/null and b/target/classes/musichub/business/PathValidation.class differ diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class index d9ad38a..f3d2052 100644 Binary files a/target/classes/musichub/main/Main.class and b/target/classes/musichub/main/Main.class differ diff --git a/target/jacoco.exec b/target/jacoco.exec new file mode 100644 index 0000000..a11f908 Binary files /dev/null and b/target/jacoco.exec differ diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 1b408a6..1d6eb92 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 26 13:25:26 CEST 2021 +#Sat Jun 26 14:29:09 CEST 2021 groupId=esiea.softwareengineering artifactId=spoteezer version=0.1.0 diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt index c701b12..211d1c0 100644 --- a/target/maven-javadoc-plugin-stale-data.txt +++ b/target/maven-javadoc-plugin-stale-data.txt @@ -34,6 +34,7 @@ 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java' +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PathValidation.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java' 'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java' @@ -43,22 +44,22 @@ C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.j C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770 C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790 C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783 -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624705682872 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624706731862 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624706731864 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624706731767 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624706731890 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624706731885 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624706731838 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624706731909 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624706731868 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624706731865 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624706731887 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624706731835 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624706731866 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624706731894 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624706731895 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624706731788 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624706731892 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624706731869 -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624706731867 \ No newline at end of file +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624710556861 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624710556864 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624710556758 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624710556888 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624710556884 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624710556844 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624710556910 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624710556868 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624710556865 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624710556885 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624710556841 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624710556866 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624710556892 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624710556895 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624710556785 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624710556891 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624710556869 +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624710556867 \ No newline at end of file diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst index a388223..26c13ed 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -1,4 +1,5 @@ musichub\util\XMLHandler.class +musichub\business\PathValidation.class musichub\business\NoElementFoundException.class musichub\business\Language.class musichub\business\PlayList.class diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 5354743..93f6593 100644 --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -7,6 +7,7 @@ C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PathValidation.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 0000000..649a939 --- /dev/null +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1 @@ +musichub\business\PathValidationTest.class diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst index e69de29..9b5d3f0 100644 --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1 @@ +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PathValidationTest.java diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar index b2c45cf..fbeb8a5 100644 Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html index 83bf57c..767b8ab 100644 --- a/target/site/apidocs/allclasses-index.html +++ b/target/site/apidocs/allclasses-index.html @@ -2,7 +2,7 @@ - + All Classes (spoteezer 0.1.0 API) @@ -86,12 +86,16 @@ loadScripts(document, 'script');
     
     
    - -
     
    - + +
    +
    Class offering a path validation method.
    +
    +
     
    - +
     
    + +
     
    diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html index a9e8eb8..daffbfc 100644 --- a/target/site/apidocs/allpackages-index.html +++ b/target/site/apidocs/allpackages-index.html @@ -2,7 +2,7 @@ - + All Packages (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html index a2e0731..084eeb0 100644 --- a/target/site/apidocs/help-doc.html +++ b/target/site/apidocs/help-doc.html @@ -2,7 +2,7 @@ - + API Help (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html index cd292d0..bb26bd1 100644 --- a/target/site/apidocs/index-all.html +++ b/target/site/apidocs/index-all.html @@ -2,7 +2,7 @@ - + Index (spoteezer 0.1.0 API) @@ -202,6 +202,10 @@ loadScripts(document, 'script');

    I

    +
    isPathValid(String) - Static method in class musichub.business.PathValidation
    +
    +
    Method that checks the validity of a given path
    +
    ITALIAN - Enum constant in enum class musichub.business.Language
     
    @@ -259,6 +263,14 @@ loadScripts(document, 'script');
    parseXMLFile(String) - Method in class musichub.util.XMLHandler
     
    +
    PathValidation - Class in musichub.business
    +
    +
    Class offering a path validation method.
    +
    +
    PathValidation() - Constructor for class musichub.business.PathValidation
    +
    +
    Method that just throws an AssertionError if the class is called
    +
    PlayList - Class in musichub.business
     
    PlayList(String) - Constructor for class musichub.business.PlayList
    diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html index 87cf0ec..a865d2c 100644 --- a/target/site/apidocs/index.html +++ b/target/site/apidocs/index.html @@ -2,7 +2,7 @@ - + Overview (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js index 784449a..7c431d3 100644 --- a/target/site/apidocs/member-search-index.js +++ b/target/site/apidocs/member-search-index.js @@ -1 +1 @@ -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html index 8d24dd6..824d2f6 100644 --- a/target/site/apidocs/musichub/business/Album.html +++ b/target/site/apidocs/musichub/business/Album.html @@ -2,7 +2,7 @@ - + Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html index 0d8d9b5..f171946 100644 --- a/target/site/apidocs/musichub/business/AudioBook.html +++ b/target/site/apidocs/musichub/business/AudioBook.html @@ -2,7 +2,7 @@ - + AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html index 493874c..f2ecb62 100644 --- a/target/site/apidocs/musichub/business/AudioElement.html +++ b/target/site/apidocs/musichub/business/AudioElement.html @@ -2,7 +2,7 @@ - + AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html index 7748822..6fa6ed1 100644 --- a/target/site/apidocs/musichub/business/Category.html +++ b/target/site/apidocs/musichub/business/Category.html @@ -2,7 +2,7 @@ - + Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html index f943c15..404433a 100644 --- a/target/site/apidocs/musichub/business/Genre.html +++ b/target/site/apidocs/musichub/business/Genre.html @@ -2,7 +2,7 @@ - + Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html index 3690e27..7c71eef 100644 --- a/target/site/apidocs/musichub/business/Language.html +++ b/target/site/apidocs/musichub/business/Language.html @@ -2,7 +2,7 @@ - + Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html index 9ef7adf..a96d88e 100644 --- a/target/site/apidocs/musichub/business/MusicHub.html +++ b/target/site/apidocs/musichub/business/MusicHub.html @@ -2,7 +2,7 @@ - + MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html index 0809462..51defb8 100644 --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html index 81e9dce..b935b6c 100644 --- a/target/site/apidocs/musichub/business/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html @@ -2,7 +2,7 @@ - + NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html index 6a2c7a3..56d2aaf 100644 --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/PathValidation.html b/target/site/apidocs/musichub/business/PathValidation.html new file mode 100644 index 0000000..9a7945c --- /dev/null +++ b/target/site/apidocs/musichub/business/PathValidation.html @@ -0,0 +1,189 @@ + + + + + +PathValidation (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class PathValidation

    +
    +
    java.lang.Object +
    musichub.business.PathValidation
    +
    +
    +
    +
    public final class PathValidation +extends Object
    +
    Class offering a path validation method.
    +
    +
    Version:
    +
    1.0
    +
    Author:
    +
    Aimeric ADJUTOR
    +
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        PathValidation

        +
        public PathValidation()
        +
        Method that just throws an AssertionError if the class is called
        +
        +
        Throws:
        +
        AssertionError - you can't instantiate this class
        +
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      +
        +
      • +
        +

        isPathValid

        +
        public static boolean isPathValid(String inputPath)
        +
        Method that checks the validity of a given path
        +
        +
        Parameters:
        +
        inputPath - the path given by the user
        +
        Returns:
        +
        a boolean
        +
        +
        +
      • +
      +
      +
    • +
    +
    + +
    +
    +
    + +
    +
    +
    + + diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html index c294b58..533a2ad 100644 --- a/target/site/apidocs/musichub/business/PlayList.html +++ b/target/site/apidocs/musichub/business/PlayList.html @@ -2,7 +2,7 @@ - + PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html index 57e0fa5..aa13772 100644 --- a/target/site/apidocs/musichub/business/Song.html +++ b/target/site/apidocs/musichub/business/Song.html @@ -2,7 +2,7 @@ - + Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html index eeb9cfe..a799c69 100644 --- a/target/site/apidocs/musichub/business/class-use/Album.html +++ b/target/site/apidocs/musichub/business/class-use/Album.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Album (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html index 07abecb..6054d2d 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html index a0c35cf..ab20cf8 100644 --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html index f916411..d0b7007 100644 --- a/target/site/apidocs/musichub/business/class-use/Category.html +++ b/target/site/apidocs/musichub/business/class-use/Category.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html index a952ca6..94c178d 100644 --- a/target/site/apidocs/musichub/business/class-use/Genre.html +++ b/target/site/apidocs/musichub/business/class-use/Genre.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html index 6205bc4..6df04ff 100644 --- a/target/site/apidocs/musichub/business/class-use/Language.html +++ b/target/site/apidocs/musichub/business/class-use/Language.html @@ -2,7 +2,7 @@ - + Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html index 8f239ba..2f00178 100644 --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html index d948beb..c11e6be 100644 --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html index ae74b4d..70bbffa 100644 --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html index aab3251..97c5c34 100644 --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/PathValidation.html b/target/site/apidocs/musichub/business/class-use/PathValidation.html new file mode 100644 index 0000000..b8a4f5a --- /dev/null +++ b/target/site/apidocs/musichub/business/class-use/PathValidation.html @@ -0,0 +1,65 @@ + + + + + +Uses of Class musichub.business.PathValidation (spoteezer 0.1.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Uses of Class
    musichub.business.PathValidation

    +
    +No usage of musichub.business.PathValidation
    +
    +
    + +
    +
    +
    + + diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html index 4fdd1e0..7d039a5 100644 --- a/target/site/apidocs/musichub/business/class-use/PlayList.html +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html index 92d62d4..853c506 100644 --- a/target/site/apidocs/musichub/business/class-use/Song.html +++ b/target/site/apidocs/musichub/business/class-use/Song.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.business.Song (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html index b5af4ec..57c22af 100644 --- a/target/site/apidocs/musichub/business/package-summary.html +++ b/target/site/apidocs/musichub/business/package-summary.html @@ -2,7 +2,7 @@ - + musichub.business (spoteezer 0.1.0 API) @@ -71,10 +71,14 @@ loadScripts(document, 'script');
     
     
    - -
     
    - + +
    +
    Class offering a path validation method.
    +
    +
     
    + +
     
  • diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html index f640a6b..31cbe13 100644 --- a/target/site/apidocs/musichub/business/package-tree.html +++ b/target/site/apidocs/musichub/business/package-tree.html @@ -2,7 +2,7 @@ - + musichub.business Class Hierarchy (spoteezer 0.1.0 API) @@ -71,6 +71,7 @@ loadScripts(document, 'script');
  • musichub.business.MusicHub
  • +
  • musichub.business.PathValidation
  • musichub.business.PlayList
  • java.lang.Throwable (implements java.io.Serializable)
      diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html index 7ed1edb..c75e960 100644 --- a/target/site/apidocs/musichub/business/package-use.html +++ b/target/site/apidocs/musichub/business/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.business (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html index f8bfd28..d060888 100644 --- a/target/site/apidocs/musichub/main/Main.html +++ b/target/site/apidocs/musichub/main/Main.html @@ -2,7 +2,7 @@ - + Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html index 6d45c1a..2ea6da4 100644 --- a/target/site/apidocs/musichub/main/class-use/Main.html +++ b/target/site/apidocs/musichub/main/class-use/Main.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.main.Main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html index 350f1ec..87c57b3 100644 --- a/target/site/apidocs/musichub/main/package-summary.html +++ b/target/site/apidocs/musichub/main/package-summary.html @@ -2,7 +2,7 @@ - + musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html index 8322e63..d6354f0 100644 --- a/target/site/apidocs/musichub/main/package-tree.html +++ b/target/site/apidocs/musichub/main/package-tree.html @@ -2,7 +2,7 @@ - + musichub.main Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html index 698c432..68e7ada 100644 --- a/target/site/apidocs/musichub/main/package-use.html +++ b/target/site/apidocs/musichub/main/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.main (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html index 942ecac..52734c9 100644 --- a/target/site/apidocs/musichub/util/XMLHandler.html +++ b/target/site/apidocs/musichub/util/XMLHandler.html @@ -2,7 +2,7 @@ - + XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html index f3cd47c..04b02a0 100644 --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html @@ -2,7 +2,7 @@ - + Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html index 12cbd12..72ff644 100644 --- a/target/site/apidocs/musichub/util/package-summary.html +++ b/target/site/apidocs/musichub/util/package-summary.html @@ -2,7 +2,7 @@ - + musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html index b987ff3..7817d93 100644 --- a/target/site/apidocs/musichub/util/package-tree.html +++ b/target/site/apidocs/musichub/util/package-tree.html @@ -2,7 +2,7 @@ - + musichub.util Class Hierarchy (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html index cf30494..afe8c6d 100644 --- a/target/site/apidocs/musichub/util/package-use.html +++ b/target/site/apidocs/musichub/util/package-use.html @@ -2,7 +2,7 @@ - + Uses of Package musichub.util (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html index 0415e8e..1961838 100644 --- a/target/site/apidocs/overview-summary.html +++ b/target/site/apidocs/overview-summary.html @@ -2,7 +2,7 @@ - + spoteezer 0.1.0 API diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html index b53ddc6..69d606a 100644 --- a/target/site/apidocs/overview-tree.html +++ b/target/site/apidocs/overview-tree.html @@ -2,7 +2,7 @@ - + Class Hierarchy (spoteezer 0.1.0 API) @@ -74,6 +74,7 @@ loadScripts(document, 'script');
    • musichub.main.Main
    • musichub.business.MusicHub
    • +
    • musichub.business.PathValidation
    • musichub.business.PlayList
    • java.lang.Throwable (implements java.io.Serializable)
        diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html index de7162a..011c84f 100644 --- a/target/site/apidocs/serialized-form.html +++ b/target/site/apidocs/serialized-form.html @@ -2,7 +2,7 @@ - + Serialized Form (spoteezer 0.1.0 API) diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js index 2401962..be00fa7 100644 --- a/target/site/apidocs/type-search-index.js +++ b/target/site/apidocs/type-search-index.js @@ -1 +1 @@ -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults(); \ No newline at end of file diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html new file mode 100644 index 0000000..f0faf92 --- /dev/null +++ b/target/site/jacoco/index.html @@ -0,0 +1 @@ +spoteezer

        spoteezer

        ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
        Total2 723 of 2 7400 %209 of 2090 %20520772372788901718
        musichub.business2 0630 %1690 %17217449950381831516
        musichub.main5880 %400 %29291991993311
        musichub.util720 %n/a4425254411
        \ No newline at end of file diff --git a/target/site/jacoco/jacoco-resources/branchfc.gif b/target/site/jacoco/jacoco-resources/branchfc.gif new file mode 100644 index 0000000..989b46d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchfc.gif differ diff --git a/target/site/jacoco/jacoco-resources/branchnc.gif b/target/site/jacoco/jacoco-resources/branchnc.gif new file mode 100644 index 0000000..1933e07 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchnc.gif differ diff --git a/target/site/jacoco/jacoco-resources/branchpc.gif b/target/site/jacoco/jacoco-resources/branchpc.gif new file mode 100644 index 0000000..cbf711b Binary files /dev/null and b/target/site/jacoco/jacoco-resources/branchpc.gif differ diff --git a/target/site/jacoco/jacoco-resources/bundle.gif b/target/site/jacoco/jacoco-resources/bundle.gif new file mode 100644 index 0000000..fca9c53 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/bundle.gif differ diff --git a/target/site/jacoco/jacoco-resources/class.gif b/target/site/jacoco/jacoco-resources/class.gif new file mode 100644 index 0000000..eb348fb Binary files /dev/null and b/target/site/jacoco/jacoco-resources/class.gif differ diff --git a/target/site/jacoco/jacoco-resources/down.gif b/target/site/jacoco/jacoco-resources/down.gif new file mode 100644 index 0000000..440a14d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/down.gif differ diff --git a/target/site/jacoco/jacoco-resources/greenbar.gif b/target/site/jacoco/jacoco-resources/greenbar.gif new file mode 100644 index 0000000..0ba6567 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/greenbar.gif differ diff --git a/target/site/jacoco/jacoco-resources/group.gif b/target/site/jacoco/jacoco-resources/group.gif new file mode 100644 index 0000000..a4ea580 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/group.gif differ diff --git a/target/site/jacoco/jacoco-resources/method.gif b/target/site/jacoco/jacoco-resources/method.gif new file mode 100644 index 0000000..7d24707 Binary files /dev/null and b/target/site/jacoco/jacoco-resources/method.gif differ diff --git a/target/site/jacoco/jacoco-resources/package.gif b/target/site/jacoco/jacoco-resources/package.gif new file mode 100644 index 0000000..131c28d Binary files /dev/null and b/target/site/jacoco/jacoco-resources/package.gif differ diff --git a/target/site/jacoco/jacoco-resources/prettify.css b/target/site/jacoco/jacoco-resources/prettify.css new file mode 100644 index 0000000..be5166e --- /dev/null +++ b/target/site/jacoco/jacoco-resources/prettify.css @@ -0,0 +1,13 @@ +/* Pretty printing styles. Used with prettify.js. */ + +.str { color: #2A00FF; } +.kwd { color: #7F0055; font-weight:bold; } +.com { color: #3F5FBF; } +.typ { color: #606; } +.lit { color: #066; } +.pun { color: #660; } +.pln { color: #000; } +.tag { color: #008; } +.atn { color: #606; } +.atv { color: #080; } +.dec { color: #606; } diff --git a/target/site/jacoco/jacoco-resources/prettify.js b/target/site/jacoco/jacoco-resources/prettify.js new file mode 100644 index 0000000..b2766fe --- /dev/null +++ b/target/site/jacoco/jacoco-resources/prettify.js @@ -0,0 +1,1510 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

        + * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

        + * Usage:

          + *
        1. include this source file in an html page via + * {@code } + *
        2. define style rules. See the example page for examples. + *
        3. mark the {@code
          } and {@code } tags in your source with
          + *    {@code class=prettyprint.}
          + *    You can also use the (html deprecated) {@code } tag, but the pretty
          + *    printer needs to do more substantial DOM manipulations to support that, so
          + *    some css styles may not be preserved.
          + * </ol>
          + * That's it.  I wanted to keep the API as simple as possible, so there's no
          + * need to specify which language the code is in, but if you wish, you can add
          + * another class to the {@code <pre>} or {@code <code>} element to specify the
          + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
          + * starts with "lang-" followed by a file extension, specifies the file type.
          + * See the "lang-*.js" files in this directory for code that implements
          + * per-language file handlers.
          + * <p>
          + * Change log:<br>
          + * cbeust, 2006/08/22
          + * <blockquote>
          + *   Java annotations (start with "@") are now captured as literals ("lit")
          + * </blockquote>
          + * @requires console
          + */
          +
          +// JSLint declarations
          +/*global console, document, navigator, setTimeout, window */
          +
          +/**
          + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
          + * UI events.
          + * If set to {@code false}, {@code prettyPrint()} is synchronous.
          + */
          +window['PR_SHOULD_USE_CONTINUATION'] = true;
          +
          +/** the number of characters between tab columns */
          +window['PR_TAB_WIDTH'] = 8;
          +
          +/** Walks the DOM returning a properly escaped version of innerHTML.
          +  * @param {Node} node
          +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
          +  */
          +window['PR_normalizedHtml']
          +
          +/** Contains functions for creating and registering new language handlers.
          +  * @type {Object}
          +  */
          +  = window['PR']
          +
          +/** Pretty print a chunk of code.
          +  *
          +  * @param {string} sourceCodeHtml code as html
          +  * @return {string} code as html, but prettier
          +  */
          +  = window['prettyPrintOne']
          +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
          +  * {@code class=prettyprint} and prettify them.
          +  * @param {Function?} opt_whenDone if specified, called when the last entry
          +  *     has been finished.
          +  */
          +  = window['prettyPrint'] = void 0;
          +
          +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
          +window['_pr_isIE6'] = function () {
          +  var ieVersion = navigator && navigator.userAgent &&
          +      navigator.userAgent.match(/\bMSIE ([678])\./);
          +  ieVersion = ieVersion ? +ieVersion[1] : false;
          +  window['_pr_isIE6'] = function () { return ieVersion; };
          +  return ieVersion;
          +};
          +
          +
          +(function () {
          +  // Keyword lists for various languages.
          +  var FLOW_CONTROL_KEYWORDS =
          +      "break continue do else for if return while ";
          +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
          +      "double enum extern float goto int long register short signed sizeof " +
          +      "static struct switch typedef union unsigned void volatile ";
          +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
          +      "new operator private protected public this throw true try typeof ";
          +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
          +      "concept concept_map const_cast constexpr decltype " +
          +      "dynamic_cast explicit export friend inline late_check " +
          +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
          +      "template typeid typename using virtual wchar_t where ";
          +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
          +      "abstract boolean byte extends final finally implements import " +
          +      "instanceof null native package strictfp super synchronized throws " +
          +      "transient ";
          +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
          +      "as base by checked decimal delegate descending event " +
          +      "fixed foreach from group implicit in interface internal into is lock " +
          +      "object out override orderby params partial readonly ref sbyte sealed " +
          +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
          +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
          +      "debugger eval export function get null set undefined var with " +
          +      "Infinity NaN ";
          +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
          +      "goto if import last local my next no our print package redo require " +
          +      "sub undef unless until use wantarray while BEGIN END ";
          +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
          +      "elif except exec finally from global import in is lambda " +
          +      "nonlocal not or pass print raise try with yield " +
          +      "False True None ";
          +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
          +      " defined elsif end ensure false in module next nil not or redo rescue " +
          +      "retry self super then true undef unless until when yield BEGIN END ";
          +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
          +      "function in local set then until ";
          +  var ALL_KEYWORDS = (
          +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
          +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
          +
          +  // token style names.  correspond to css classes
          +  /** token style for a string literal */
          +  var PR_STRING = 'str';
          +  /** token style for a keyword */
          +  var PR_KEYWORD = 'kwd';
          +  /** token style for a comment */
          +  var PR_COMMENT = 'com';
          +  /** token style for a type */
          +  var PR_TYPE = 'typ';
          +  /** token style for a literal value.  e.g. 1, null, true. */
          +  var PR_LITERAL = 'lit';
          +  /** token style for a punctuation string. */
          +  var PR_PUNCTUATION = 'pun';
          +  /** token style for a punctuation string. */
          +  var PR_PLAIN = 'pln';
          +
          +  /** token style for an sgml tag. */
          +  var PR_TAG = 'tag';
          +  /** token style for a markup declaration such as a DOCTYPE. */
          +  var PR_DECLARATION = 'dec';
          +  /** token style for embedded source. */
          +  var PR_SOURCE = 'src';
          +  /** token style for an sgml attribute name. */
          +  var PR_ATTRIB_NAME = 'atn';
          +  /** token style for an sgml attribute value. */
          +  var PR_ATTRIB_VALUE = 'atv';
          +
          +  /**
          +   * A class that indicates a section of markup that is not code, e.g. to allow
          +   * embedding of line numbers within code listings.
          +   */
          +  var PR_NOCODE = 'nocode';
          +
          +  /** A set of tokens that can precede a regular expression literal in
          +    * javascript.
          +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
          +    * list, but I've removed ones that might be problematic when seen in
          +    * languages that don't support regular expression literals.
          +    *
          +    * <p>Specifically, I've removed any keywords that can't precede a regexp
          +    * literal in a syntactically legal javascript program, and I've removed the
          +    * "in" keyword since it's not a keyword in many languages, and might be used
          +    * as a count of inches.
          +    *
          +    * <p>The link a above does not accurately describe EcmaScript rules since
          +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
          +    * very well in practice.
          +    *
          +    * @private
          +    */
          +  var REGEXP_PRECEDER_PATTERN = function () {
          +      var preceders = [
          +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
          +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
          +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
          +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
          +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
          +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
          +          "||=", "~" /* handles =~ and !~ */,
          +          "break", "case", "continue", "delete",
          +          "do", "else", "finally", "instanceof",
          +          "return", "throw", "try", "typeof"
          +          ];
          +      var pattern = '(?:^^|[+-]';
          +      for (var i = 0; i < preceders.length; ++i) {
          +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
          +      }
          +      pattern += ')\\s*';  // matches at end, and matches empty string
          +      return pattern;
          +      // CAVEAT: this does not properly handle the case where a regular
          +      // expression immediately follows another since a regular expression may
          +      // have flags for case-sensitivity and the like.  Having regexp tokens
          +      // adjacent is not valid in any language I'm aware of, so I'm punting.
          +      // TODO: maybe style special characters inside a regexp as punctuation.
          +    }();
          +
          +  // Define regexps here so that the interpreter doesn't have to create an
          +  // object each time the function containing them is called.
          +  // The language spec requires a new object created even if you don't access
          +  // the $1 members.
          +  var pr_amp = /&/g;
          +  var pr_lt = /</g;
          +  var pr_gt = />/g;
          +  var pr_quot = /\"/g;
          +  /** like textToHtml but escapes double quotes to be attribute safe. */
          +  function attribToHtml(str) {
          +    return str.replace(pr_amp, '&amp;')
          +        .replace(pr_lt, '&lt;')
          +        .replace(pr_gt, '&gt;')
          +        .replace(pr_quot, '&quot;');
          +  }
          +
          +  /** escapest html special characters to html. */
          +  function textToHtml(str) {
          +    return str.replace(pr_amp, '&amp;')
          +        .replace(pr_lt, '&lt;')
          +        .replace(pr_gt, '&gt;');
          +  }
          +
          +
          +  var pr_ltEnt = /&lt;/g;
          +  var pr_gtEnt = /&gt;/g;
          +  var pr_aposEnt = /&apos;/g;
          +  var pr_quotEnt = /&quot;/g;
          +  var pr_ampEnt = /&amp;/g;
          +  var pr_nbspEnt = /&nbsp;/g;
          +  /** unescapes html to plain text. */
          +  function htmlToText(html) {
          +    var pos = html.indexOf('&');
          +    if (pos < 0) { return html; }
          +    // Handle numeric entities specially.  We can't use functional substitution
          +    // since that doesn't work in older versions of Safari.
          +    // These should be rare since most browsers convert them to normal chars.
          +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
          +      var end = html.indexOf(';', pos);
          +      if (end >= 0) {
          +        var num = html.substring(pos + 3, end);
          +        var radix = 10;
          +        if (num && num.charAt(0) === 'x') {
          +          num = num.substring(1);
          +          radix = 16;
          +        }
          +        var codePoint = parseInt(num, radix);
          +        if (!isNaN(codePoint)) {
          +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
          +                  html.substring(end + 1));
          +        }
          +      }
          +    }
          +
          +    return html.replace(pr_ltEnt, '<')
          +        .replace(pr_gtEnt, '>')
          +        .replace(pr_aposEnt, "'")
          +        .replace(pr_quotEnt, '"')
          +        .replace(pr_nbspEnt, ' ')
          +        .replace(pr_ampEnt, '&');
          +  }
          +
          +  /** is the given node's innerHTML normally unescaped? */
          +  function isRawContent(node) {
          +    return 'XMP' === node.tagName;
          +  }
          +
          +  var newlineRe = /[\r\n]/g;
          +  /**
          +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
          +   */
          +  function isPreformatted(node, content) {
          +    // PRE means preformatted, and is a very common case, so don't create
          +    // unnecessary computed style objects.
          +    if ('PRE' === node.tagName) { return true; }
          +    if (!newlineRe.test(content)) { return true; }  // Don't care
          +    var whitespace = '';
          +    // For disconnected nodes, IE has no currentStyle.
          +    if (node.currentStyle) {
          +      whitespace = node.currentStyle.whiteSpace;
          +    } else if (window.getComputedStyle) {
          +      // Firefox makes a best guess if node is disconnected whereas Safari
          +      // returns the empty string.
          +      whitespace = window.getComputedStyle(node, null).whiteSpace;
          +    }
          +    return !whitespace || whitespace === 'pre';
          +  }
          +
          +  function normalizedHtml(node, out, opt_sortAttrs) {
          +    switch (node.nodeType) {
          +      case 1:  // an element
          +        var name = node.tagName.toLowerCase();
          +
          +        out.push('<', name);
          +        var attrs = node.attributes;
          +        var n = attrs.length;
          +        if (n) {
          +          if (opt_sortAttrs) {
          +            var sortedAttrs = [];
          +            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
          +            sortedAttrs.sort(function (a, b) {
          +                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
          +              });
          +            attrs = sortedAttrs;
          +          }
          +          for (var i = 0; i < n; ++i) {
          +            var attr = attrs[i];
          +            if (!attr.specified) { continue; }
          +            out.push(' ', attr.name.toLowerCase(),
          +                     '="', attribToHtml(attr.value), '"');
          +          }
          +        }
          +        out.push('>');
          +        for (var child = node.firstChild; child; child = child.nextSibling) {
          +          normalizedHtml(child, out, opt_sortAttrs);
          +        }
          +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
          +          out.push('<\/', name, '>');
          +        }
          +        break;
          +      case 3: case 4: // text
          +        out.push(textToHtml(node.nodeValue));
          +        break;
          +    }
          +  }
          +
          +  /**
          +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
          +   * matches the union o the sets o strings matched d by the input RegExp.
          +   * Since it matches globally, if the input strings have a start-of-input
          +   * anchor (/^.../), it is ignored for the purposes of unioning.
          +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
          +   * @return {RegExp} a global regex.
          +   */
          +  function combinePrefixPatterns(regexs) {
          +    var capturedGroupIndex = 0;
          +
          +    var needToFoldCase = false;
          +    var ignoreCase = false;
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.ignoreCase) {
          +        ignoreCase = true;
          +      } else if (/[a-z]/i.test(regex.source.replace(
          +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
          +        needToFoldCase = true;
          +        ignoreCase = false;
          +        break;
          +      }
          +    }
          +
          +    function decodeEscape(charsetPart) {
          +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
          +      switch (charsetPart.charAt(1)) {
          +        case 'b': return 8;
          +        case 't': return 9;
          +        case 'n': return 0xa;
          +        case 'v': return 0xb;
          +        case 'f': return 0xc;
          +        case 'r': return 0xd;
          +        case 'u': case 'x':
          +          return parseInt(charsetPart.substring(2), 16)
          +              || charsetPart.charCodeAt(1);
          +        case '0': case '1': case '2': case '3': case '4':
          +        case '5': case '6': case '7':
          +          return parseInt(charsetPart.substring(1), 8);
          +        default: return charsetPart.charCodeAt(1);
          +      }
          +    }
          +
          +    function encodeEscape(charCode) {
          +      if (charCode < 0x20) {
          +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
          +      }
          +      var ch = String.fromCharCode(charCode);
          +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
          +        ch = '\\' + ch;
          +      }
          +      return ch;
          +    }
          +
          +    function caseFoldCharset(charSet) {
          +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
          +          new RegExp(
          +              '\\\\u[0-9A-Fa-f]{4}'
          +              + '|\\\\x[0-9A-Fa-f]{2}'
          +              + '|\\\\[0-3][0-7]{0,2}'
          +              + '|\\\\[0-7]{1,2}'
          +              + '|\\\\[\\s\\S]'
          +              + '|-'
          +              + '|[^-\\\\]',
          +              'g'));
          +      var groups = [];
          +      var ranges = [];
          +      var inverse = charsetParts[0] === '^';
          +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
          +        var p = charsetParts[i];
          +        switch (p) {
          +          case '\\B': case '\\b':
          +          case '\\D': case '\\d':
          +          case '\\S': case '\\s':
          +          case '\\W': case '\\w':
          +            groups.push(p);
          +            continue;
          +        }
          +        var start = decodeEscape(p);
          +        var end;
          +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
          +          end = decodeEscape(charsetParts[i + 2]);
          +          i += 2;
          +        } else {
          +          end = start;
          +        }
          +        ranges.push([start, end]);
          +        // If the range might intersect letters, then expand it.
          +        if (!(end < 65 || start > 122)) {
          +          if (!(end < 65 || start > 90)) {
          +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
          +          }
          +          if (!(end < 97 || start > 122)) {
          +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
          +          }
          +        }
          +      }
          +
          +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
          +      // -> [[1, 12], [14, 14], [16, 17]]
          +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
          +      var consolidatedRanges = [];
          +      var lastRange = [NaN, NaN];
          +      for (var i = 0; i < ranges.length; ++i) {
          +        var range = ranges[i];
          +        if (range[0] <= lastRange[1] + 1) {
          +          lastRange[1] = Math.max(lastRange[1], range[1]);
          +        } else {
          +          consolidatedRanges.push(lastRange = range);
          +        }
          +      }
          +
          +      var out = ['['];
          +      if (inverse) { out.push('^'); }
          +      out.push.apply(out, groups);
          +      for (var i = 0; i < consolidatedRanges.length; ++i) {
          +        var range = consolidatedRanges[i];
          +        out.push(encodeEscape(range[0]));
          +        if (range[1] > range[0]) {
          +          if (range[1] + 1 > range[0]) { out.push('-'); }
          +          out.push(encodeEscape(range[1]));
          +        }
          +      }
          +      out.push(']');
          +      return out.join('');
          +    }
          +
          +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
          +      // Split into character sets, escape sequences, punctuation strings
          +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
          +      // include any of the above.
          +      var parts = regex.source.match(
          +          new RegExp(
          +              '(?:'
          +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
          +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
          +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
          +              + '|\\\\[0-9]+'  // a back-reference or octal escape
          +              + '|\\\\[^ux0-9]'  // other escape sequence
          +              + '|\\(\\?[:!=]'  // start of a non-capturing group
          +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
          +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
          +              + ')',
          +              'g'));
          +      var n = parts.length;
          +
          +      // Maps captured group numbers to the number they will occupy in
          +      // the output or to -1 if that has not been determined, or to
          +      // undefined if they need not be capturing in the output.
          +      var capturedGroups = [];
          +
          +      // Walk over and identify back references to build the capturedGroups
          +      // mapping.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          // groups are 1-indexed, so max group index is count of '('
          +          ++groupIndex;
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            capturedGroups[decimalValue] = -1;
          +          }
          +        }
          +      }
          +
          +      // Renumber groups and reduce capturing groups to non-capturing groups
          +      // where possible.
          +      for (var i = 1; i < capturedGroups.length; ++i) {
          +        if (-1 === capturedGroups[i]) {
          +          capturedGroups[i] = ++capturedGroupIndex;
          +        }
          +      }
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        var p = parts[i];
          +        if (p === '(') {
          +          ++groupIndex;
          +          if (capturedGroups[groupIndex] === undefined) {
          +            parts[i] = '(?:';
          +          }
          +        } else if ('\\' === p.charAt(0)) {
          +          var decimalValue = +p.substring(1);
          +          if (decimalValue && decimalValue <= groupIndex) {
          +            parts[i] = '\\' + capturedGroups[groupIndex];
          +          }
          +        }
          +      }
          +
          +      // Remove any prefix anchors so that the output will match anywhere.
          +      // ^^ really does mean an anchored match though.
          +      for (var i = 0, groupIndex = 0; i < n; ++i) {
          +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
          +      }
          +
          +      // Expand letters to groupts to handle mixing of case-sensitive and
          +      // case-insensitive patterns if necessary.
          +      if (regex.ignoreCase && needToFoldCase) {
          +        for (var i = 0; i < n; ++i) {
          +          var p = parts[i];
          +          var ch0 = p.charAt(0);
          +          if (p.length >= 2 && ch0 === '[') {
          +            parts[i] = caseFoldCharset(p);
          +          } else if (ch0 !== '\\') {
          +            // TODO: handle letters in numeric escapes.
          +            parts[i] = p.replace(
          +                /[a-zA-Z]/g,
          +                function (ch) {
          +                  var cc = ch.charCodeAt(0);
          +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
          +                });
          +          }
          +        }
          +      }
          +
          +      return parts.join('');
          +    }
          +
          +    var rewritten = [];
          +    for (var i = 0, n = regexs.length; i < n; ++i) {
          +      var regex = regexs[i];
          +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
          +      rewritten.push(
          +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
          +    }
          +
          +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
          +  }
          +
          +  var PR_innerHtmlWorks = null;
          +  function getInnerHtml(node) {
          +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
          +    // an html description of well formed XML and the containing tag is a PRE
          +    // tag, so we detect that case and emulate innerHTML.
          +    if (null === PR_innerHtmlWorks) {
          +      var testNode = document.createElement('PRE');
          +      testNode.appendChild(
          +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
          +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
          +    }
          +
          +    if (PR_innerHtmlWorks) {
          +      var content = node.innerHTML;
          +      // XMP tags contain unescaped entities so require special handling.
          +      if (isRawContent(node)) {
          +        content = textToHtml(content);
          +      } else if (!isPreformatted(node, content)) {
          +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
          +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
          +      }
          +      return content;
          +    }
          +
          +    var out = [];
          +    for (var child = node.firstChild; child; child = child.nextSibling) {
          +      normalizedHtml(child, out);
          +    }
          +    return out.join('');
          +  }
          +
          +  /** returns a function that expand tabs to spaces.  This function can be fed
          +    * successive chunks of text, and will maintain its own internal state to
          +    * keep track of how tabs are expanded.
          +    * @return {function (string) : string} a function that takes
          +    *   plain text and return the text with tabs expanded.
          +    * @private
          +    */
          +  function makeTabExpander(tabWidth) {
          +    var SPACES = '                ';
          +    var charInLine = 0;
          +
          +    return function (plainText) {
          +      // walk over each character looking for tabs and newlines.
          +      // On tabs, expand them.  On newlines, reset charInLine.
          +      // Otherwise increment charInLine
          +      var out = null;
          +      var pos = 0;
          +      for (var i = 0, n = plainText.length; i < n; ++i) {
          +        var ch = plainText.charAt(i);
          +
          +        switch (ch) {
          +          case '\t':
          +            if (!out) { out = []; }
          +            out.push(plainText.substring(pos, i));
          +            // calculate how much space we need in front of this part
          +            // nSpaces is the amount of padding -- the number of spaces needed
          +            // to move us to the next column, where columns occur at factors of
          +            // tabWidth.
          +            var nSpaces = tabWidth - (charInLine % tabWidth);
          +            charInLine += nSpaces;
          +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
          +              out.push(SPACES.substring(0, nSpaces));
          +            }
          +            pos = i + 1;
          +            break;
          +          case '\n':
          +            charInLine = 0;
          +            break;
          +          default:
          +            ++charInLine;
          +        }
          +      }
          +      if (!out) { return plainText; }
          +      out.push(plainText.substring(pos));
          +      return out.join('');
          +    };
          +  }
          +
          +  var pr_chunkPattern = new RegExp(
          +      '[^<]+'  // A run of characters other than '<'
          +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
          +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
          +      // a probable tag that should not be highlighted
          +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
          +      + '|<',  // A '<' that does not begin a larger chunk
          +      'g');
          +  var pr_commentPrefix = /^<\!--/;
          +  var pr_cdataPrefix = /^<!\[CDATA\[/;
          +  var pr_brPrefix = /^<br\b/i;
          +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
          +
          +  /** split markup into chunks of html tags (style null) and
          +    * plain text (style {@link #PR_PLAIN}), converting tags which are
          +    * significant for tokenization (<br>) into their textual equivalent.
          +    *
          +    * @param {string} s html where whitespace is considered significant.
          +    * @return {Object} source code and extracted tags.
          +    * @private
          +    */
          +  function extractTags(s) {
          +    // since the pattern has the 'g' modifier and defines no capturing groups,
          +    // this will return a list of all chunks which we then classify and wrap as
          +    // PR_Tokens
          +    var matches = s.match(pr_chunkPattern);
          +    var sourceBuf = [];
          +    var sourceBufLen = 0;
          +    var extractedTags = [];
          +    if (matches) {
          +      for (var i = 0, n = matches.length; i < n; ++i) {
          +        var match = matches[i];
          +        if (match.length > 1 && match.charAt(0) === '<') {
          +          if (pr_commentPrefix.test(match)) { continue; }
          +          if (pr_cdataPrefix.test(match)) {
          +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
          +            sourceBuf.push(match.substring(9, match.length - 3));
          +            sourceBufLen += match.length - 12;
          +          } else if (pr_brPrefix.test(match)) {
          +            // <br> tags are lexically significant so convert them to text.
          +            // This is undone later.
          +            sourceBuf.push('\n');
          +            ++sourceBufLen;
          +          } else {
          +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
          +              // A <span class="nocode"> will start a section that should be
          +              // ignored.  Continue walking the list until we see a matching end
          +              // tag.
          +              var name = match.match(pr_tagNameRe)[2];
          +              var depth = 1;
          +              var j;
          +              end_tag_loop:
          +              for (j = i + 1; j < n; ++j) {
          +                var name2 = matches[j].match(pr_tagNameRe);
          +                if (name2 && name2[2] === name) {
          +                  if (name2[1] === '/') {
          +                    if (--depth === 0) { break end_tag_loop; }
          +                  } else {
          +                    ++depth;
          +                  }
          +                }
          +              }
          +              if (j < n) {
          +                extractedTags.push(
          +                    sourceBufLen, matches.slice(i, j + 1).join(''));
          +                i = j;
          +              } else {  // Ignore unclosed sections.
          +                extractedTags.push(sourceBufLen, match);
          +              }
          +            } else {
          +              extractedTags.push(sourceBufLen, match);
          +            }
          +          }
          +        } else {
          +          var literalText = htmlToText(match);
          +          sourceBuf.push(literalText);
          +          sourceBufLen += literalText.length;
          +        }
          +      }
          +    }
          +    return { source: sourceBuf.join(''), tags: extractedTags };
          +  }
          +
          +  /** True if the given tag contains a class attribute with the nocode class. */
          +  function isNoCodeTag(tag) {
          +    return !!tag
          +        // First canonicalize the representation of attributes
          +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
          +                 ' $1="$2$3$4"')
          +        // Then look for the attribute we want.
          +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
          +  }
          +
          +  /**
          +   * Apply the given language handler to sourceCode and add the resulting
          +   * decorations to out.
          +   * @param {number} basePos the index of sourceCode within the chunk of source
          +   *    whose decorations are already present on out.
          +   */
          +  function appendDecorations(basePos, sourceCode, langHandler, out) {
          +    if (!sourceCode) { return; }
          +    var job = {
          +      source: sourceCode,
          +      basePos: basePos
          +    };
          +    langHandler(job);
          +    out.push.apply(out, job.decorations);
          +  }
          +
          +  /** Given triples of [style, pattern, context] returns a lexing function,
          +    * The lexing function interprets the patterns to find token boundaries and
          +    * returns a decoration list of the form
          +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
          +    * where index_n is an index into the sourceCode, and style_n is a style
          +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
          +    * all characters in sourceCode[index_n-1:index_n].
          +    *
          +    * The stylePatterns is a list whose elements have the form
          +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
          +    *
          +    * Style is a style constant like PR_PLAIN, or can be a string of the
          +    * form 'lang-FOO', where FOO is a language extension describing the
          +    * language of the portion of the token in $1 after pattern executes.
          +    * E.g., if style is 'lang-lisp', and group 1 contains the text
          +    * '(hello (world))', then that portion of the token will be passed to the
          +    * registered lisp handler for formatting.
          +    * The text before and after group 1 will be restyled using this decorator
          +    * so decorators should take care that this doesn't result in infinite
          +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
          +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
          +    * '<script>foo()<\/script>', which would cause the current decorator to
          +    * be called with '<script>' which would not match the same rule since
          +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
          +    * the generic tag rule.  The handler registered for the 'js' extension would
          +    * then be called with 'foo()', and finally, the current decorator would
          +    * be called with '<\/script>' which would not match the original rule and
          +    * so the generic tag rule would identify it as a tag.
          +    *
          +    * Pattern must only match prefixes, and if it matches a prefix, then that
          +    * match is considered a token with the same style.
          +    *
          +    * Context is applied to the last non-whitespace, non-comment token
          +    * recognized.
          +    *
          +    * Shortcut is an optional string of characters, any of which, if the first
          +    * character, gurantee that this pattern and only this pattern matches.
          +    *
          +    * @param {Array} shortcutStylePatterns patterns that always start with
          +    *   a known character.  Must have a shortcut string.
          +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
          +    *   order if the shortcut ones fail.  May have shortcuts.
          +    *
          +    * @return {function (Object)} a
          +    *   function that takes source code and returns a list of decorations.
          +    */
          +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
          +    var shortcuts = {};
          +    var tokenizer;
          +    (function () {
          +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
          +      var allRegexs = [];
          +      var regexKeys = {};
          +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
          +        var patternParts = allPatterns[i];
          +        var shortcutChars = patternParts[3];
          +        if (shortcutChars) {
          +          for (var c = shortcutChars.length; --c >= 0;) {
          +            shortcuts[shortcutChars.charAt(c)] = patternParts;
          +          }
          +        }
          +        var regex = patternParts[1];
          +        var k = '' + regex;
          +        if (!regexKeys.hasOwnProperty(k)) {
          +          allRegexs.push(regex);
          +          regexKeys[k] = null;
          +        }
          +      }
          +      allRegexs.push(/[\0-\uffff]/);
          +      tokenizer = combinePrefixPatterns(allRegexs);
          +    })();
          +
          +    var nPatterns = fallthroughStylePatterns.length;
          +    var notWs = /\S/;
          +
          +    /**
          +     * Lexes job.source and produces an output array job.decorations of style
          +     * classes preceded by the position at which they start in job.source in
          +     * order.
          +     *
          +     * @param {Object} job an object like {@code
          +     *    source: {string} sourceText plain text,
          +     *    basePos: {int} position of job.source in the larger chunk of
          +     *        sourceCode.
          +     * }
          +     */
          +    var decorate = function (job) {
          +      var sourceCode = job.source, basePos = job.basePos;
          +      /** Even entries are positions in source in ascending order.  Odd enties
          +        * are style markers (e.g., PR_COMMENT) that run from that position until
          +        * the end.
          +        * @type {Array.<number|string>}
          +        */
          +      var decorations = [basePos, PR_PLAIN];
          +      var pos = 0;  // index into sourceCode
          +      var tokens = sourceCode.match(tokenizer) || [];
          +      var styleCache = {};
          +
          +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
          +        var token = tokens[ti];
          +        var style = styleCache[token];
          +        var match = void 0;
          +
          +        var isEmbedded;
          +        if (typeof style === 'string') {
          +          isEmbedded = false;
          +        } else {
          +          var patternParts = shortcuts[token.charAt(0)];
          +          if (patternParts) {
          +            match = token.match(patternParts[1]);
          +            style = patternParts[0];
          +          } else {
          +            for (var i = 0; i < nPatterns; ++i) {
          +              patternParts = fallthroughStylePatterns[i];
          +              match = token.match(patternParts[1]);
          +              if (match) {
          +                style = patternParts[0];
          +                break;
          +              }
          +            }
          +
          +            if (!match) {  // make sure that we make progress
          +              style = PR_PLAIN;
          +            }
          +          }
          +
          +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
          +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
          +            isEmbedded = false;
          +            style = PR_SOURCE;
          +          }
          +
          +          if (!isEmbedded) { styleCache[token] = style; }
          +        }
          +
          +        var tokenStart = pos;
          +        pos += token.length;
          +
          +        if (!isEmbedded) {
          +          decorations.push(basePos + tokenStart, style);
          +        } else {  // Treat group 1 as an embedded block of source code.
          +          var embeddedSource = match[1];
          +          var embeddedSourceStart = token.indexOf(embeddedSource);
          +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
          +          if (match[2]) {
          +            // If embeddedSource can be blank, then it would match at the
          +            // beginning which would cause us to infinitely recurse on the
          +            // entire token, so we catch the right context in match[2].
          +            embeddedSourceEnd = token.length - match[2].length;
          +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
          +          }
          +          var lang = style.substring(5);
          +          // Decorate the left of the embedded source
          +          appendDecorations(
          +              basePos + tokenStart,
          +              token.substring(0, embeddedSourceStart),
          +              decorate, decorations);
          +          // Decorate the embedded source
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceStart,
          +              embeddedSource,
          +              langHandlerForExtension(lang, embeddedSource),
          +              decorations);
          +          // Decorate the right of the embedded section
          +          appendDecorations(
          +              basePos + tokenStart + embeddedSourceEnd,
          +              token.substring(embeddedSourceEnd),
          +              decorate, decorations);
          +        }
          +      }
          +      job.decorations = decorations;
          +    };
          +    return decorate;
          +  }
          +
          +  /** returns a function that produces a list of decorations from source text.
          +    *
          +    * This code treats ", ', and ` as string delimiters, and \ as a string
          +    * escape.  It does not recognize perl's qq() style strings.
          +    * It has no special handling for double delimiter escapes as in basic, or
          +    * the tripled delimiters used in python, but should work on those regardless
          +    * although in those cases a single string literal may be broken up into
          +    * multiple adjacent string literals.
          +    *
          +    * It recognizes C, C++, and shell style comments.
          +    *
          +    * @param {Object} options a set of optional parameters.
          +    * @return {function (Object)} a function that examines the source code
          +    *     in the input job and builds the decoration list.
          +    */
          +  function sourceDecorator(options) {
          +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
          +    if (options['tripleQuotedStrings']) {
          +      // '''multi-line-string''', 'single-line-string', and double-quoted
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
          +           null, '\'"']);
          +    } else if (options['multiLineStrings']) {
          +      // 'multi-line-string', "multi-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
          +           null, '\'"`']);
          +    } else {
          +      // 'single-line-string', "single-line-string"
          +      shortcutStylePatterns.push(
          +          [PR_STRING,
          +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
          +           null, '"\'']);
          +    }
          +    if (options['verbatimStrings']) {
          +      // verbatim-string-literal production from the C# grammar.  See issue 93.
          +      fallthroughStylePatterns.push(
          +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
          +    }
          +    if (options['hashComments']) {
          +      if (options['cStyleComments']) {
          +        // Stop C preprocessor declarations at an unclosed open comment
          +        shortcutStylePatterns.push(
          +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
          +             null, '#']);
          +        fallthroughStylePatterns.push(
          +            [PR_STRING,
          +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
          +             null]);
          +      } else {
          +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
          +      }
          +    }
          +    if (options['cStyleComments']) {
          +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
          +      fallthroughStylePatterns.push(
          +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
          +    }
          +    if (options['regexLiterals']) {
          +      var REGEX_LITERAL = (
          +          // A regular expression literal starts with a slash that is
          +          // not followed by * or / so that it is not confused with
          +          // comments.
          +          '/(?=[^/*])'
          +          // and then contains any number of raw characters,
          +          + '(?:[^/\\x5B\\x5C]'
          +          // escape sequences (\x5C),
          +          +    '|\\x5C[\\s\\S]'
          +          // or non-nesting character sets (\x5B\x5D);
          +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
          +          // finally closed by a /.
          +          + '/');
          +      fallthroughStylePatterns.push(
          +          ['lang-regex',
          +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
          +           ]);
          +    }
          +
          +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
          +    if (keywords.length) {
          +      fallthroughStylePatterns.push(
          +          [PR_KEYWORD,
          +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
          +    }
          +
          +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
          +    fallthroughStylePatterns.push(
          +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
          +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
          +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
          +        [PR_LITERAL,
          +         new RegExp(
          +             '^(?:'
          +             // A hex number
          +             + '0x[a-f0-9]+'
          +             // or an octal or decimal number,
          +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
          +             // possibly in scientific notation
          +             + '(?:e[+\\-]?\\d+)?'
          +             + ')'
          +             // with an optional modifier like UL for unsigned long
          +             + '[a-z]*', 'i'),
          +         null, '0123456789'],
          +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
          +
          +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
          +  }
          +
          +  var decorateSource = sourceDecorator({
          +        'keywords': ALL_KEYWORDS,
          +        'hashComments': true,
          +        'cStyleComments': true,
          +        'multiLineStrings': true,
          +        'regexLiterals': true
          +      });
          +
          +  /** Breaks {@code job.source} around style boundaries in
          +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
          +    * and leaves the result in {@code job.prettyPrintedHtml}.
          +    * @param {Object} job like {
          +    *    source: {string} source as plain text,
          +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
          +    *                   html preceded by their position in {@code job.source}
          +    *                   in order
          +    *    decorations: {Array.<number|string} an array of style classes preceded
          +    *                 by the position at which they start in job.source in order
          +    * }
          +    * @private
          +    */
          +  function recombineTagsAndDecorations(job) {
          +    var sourceText = job.source;
          +    var extractedTags = job.extractedTags;
          +    var decorations = job.decorations;
          +
          +    var html = [];
          +    // index past the last char in sourceText written to html
          +    var outputIdx = 0;
          +
          +    var openDecoration = null;
          +    var currentDecoration = null;
          +    var tagPos = 0;  // index into extractedTags
          +    var decPos = 0;  // index into decorations
          +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
          +
          +    var adjacentSpaceRe = /([\r\n ]) /g;
          +    var startOrSpaceRe = /(^| ) /gm;
          +    var newlineRe = /\r\n?|\n/g;
          +    var trailingSpaceRe = /[ \r\n]$/;
          +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
          +
          +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
          +    var isIE678 = window['_pr_isIE6']();
          +    var lineBreakHtml = (
          +        isIE678
          +        ? (job.sourceNode.tagName === 'PRE'
          +           // Use line feeds instead of <br>s so that copying and pasting works
          +           // on IE.
          +           // Doing this on other browsers breaks lots of stuff since \r\n is
          +           // treated as two newlines on Firefox.
          +           ? (isIE678 === 6 ? '&#160;\r\n' :
          +              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
          +           // IE collapses multiple adjacent <br>s into 1 line break.
          +           // Prefix every newline with '&#160;' to prevent such behavior.
          +           // &nbsp; is the same as &#160; but works in XML as well as HTML.
          +           : '&#160;<br />')
          +        : '<br />');
          +
          +    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
          +    // number of the first line.
          +    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
          +    var lineBreaker;
          +    if (numberLines) {
          +      var lineBreaks = [];
          +      for (var i = 0; i < 10; ++i) {
          +        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
          +      }
          +      var lineNum = numberLines[1] && numberLines[1].length
          +          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
          +      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
          +      if (lineNum) {
          +        html.push(' value="', lineNum + 1, '"');
          +      }
          +      html.push('>');
          +      lineBreaker = function () {
          +        var lb = lineBreaks[++lineNum % 10];
          +        // If a decoration is open, we need to close it before closing a list-item
          +        // and reopen it on the other side of the list item.
          +        return openDecoration
          +            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
          +      };
          +    } else {
          +      lineBreaker = lineBreakHtml;
          +    }
          +
          +    // A helper function that is responsible for opening sections of decoration
          +    // and outputing properly escaped chunks of source
          +    function emitTextUpTo(sourceIdx) {
          +      if (sourceIdx > outputIdx) {
          +        if (openDecoration && openDecoration !== currentDecoration) {
          +          // Close the current decoration
          +          html.push('</span>');
          +          openDecoration = null;
          +        }
          +        if (!openDecoration && currentDecoration) {
          +          openDecoration = currentDecoration;
          +          html.push('<span class="', openDecoration, '">');
          +        }
          +        // This interacts badly with some wikis which introduces paragraph tags
          +        // into pre blocks for some strange reason.
          +        // It's necessary for IE though which seems to lose the preformattedness
          +        // of <pre> tags when their innerHTML is assigned.
          +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
          +        // and it serves to undo the conversion of <br>s to newlines done in
          +        // chunkify.
          +        var htmlChunk = textToHtml(
          +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
          +            .replace(lastWasSpace
          +                     ? startOrSpaceRe
          +                     : adjacentSpaceRe, '$1&#160;');
          +        // Keep track of whether we need to escape space at the beginning of the
          +        // next chunk.
          +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
          +        html.push(htmlChunk.replace(newlineRe, lineBreaker));
          +        outputIdx = sourceIdx;
          +      }
          +    }
          +
          +    while (true) {
          +      // Determine if we're going to consume a tag this time around.  Otherwise
          +      // we consume a decoration or exit.
          +      var outputTag;
          +      if (tagPos < extractedTags.length) {
          +        if (decPos < decorations.length) {
          +          // Pick one giving preference to extractedTags since we shouldn't open
          +          // a new style that we're going to have to immediately close in order
          +          // to output a tag.
          +          outputTag = extractedTags[tagPos] <= decorations[decPos];
          +        } else {
          +          outputTag = true;
          +        }
          +      } else {
          +        outputTag = false;
          +      }
          +      // Consume either a decoration or a tag or exit.
          +      if (outputTag) {
          +        emitTextUpTo(extractedTags[tagPos]);
          +        if (openDecoration) {
          +          // Close the current decoration
          +          html.push('</span>');
          +          openDecoration = null;
          +        }
          +        html.push(extractedTags[tagPos + 1]);
          +        tagPos += 2;
          +      } else if (decPos < decorations.length) {
          +        emitTextUpTo(decorations[decPos]);
          +        currentDecoration = decorations[decPos + 1];
          +        decPos += 2;
          +      } else {
          +        break;
          +      }
          +    }
          +    emitTextUpTo(sourceText.length);
          +    if (openDecoration) {
          +      html.push('</span>');
          +    }
          +    if (numberLines) { html.push('</li></ol>'); }
          +    job.prettyPrintedHtml = html.join('');
          +  }
          +
          +  /** Maps language-specific file extensions to handlers. */
          +  var langHandlerRegistry = {};
          +  /** Register a language handler for the given file extensions.
          +    * @param {function (Object)} handler a function from source code to a list
          +    *      of decorations.  Takes a single argument job which describes the
          +    *      state of the computation.   The single parameter has the form
          +    *      {@code {
          +    *        source: {string} as plain text.
          +    *        decorations: {Array.<number|string>} an array of style classes
          +    *                     preceded by the position at which they start in
          +    *                     job.source in order.
          +    *                     The language handler should assigned this field.
          +    *        basePos: {int} the position of source in the larger source chunk.
          +    *                 All positions in the output decorations array are relative
          +    *                 to the larger source chunk.
          +    *      } }
          +    * @param {Array.<string>} fileExtensions
          +    */
          +  function registerLangHandler(handler, fileExtensions) {
          +    for (var i = fileExtensions.length; --i >= 0;) {
          +      var ext = fileExtensions[i];
          +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
          +        langHandlerRegistry[ext] = handler;
          +      } else if ('console' in window) {
          +        console['warn']('cannot override language handler %s', ext);
          +      }
          +    }
          +  }
          +  function langHandlerForExtension(extension, source) {
          +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
          +      // Treat it as markup if the first non whitespace character is a < and
          +      // the last non-whitespace character is a >.
          +      extension = /^\s*</.test(source)
          +          ? 'default-markup'
          +          : 'default-code';
          +    }
          +    return langHandlerRegistry[extension];
          +  }
          +  registerLangHandler(decorateSource, ['default-code']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [],
          +          [
          +           [PR_PLAIN,       /^[^<?]+/],
          +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
          +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
          +           // Unescaped content in an unknown language
          +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
          +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
          +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
          +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
          +           // Unescaped content in javascript.  (Or possibly vbscript).
          +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
          +           // Contains unescaped stylesheet content
          +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
          +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
          +          ]),
          +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
          +  registerLangHandler(
          +      createSimpleLexer(
          +          [
          +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
          +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
          +           ],
          +          [
          +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
          +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
          +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
          +           [PR_PUNCTUATION,  /^[=<>\/]+/],
          +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
          +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
          +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
          +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
          +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
          +           ]),
          +      ['in.tag']);
          +  registerLangHandler(
          +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CPP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true
          +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': 'null true false'
          +        }), ['json']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': CSHARP_KEYWORDS,
          +          'hashComments': true,
          +          'cStyleComments': true,
          +          'verbatimStrings': true
          +        }), ['cs']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JAVA_KEYWORDS,
          +          'cStyleComments': true
          +        }), ['java']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': SH_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true
          +        }), ['bsh', 'csh', 'sh']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PYTHON_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'tripleQuotedStrings': true
          +        }), ['cv', 'py']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': PERL_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['perl', 'pl', 'pm']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': RUBY_KEYWORDS,
          +          'hashComments': true,
          +          'multiLineStrings': true,
          +          'regexLiterals': true
          +        }), ['rb']);
          +  registerLangHandler(sourceDecorator({
          +          'keywords': JSCRIPT_KEYWORDS,
          +          'cStyleComments': true,
          +          'regexLiterals': true
          +        }), ['js']);
          +  registerLangHandler(
          +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
          +
          +  function applyDecorator(job) {
          +    var sourceCodeHtml = job.sourceCodeHtml;
          +    var opt_langExtension = job.langExtension;
          +
          +    // Prepopulate output in case processing fails with an exception.
          +    job.prettyPrintedHtml = sourceCodeHtml;
          +
          +    try {
          +      // Extract tags, and convert the source code to plain text.
          +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
          +      /** Plain text. @type {string} */
          +      var source = sourceAndExtractedTags.source;
          +      job.source = source;
          +      job.basePos = 0;
          +
          +      /** Even entries are positions in source in ascending order.  Odd entries
          +        * are tags that were extracted at that position.
          +        * @type {Array.<number|string>}
          +        */
          +      job.extractedTags = sourceAndExtractedTags.tags;
          +
          +      // Apply the appropriate language handler
          +      langHandlerForExtension(opt_langExtension, source)(job);
          +      // Integrate the decorations and tags back into the source code to produce
          +      // a decorated html string which is left in job.prettyPrintedHtml.
          +      recombineTagsAndDecorations(job);
          +    } catch (e) {
          +      if ('console' in window) {
          +        console['log'](e && e['stack'] ? e['stack'] : e);
          +      }
          +    }
          +  }
          +
          +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
          +    var job = {
          +      sourceCodeHtml: sourceCodeHtml,
          +      langExtension: opt_langExtension
          +    };
          +    applyDecorator(job);
          +    return job.prettyPrintedHtml;
          +  }
          +
          +  function prettyPrint(opt_whenDone) {
          +    function byTagName(tn) { return document.getElementsByTagName(tn); }
          +    // fetch a list of nodes to rewrite
          +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
          +    var elements = [];
          +    for (var i = 0; i < codeSegments.length; ++i) {
          +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
          +        elements.push(codeSegments[i][j]);
          +      }
          +    }
          +    codeSegments = null;
          +
          +    var clock = Date;
          +    if (!clock['now']) {
          +      clock = { 'now': function () { return (new Date).getTime(); } };
          +    }
          +
          +    // The loop is broken into a series of continuations to make sure that we
          +    // don't make the browser unresponsive when rewriting a large page.
          +    var k = 0;
          +    var prettyPrintingJob;
          +
          +    function doWork() {
          +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
          +                     clock.now() + 250 /* ms */ :
          +                     Infinity);
          +      for (; k < elements.length && clock.now() < endTime; k++) {
          +        var cs = elements[k];
          +        // [JACOCO] 'prettyprint' -> 'source'
          +        if (cs.className && cs.className.indexOf('source') >= 0) {
          +          // If the classes includes a language extensions, use it.
          +          // Language extensions can be specified like
          +          //     <pre class="prettyprint lang-cpp">
          +          // the language extension "cpp" is used to find a language handler as
          +          // passed to PR_registerLangHandler.
          +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
          +          if (langExtension) { langExtension = langExtension[1]; }
          +
          +          // make sure this is not nested in an already prettified element
          +          var nested = false;
          +          for (var p = cs.parentNode; p; p = p.parentNode) {
          +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
          +                 p.tagName === 'xmp') &&
          +                // [JACOCO] 'prettyprint' -> 'source'
          +                p.className && p.className.indexOf('source') >= 0) {
          +              nested = true;
          +              break;
          +            }
          +          }
          +          if (!nested) {
          +            // fetch the content as a snippet of properly escaped HTML.
          +            // Firefox adds newlines at the end.
          +            var content = getInnerHtml(cs);
          +            content = content.replace(/(?:\r\n?|\n)$/, '');
          +
          +            // do the pretty printing
          +            prettyPrintingJob = {
          +              sourceCodeHtml: content,
          +              langExtension: langExtension,
          +              sourceNode: cs
          +            };
          +            applyDecorator(prettyPrintingJob);
          +            replaceWithPrettyPrintedHtml();
          +          }
          +        }
          +      }
          +      if (k < elements.length) {
          +        // finish up in a continuation
          +        setTimeout(doWork, 250);
          +      } else if (opt_whenDone) {
          +        opt_whenDone();
          +      }
          +    }
          +
          +    function replaceWithPrettyPrintedHtml() {
          +      var newContent = prettyPrintingJob.prettyPrintedHtml;
          +      if (!newContent) { return; }
          +      var cs = prettyPrintingJob.sourceNode;
          +
          +      // push the prettified html back into the tag.
          +      if (!isRawContent(cs)) {
          +        // just replace the old html with the new
          +        cs.innerHTML = newContent;
          +      } else {
          +        // we need to change the tag to a <pre> since <xmp>s do not allow
          +        // embedded tags such as the span tags used to attach styles to
          +        // sections of source code.
          +        var pre = document.createElement('PRE');
          +        for (var i = 0; i < cs.attributes.length; ++i) {
          +          var a = cs.attributes[i];
          +          if (a.specified) {
          +            var aname = a.name.toLowerCase();
          +            if (aname === 'class') {
          +              pre.className = a.value;  // For IE 6
          +            } else {
          +              pre.setAttribute(a.name, a.value);
          +            }
          +          }
          +        }
          +        pre.innerHTML = newContent;
          +
          +        // remove the old
          +        cs.parentNode.replaceChild(pre, cs);
          +        cs = pre;
          +      }
          +    }
          +
          +    doWork();
          +  }
          +
          +  window['PR_normalizedHtml'] = normalizedHtml;
          +  window['prettyPrintOne'] = prettyPrintOne;
          +  window['prettyPrint'] = prettyPrint;
          +  window['PR'] = {
          +        'combinePrefixPatterns': combinePrefixPatterns,
          +        'createSimpleLexer': createSimpleLexer,
          +        'registerLangHandler': registerLangHandler,
          +        'sourceDecorator': sourceDecorator,
          +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
          +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
          +        'PR_COMMENT': PR_COMMENT,
          +        'PR_DECLARATION': PR_DECLARATION,
          +        'PR_KEYWORD': PR_KEYWORD,
          +        'PR_LITERAL': PR_LITERAL,
          +        'PR_NOCODE': PR_NOCODE,
          +        'PR_PLAIN': PR_PLAIN,
          +        'PR_PUNCTUATION': PR_PUNCTUATION,
          +        'PR_SOURCE': PR_SOURCE,
          +        'PR_STRING': PR_STRING,
          +        'PR_TAG': PR_TAG,
          +        'PR_TYPE': PR_TYPE
          +      };
          +})();
          diff --git a/target/site/jacoco/jacoco-resources/redbar.gif b/target/site/jacoco/jacoco-resources/redbar.gif
          new file mode 100644
          index 0000000..c2f7146
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/redbar.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/report.css b/target/site/jacoco/jacoco-resources/report.css
          new file mode 100644
          index 0000000..dd936bc
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-resources/report.css
          @@ -0,0 +1,243 @@
          +body, td {
          +  font-family:sans-serif;
          +  font-size:10pt;
          +}
          +
          +h1 {
          +  font-weight:bold;
          +  font-size:18pt;
          +}
          +
          +.breadcrumb {
          +  border:#d6d3ce 1px solid;
          +  padding:2px 4px 2px 4px;
          +}
          +
          +.breadcrumb .info {
          +  float:right;
          +}
          +
          +.breadcrumb .info a {
          +  margin-left:8px;
          +}
          +
          +.el_report {
          +  padding-left:18px;
          +  background-image:url(report.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_group {
          +  padding-left:18px;
          +  background-image:url(group.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_bundle {
          +  padding-left:18px;
          +  background-image:url(bundle.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_package {
          +  padding-left:18px;
          +  background-image:url(package.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_class {
          +  padding-left:18px;
          +  background-image:url(class.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_source {
          +  padding-left:18px;
          +  background-image:url(source.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_method {
          +  padding-left:18px;
          +  background-image:url(method.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +.el_session {
          +  padding-left:18px;
          +  background-image:url(session.gif);
          +  background-position:left center;
          +  background-repeat:no-repeat;
          +}
          +
          +pre.source {
          +  border:#d6d3ce 1px solid;
          +  font-family:monospace;
          +}
          +
          +pre.source ol {
          +  margin-bottom: 0px;
          +  margin-top: 0px;
          +}
          +
          +pre.source li {
          +  border-left: 1px solid #D6D3CE;
          +  color: #A0A0A0;
          +  padding-left: 0px;
          +}
          +
          +pre.source span.fc {
          +  background-color:#ccffcc;
          +}
          +
          +pre.source span.nc {
          +  background-color:#ffaaaa;
          +}
          +
          +pre.source span.pc {
          +  background-color:#ffffcc;
          +}
          +
          +pre.source span.bfc {
          +  background-image: url(branchfc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bfc:hover {
          +  background-color:#80ff80;
          +}
          +
          +pre.source span.bnc {
          +  background-image: url(branchnc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bnc:hover {
          +  background-color:#ff8080;
          +}
          +
          +pre.source span.bpc {
          +  background-image: url(branchpc.gif);
          +  background-repeat: no-repeat;
          +  background-position: 2px center;
          +}
          +
          +pre.source span.bpc:hover {
          +  background-color:#ffff80;
          +}
          +
          +table.coverage {
          +  empty-cells:show;
          +  border-collapse:collapse;
          +}
          +
          +table.coverage thead {
          +  background-color:#e0e0e0;
          +}
          +
          +table.coverage thead td {
          +  white-space:nowrap;
          +  padding:2px 14px 0px 6px;
          +  border-bottom:#b0b0b0 1px solid;
          +}
          +
          +table.coverage thead td.bar {
          +  border-left:#cccccc 1px solid;
          +}
          +
          +table.coverage thead td.ctr1 {
          +  text-align:right;
          +  border-left:#cccccc 1px solid;
          +}
          +
          +table.coverage thead td.ctr2 {
          +  text-align:right;
          +  padding-left:2px;
          +}
          +
          +table.coverage thead td.sortable {
          +  cursor:pointer;
          +  background-image:url(sort.gif);
          +  background-position:right center;
          +  background-repeat:no-repeat;
          +}
          +
          +table.coverage thead td.up {
          +  background-image:url(up.gif);
          +}
          +
          +table.coverage thead td.down {
          +  background-image:url(down.gif);
          +}
          +
          +table.coverage tbody td {
          +  white-space:nowrap;
          +  padding:2px 6px 2px 6px;
          +  border-bottom:#d6d3ce 1px solid;
          +}
          +
          +table.coverage tbody tr:hover {
          +  background: #f0f0d0 !important;
          +}
          +
          +table.coverage tbody td.bar {
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tbody td.ctr1 {
          +  text-align:right;
          +  padding-right:14px;
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tbody td.ctr2 {
          +  text-align:right;
          +  padding-right:14px;
          +  padding-left:2px;
          +}
          +
          +table.coverage tfoot td {
          +  white-space:nowrap;
          +  padding:2px 6px 2px 6px;
          +}
          +
          +table.coverage tfoot td.bar {
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tfoot td.ctr1 {
          +  text-align:right;
          +  padding-right:14px;
          +  border-left:#e8e8e8 1px solid;
          +}
          +
          +table.coverage tfoot td.ctr2 {
          +  text-align:right;
          +  padding-right:14px;
          +  padding-left:2px;
          +}
          +
          +.footer {
          +  margin-top:20px;
          +  border-top:#d6d3ce 1px solid;
          +  padding-top:2px;
          +  font-size:8pt;
          +  color:#a0a0a0;
          +}
          +
          +.footer a {
          +  color:#a0a0a0;
          +}
          +
          +.right {
          +  float:right;
          +}
          diff --git a/target/site/jacoco/jacoco-resources/report.gif b/target/site/jacoco/jacoco-resources/report.gif
          new file mode 100644
          index 0000000..8547be5
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/report.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/session.gif b/target/site/jacoco/jacoco-resources/session.gif
          new file mode 100644
          index 0000000..0151bad
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/session.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/sort.gif b/target/site/jacoco/jacoco-resources/sort.gif
          new file mode 100644
          index 0000000..6757c2c
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/sort.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/sort.js b/target/site/jacoco/jacoco-resources/sort.js
          new file mode 100644
          index 0000000..e269fe3
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-resources/sort.js
          @@ -0,0 +1,148 @@
          +/*******************************************************************************
          + * Copyright (c) 2009, 2018 Mountainminds GmbH & Co. KG and Contributors
          + * This program and the accompanying materials are made available under
          + * the terms of the Eclipse Public License 2.0 which is available at
          + * http://www.eclipse.org/legal/epl-2.0
          + *
          + * SPDX-License-Identifier: EPL-2.0
          + *
          + * Contributors:
          + *    Marc R. Hoffmann - initial API and implementation
          + *
          + *******************************************************************************/
          +
          +(function () {
          +
          +  /**
          +   * Sets the initial sorting derived from the hash.
          +   *
          +   * @param linkelementids
          +   *          list of element ids to search for links to add sort inidcator
          +   *          hash links
          +   */
          +  function initialSort(linkelementids) {
          +    window.linkelementids = linkelementids;
          +    var hash = window.location.hash;
          +    if (hash) {
          +      var m = hash.match(/up-./);
          +      if (m) {
          +        var header = window.document.getElementById(m[0].charAt(3));
          +        if (header) {
          +          sortColumn(header, true);
          +        }
          +        return;
          +      }
          +      var m = hash.match(/dn-./);
          +      if (m) {
          +        var header = window.document.getElementById(m[0].charAt(3));
          +        if (header) {
          +          sortColumn(header, false);
          +        }
          +        return
          +      }
          +    }
          +  }
          +
          +  /**
          +   * Sorts the columns with the given header dependening on the current sort state.
          +   */
          +  function toggleSort(header) {
          +    var sortup = header.className.indexOf('down ') == 0;
          +    sortColumn(header, sortup);
          +  }
          +
          +  /**
          +   * Sorts the columns with the given header in the given direction.
          +   */
          +  function sortColumn(header, sortup) {
          +    var table = header.parentNode.parentNode.parentNode;
          +    var body = table.tBodies[0];
          +    var colidx = getNodePosition(header);
          +
          +    resetSortedStyle(table);
          +
          +    var rows = body.rows;
          +    var sortedrows = [];
          +    for (var i = 0; i < rows.length; i++) {
          +      r = rows[i];
          +      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
          +    }
          +
          +    var hash;
          +
          +    if (sortup) {
          +      for (var i = sortedrows.length - 1; i >= 0; i--) {
          +        body.appendChild(sortedrows[i]);
          +      }
          +      header.className = 'up ' + header.className;
          +      hash = 'up-' + header.id;
          +    } else {
          +      for (var i = 0; i < sortedrows.length; i++) {
          +        body.appendChild(sortedrows[i]);
          +      }
          +      header.className = 'down ' + header.className;
          +      hash = 'dn-' + header.id;
          +    }
          +
          +    setHash(hash);
          +  }
          +
          +  /**
          +   * Adds the sort indicator as a hash to the document URL and all links.
          +   */
          +  function setHash(hash) {
          +    window.document.location.hash = hash;
          +    ids = window.linkelementids;
          +    for (var i = 0; i < ids.length; i++) {
          +        setHashOnAllLinks(document.getElementById(ids[i]), hash);
          +    }
          +  }
          +
          +  /**
          +   * Extend all links within the given tag with the given hash.
          +   */
          +  function setHashOnAllLinks(tag, hash) {
          +    links = tag.getElementsByTagName("a");
          +    for (var i = 0; i < links.length; i++) {
          +        var a = links[i];
          +        var href = a.href;
          +        var hashpos = href.indexOf("#");
          +        if (hashpos != -1) {
          +            href = href.substring(0, hashpos);
          +        }
          +        a.href = href + "#" + hash;
          +    }
          +  }
          +
          +  /**
          +   * Calculates the position of a element within its parent.
          +   */
          +  function getNodePosition(element) {
          +    var pos = -1;
          +    while (element) {
          +      element = element.previousSibling;
          +      pos++;
          +    }
          +    return pos;
          +  }
          +
          +  /**
          +   * Remove the sorting indicator style from all headers.
          +   */
          +  function resetSortedStyle(table) {
          +    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
          +      if (c.className) {
          +        if (c.className.indexOf('down ') == 0) {
          +          c.className = c.className.slice(5);
          +        }
          +        if (c.className.indexOf('up ') == 0) {
          +          c.className = c.className.slice(3);
          +        }
          +      }
          +    }
          +  }
          +
          +  window['initialSort'] = initialSort;
          +  window['toggleSort'] = toggleSort;
          +
          +})();
          diff --git a/target/site/jacoco/jacoco-resources/source.gif b/target/site/jacoco/jacoco-resources/source.gif
          new file mode 100644
          index 0000000..b226e41
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/source.gif differ
          diff --git a/target/site/jacoco/jacoco-resources/up.gif b/target/site/jacoco/jacoco-resources/up.gif
          new file mode 100644
          index 0000000..58ed216
          Binary files /dev/null and b/target/site/jacoco/jacoco-resources/up.gif differ
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          new file mode 100644
          index 0000000..478feda
          --- /dev/null
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-e57e2e00</span></td><td>26 juin 2021, 14:29:08</td><td>26 juin 2021, 14:29:09</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-3e358c1a</span></td><td>26 juin 2021, 14:29:30</td><td>26 juin 2021, 14:29:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-56f46767</span></td><td>26 juin 2021, 14:29:49</td><td>26 juin 2021, 14:29:49</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-e88c304d</span></td><td>26 juin 2021, 14:30:30</td><td>26 juin 2021, 14:30:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-20d8781c</span></td><td>26 juin 2021, 14:30:42</td><td>26 juin 2021, 14:30:43</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-442c10a6</span></td><td>26 juin 2021, 14:30:53</td><td>26 juin 2021, 14:30:53</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="musichub.business/PathValidation.html" class="el_class">musichub.business.PathValidation</a></td><td><code>23fa11bc9f27a597</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>c2c5ebe52507fc9e</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>325f5b44374bcaeb</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>4c7ade2bf38c6e74</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>192d10ac364dc41c</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.org.apache.maven.shared.utils.StringUtils</span></td><td><code>336ef03300f29635</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ClassNameStackTraceFilter</span></td><td><code>2e0e75f8104a222a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.PojoStackTraceWriter</span></td><td><code>cdfe959904c6726b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SafeThrowable</span></td><td><code>e61429531d0f0c1c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SmartStackTraceParser</span></td><td><code>05e423188a7bbb31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.BlacklistedExceptions</span></td><td><code>73365157bacc50af</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ExceptionUtils</span></td><td><code>0125033b30a9585f</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">org.opentest4j.AssertionFailedError</span></td><td><code>2c5f69ceb24e9128</code></td></tr><tr><td><span class="el_class">org.opentest4j.ValueWrapper</span></td><td><code>7d0d1c90c1c4c4b3</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          new file mode 100644
          index 0000000..9aff09d
          --- /dev/null
          +++ b/target/site/jacoco/jacoco.csv
          @@ -0,0 +1,19 @@
          +GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
          +spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
          +spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
          +spoteezer,musichub.business,PathValidation,0,17,0,0,0,4,0,2,0,2
          +spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
          +spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Song,105,0,6,0,26,0,12,0,7,0
          +spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,PlayList,202,0,14,0,53,0,14,0,7,0
          +spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
          +spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
          +spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
          +spoteezer,musichub.business,Genre,56,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,AudioElement,266,0,11,0,72,0,16,0,9,0
          +spoteezer,musichub.main,Main,588,0,40,0,199,0,29,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          new file mode 100644
          index 0000000..5a939ee
          --- /dev/null
          +++ b/target/site/jacoco/jacoco.xml
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-e57e2e00" start="1624710548706" dump="1624710549076"/><sessioninfo id="DESKTOP-M4INQND-3e358c1a" start="1624710570201" dump="1624710570575"/><sessioninfo id="DESKTOP-M4INQND-56f46767" start="1624710589444" dump="1624710589830"/><sessioninfo id="DESKTOP-M4INQND-e88c304d" start="1624710630581" dump="1624710630973"/><sessioninfo id="DESKTOP-M4INQND-20d8781c" start="1624710642738" dump="1624710643144"/><sessioninfo id="DESKTOP-M4INQND-442c10a6" start="1624710653198" dump="1624710653579"/><package name="musichub/util"><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="22"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="34"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="PathValidation.java"><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="5" mb="0" cb="0"/><line nr="34" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="17"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="4"/><counter type="COMPLEXITY" missed="172" covered="2"/><counter type="METHOD" missed="81" covered="2"/><counter type="CLASS" missed="15" covered="1"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="14"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="548" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="185" covered="0"/><counter type="COMPLEXITY" missed="27" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="252"><counter type="INSTRUCTION" missed="37" covered="0"/><counter type="LINE" missed="13" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="14" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="2" cb="0"/><line nr="29" mi="4" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="14" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="3" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="3" ci="0" mb="0" cb="0"/><line nr="57" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="3" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="2" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="101" mi="9" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="105" mi="10" ci="0" mb="2" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="8" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="10" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="2" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="7" ci="0" mb="2" cb="0"/><line nr="138" mi="1" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="2" cb="0"/><line nr="144" mi="4" ci="0" mb="0" cb="0"/><line nr="145" mi="4" ci="0" mb="0" cb="0"/><line nr="146" mi="1" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="4" ci="0" mb="0" cb="0"/><line nr="150" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="154" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="4" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="10" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="10" ci="0" mb="2" cb="0"/><line nr="177" mi="1" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="1" ci="0" mb="0" cb="0"/><line nr="182" mi="3" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="2" cb="0"/><line nr="186" mi="4" ci="0" mb="0" cb="0"/><line nr="187" mi="4" ci="0" mb="0" cb="0"/><line nr="188" mi="1" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="5" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="2" cb="0"/><line nr="197" mi="4" ci="0" mb="0" cb="0"/><line nr="198" mi="4" ci="0" mb="0" cb="0"/><line nr="199" mi="1" ci="0" mb="0" cb="0"/><line nr="200" mi="5" ci="0" mb="2" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="4" ci="0" mb="0" cb="0"/><line nr="207" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="3" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="214" mi="3" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="4" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="231" mi="1" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="2" ci="0" mb="0" cb="0"/><line nr="237" mi="2" ci="0" mb="0" cb="0"/><line nr="238" mi="2" ci="0" mb="0" cb="0"/><line nr="239" mi="3" ci="0" mb="0" cb="0"/><line nr="240" mi="1" ci="0" mb="0" cb="0"/><line nr="241" mi="3" ci="0" mb="0" cb="0"/><line nr="242" mi="1" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="2" ci="0" mb="0" cb="0"/><line nr="249" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="3" ci="0" mb="0" cb="0"/><line nr="253" mi="3" ci="0" mb="0" cb="0"/><line nr="254" mi="3" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="0" cb="0"/><line nr="257" mi="3" ci="0" mb="0" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="3" ci="0" mb="0" cb="0"/><line nr="260" mi="3" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2723" covered="17"/><counter type="BRANCH" missed="209" covered="0"/><counter type="LINE" missed="723" covered="4"/><counter type="COMPLEXITY" missed="205" covered="2"/><counter type="METHOD" missed="88" covered="2"/><counter type="CLASS" missed="17" covered="1"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Album.html b/target/site/jacoco/musichub.business/Album.html
          new file mode 100644
          index 0000000..24287ce
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Album.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Album</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Album</span></div><h1>Album</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">330 of 330</td><td class="ctr2">0 %</td><td class="bar">14 of 14</td><td class="ctr2">0 %</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">84</td><td class="ctr2">84</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a4"><a href="Album.java.html#L112" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h0">26</td><td class="ctr2" id="i0">26</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Album.java.html#L49" class="el_method">Album(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="112" alt="112"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h1">26</td><td class="ctr2" id="i1">26</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Album.java.html#L35" class="el_method">Album(String, String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="34" alt="34"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="Album.java.html#L21" class="el_method">Album(String, String, int, String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="33" alt="33"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">12</td><td class="ctr2" id="i3">12</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a7"><a href="Album.java.html#L98" class="el_method">getSongsRandomly()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="Album.java.html#L89" class="el_method">addSong(UUID)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="Album.java.html#L94" class="el_method">getSongs()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a8"><a href="Album.java.html#L104" class="el_method">getTitle()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="Album.java.html#L108" class="el_method">getDate()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Album.java.html b/target/site/jacoco/musichub.business/Album.java.html
          new file mode 100644
          index 0000000..107bbe9
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Album.java.html
          @@ -0,0 +1,146 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Album.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Album.java</span></div><h1>Album.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.text.ParseException;
          +import java.text.SimpleDateFormat;
          +import java.util.*;
          +
          +
          +public class Album {
          +    private final String title;
          +    private final int lengthInSeconds;
          +    private final UUID uuid;
          +    private String artist;
          +    private Date date;
          +    private ArrayList&lt;UUID&gt; songsUIDs;
          +
          +<span class="nc" id="L21">    public Album(String title, String artist, int lengthInSeconds, String id, String date, ArrayList&lt;UUID&gt; songsUIDs) {</span>
          +<span class="nc" id="L22">        this.title = title;</span>
          +<span class="nc" id="L23">        this.artist = artist;</span>
          +<span class="nc" id="L24">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L25">        this.uuid = UUID.fromString(id);</span>
          +        try {
          +<span class="nc" id="L27">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L28">            this.date = sdf.parse(date);</span>
          +<span class="nc" id="L29">        } catch (ParseException ex) {</span>
          +<span class="nc" id="L30">            ex.printStackTrace();</span>
          +<span class="nc" id="L31">        }</span>
          +<span class="nc" id="L32">        this.songsUIDs = songsUIDs;</span>
          +<span class="nc" id="L33">    }</span>
          +
          +<span class="nc" id="L35">    public Album(String title, String artist, int lengthInSeconds, String date) {</span>
          +<span class="nc" id="L36">        this.title = title;</span>
          +<span class="nc" id="L37">        this.artist = artist;</span>
          +<span class="nc" id="L38">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L39">        this.uuid = UUID.randomUUID();</span>
          +        try {
          +<span class="nc" id="L41">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L42">            this.date = sdf.parse(date);</span>
          +<span class="nc" id="L43">        } catch (ParseException ex) {</span>
          +<span class="nc" id="L44">            ex.printStackTrace();</span>
          +<span class="nc" id="L45">        }</span>
          +<span class="nc" id="L46">        this.songsUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="nc" id="L47">    }</span>
          +
          +<span class="nc" id="L49">    public Album(Element xmlElement) throws Exception {</span>
          +        {
          +<span class="nc" id="L51">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L52">            this.lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;lengthInSeconds&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L53">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L55">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L56">            } catch (Exception ex) {</span>
          +<span class="nc" id="L57">                System.out.println(&quot;Empty album UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L58">            }</span>
          +<span class="nc bnc" id="L59" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L60">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L61">            else this.uuid = UUID.fromString(uuid);</span>
          +
          +<span class="nc" id="L63">            SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L64">            this.date = sdf.parse(xmlElement.getElementsByTagName(&quot;date&quot;).item(0).getTextContent());</span>
          +            //parse list of songs:
          +<span class="nc" id="L66">            Node songsElement = xmlElement.getElementsByTagName(&quot;songs&quot;).item(0);</span>
          +<span class="nc" id="L67">            NodeList songUUIDNodes = songsElement.getChildNodes();</span>
          +<span class="nc bnc" id="L68" title="All 2 branches missed.">            if (songUUIDNodes == null) return;</span>
          +
          +<span class="nc" id="L70">            this.songsUIDs = new ArrayList&lt;&gt;();</span>
          +
          +<span class="nc bnc" id="L72" title="All 2 branches missed.">            for (int i = 0; i &lt; songUUIDNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L73" title="All 2 branches missed.">                if (songUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L74">                    Element songElement = (Element) songUUIDNodes.item(i);</span>
          +<span class="nc bnc" id="L75" title="All 2 branches missed.">                    if (songElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
          +                        try {
          +<span class="nc" id="L77">                            this.addSong(UUID.fromString(songElement.getTextContent()));</span>
          +<span class="nc" id="L78">                        } catch (Exception ex) {</span>
          +<span class="nc" id="L79">                            ex.printStackTrace();</span>
          +<span class="nc" id="L80">                        }</span>
          +                    }
          +                }
          +            }
          +        }
          +<span class="nc" id="L85">    }</span>
          +
          +
          +    public void addSong(UUID song) {
          +<span class="nc" id="L89">        songsUIDs.add(song);</span>
          +<span class="nc" id="L90">    }</span>
          +
          +
          +    public List&lt;UUID&gt; getSongs() {
          +<span class="nc" id="L94">        return songsUIDs;</span>
          +    }
          +
          +    public ArrayList&lt;UUID&gt; getSongsRandomly() {
          +<span class="nc" id="L98">        ArrayList&lt;UUID&gt; shuffledSongs = songsUIDs;</span>
          +<span class="nc" id="L99">        Collections.shuffle(shuffledSongs);</span>
          +<span class="nc" id="L100">        return shuffledSongs;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L104">        return title;</span>
          +    }
          +
          +    public Date getDate() {
          +<span class="nc" id="L108">        return date;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L112">        Element albumElement = document.createElement(&quot;album&quot;);</span>
          +<span class="nc" id="L113">        parentElement.appendChild(albumElement);</span>
          +
          +<span class="nc" id="L115">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L116">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L117">        albumElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L119">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="nc" id="L120">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="nc" id="L121">        albumElement.appendChild(artistElement);</span>
          +
          +<span class="nc" id="L123">        Element lengthElement = document.createElement(&quot;lengthInSeconds&quot;);</span>
          +<span class="nc" id="L124">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="nc" id="L125">        albumElement.appendChild(lengthElement);</span>
          +
          +<span class="nc" id="L127">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L128">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L129">        albumElement.appendChild(UUIDElement);</span>
          +
          +<span class="nc" id="L131">        Element dateElement = document.createElement(&quot;date&quot;);</span>
          +<span class="nc" id="L132">        SimpleDateFormat sdf = new SimpleDateFormat(&quot;yyyy-MM-dd&quot;);</span>
          +<span class="nc" id="L133">        dateElement.appendChild(document.createTextNode(sdf.format(date)));</span>
          +<span class="nc" id="L134">        albumElement.appendChild(dateElement);</span>
          +
          +<span class="nc" id="L136">        Element songsElement = document.createElement(&quot;songs&quot;);</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">        for (UUID currentUUID : this.songsUIDs) {</span>
          +<span class="nc" id="L138">            Element songUUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L139">            songUUIDElement.appendChild(document.createTextNode(currentUUID.toString()));</span>
          +<span class="nc" id="L140">            songsElement.appendChild(songUUIDElement);</span>
          +<span class="nc" id="L141">        }</span>
          +<span class="nc" id="L142">        albumElement.appendChild(songsElement);</span>
          +
          +<span class="nc" id="L144">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.html b/target/site/jacoco/musichub.business/AudioBook.html
          new file mode 100644
          index 0000000..aec1e56
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioBook.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 164</td><td class="ctr2">0 %</td><td class="bar">10 of 10</td><td class="ctr2">0 %</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">39</td><td class="ctr2">39</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.java.html b/target/site/jacoco/musichub.business/AudioBook.java.html
          new file mode 100644
          index 0000000..33a7924
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioBook.java.html
          @@ -0,0 +1,79 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">AudioBook.java</span></div><h1>AudioBook.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +public class AudioBook extends AudioElement {
          +    private Language language;
          +    private Category category;
          +
          +    public AudioBook(String title, String artist, int lengthInSeconds, String uid, String content, String language, String category) {
          +<span class="nc" id="L11">        super(title, artist, lengthInSeconds, uid, content);</span>
          +<span class="nc" id="L12">        this.setLanguage(language);</span>
          +<span class="nc" id="L13">        this.setCategory(category);</span>
          +<span class="nc" id="L14">    }</span>
          +
          +    public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) {
          +<span class="nc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          +<span class="nc" id="L18">        this.setLanguage(language);</span>
          +<span class="nc" id="L19">        this.setCategory(category);</span>
          +<span class="nc" id="L20">    }</span>
          +
          +    public AudioBook(Element xmlElement) {
          +<span class="nc" id="L23">        super(xmlElement);</span>
          +<span class="nc" id="L24">        this.setLanguage(xmlElement.getElementsByTagName(&quot;language&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L25">        this.setCategory(xmlElement.getElementsByTagName(&quot;category&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L26">    }</span>
          +
          +    public Language getLanguage() {
          +<span class="nc" id="L29">        return this.language;</span>
          +    }
          +
          +    public void setLanguage(String language) {
          +<span class="nc bnc" id="L33" title="All 5 branches missed.">        switch (language.toLowerCase()) {</span>
          +<span class="nc" id="L34">            default -&gt; this.language = Language.ENGLISH;</span>
          +<span class="nc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
          +<span class="nc" id="L36">            case &quot;german&quot; -&gt; this.language = Language.GERMAN;</span>
          +<span class="nc" id="L37">            case &quot;spanish&quot; -&gt; this.language = Language.SPANISH;</span>
          +<span class="nc" id="L38">            case &quot;italian&quot; -&gt; this.language = Language.ITALIAN;</span>
          +        }
          +<span class="nc" id="L40">    }</span>
          +
          +    public Category getCategory() {
          +<span class="nc" id="L43">        return this.category;</span>
          +    }
          +
          +    public void setCategory(String category) {
          +<span class="nc bnc" id="L47" title="All 5 branches missed.">        switch (category.toLowerCase()) {</span>
          +<span class="nc" id="L48">            default -&gt; this.category = Category.YOUTH;</span>
          +<span class="nc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
          +<span class="nc" id="L50">            case &quot;theater&quot; -&gt; this.category = Category.THEATER;</span>
          +<span class="nc" id="L51">            case &quot;documentary&quot; -&gt; this.category = Category.DOCUMENTARY;</span>
          +<span class="nc" id="L52">            case &quot;speech&quot; -&gt; this.category = Category.SPEECH;</span>
          +        }
          +<span class="nc" id="L54">    }</span>
          +
          +
          +    public String toString() {
          +<span class="nc" id="L58">        return super.toString() + &quot;, Language = &quot; + getLanguage() + &quot;, Category = &quot; + getCategory() + &quot;\n&quot;;</span>
          +    }
          +
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +        // audiobook element
          +<span class="nc" id="L64">        Element audioBook = document.createElement(&quot;audiobook&quot;);</span>
          +
          +<span class="nc" id="L66">        super.createXMLElement(document, audioBook);</span>
          +
          +<span class="nc" id="L68">        Element languageElement = document.createElement(&quot;language&quot;);</span>
          +<span class="nc" id="L69">        languageElement.appendChild(document.createTextNode(language.getLanguage()));</span>
          +<span class="nc" id="L70">        audioBook.appendChild(languageElement);</span>
          +
          +<span class="nc" id="L72">        Element categoryElement = document.createElement(&quot;category&quot;);</span>
          +<span class="nc" id="L73">        categoryElement.appendChild(document.createTextNode(category.getCategory()));</span>
          +<span class="nc" id="L74">        audioBook.appendChild(categoryElement);</span>
          +
          +<span class="nc" id="L76">        parentElement.appendChild(audioBook);</span>
          +<span class="nc" id="L77">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.html b/target/site/jacoco/musichub.business/AudioElement.html
          new file mode 100644
          index 0000000..7a6e499
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioElement.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioElement</span></div><h1>AudioElement</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">266 of 266</td><td class="ctr2">0 %</td><td class="bar">11 of 11</td><td class="ctr2">0 %</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">72</td><td class="ctr2">72</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioElement.java.html#L75" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="79" alt="79"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioElement.java.html#L99" class="el_method">manageAudioElement()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="103" height="10" title="68" alt="68"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="AudioElement.java.html#L40" class="el_method">AudioElement(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="63" alt="63"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">14</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html#L24" class="el_method">AudioElement(String, String, int, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">7</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="AudioElement.java.html#L32" class="el_method">AudioElement(String, String, int, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AudioElement.java.html#L71" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="10" alt="10"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="AudioElement.java.html#L59" class="el_method">getUUID()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="AudioElement.java.html#L63" class="el_method">getArtist()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="AudioElement.java.html#L67" class="el_method">getTitle()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioElement.java.html b/target/site/jacoco/musichub.business/AudioElement.java.html
          new file mode 100644
          index 0000000..4401836
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/AudioElement.java.html
          @@ -0,0 +1,133 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioElement.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">AudioElement.java</span></div><h1>AudioElement.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +import java.io.File;
          +import java.io.IOException;
          +import java.util.Scanner;
          +import java.util.UUID;
          +
          +import javax.sound.sampled.AudioInputStream;
          +import javax.sound.sampled.AudioSystem;
          +import javax.sound.sampled.Clip;
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +
          +public abstract class AudioElement {
          +    protected String title;
          +    protected String artist;
          +    protected int lengthInSeconds;
          +    protected UUID uuid;
          +    protected String content;
          +
          +<span class="nc" id="L24">    public AudioElement(String title, String artist, int lengthInSeconds, String id, String content) {</span>
          +<span class="nc" id="L25">        this.title = title;</span>
          +<span class="nc" id="L26">        this.artist = artist;</span>
          +<span class="nc" id="L27">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L28">        this.uuid = UUID.fromString(id);</span>
          +<span class="nc" id="L29">        this.content = content;</span>
          +<span class="nc" id="L30">    }</span>
          +
          +<span class="nc" id="L32">    public AudioElement(String title, String artist, int lengthInSeconds, String content) {</span>
          +<span class="nc" id="L33">        this.title = title;</span>
          +<span class="nc" id="L34">        this.artist = artist;</span>
          +<span class="nc" id="L35">        this.lengthInSeconds = lengthInSeconds;</span>
          +<span class="nc" id="L36">        this.content = content;</span>
          +<span class="nc" id="L37">        this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L38">    }</span>
          +
          +<span class="nc" id="L40">    public AudioElement(Element xmlElement) {</span>
          +        {
          +<span class="nc" id="L42">            title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L43">            artist = xmlElement.getElementsByTagName(&quot;artist&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L44">            lengthInSeconds = Integer.parseInt(xmlElement.getElementsByTagName(&quot;length&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L45">            content = xmlElement.getElementsByTagName(&quot;content&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L46">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L48">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L49">            } catch (Exception ex) {</span>
          +<span class="nc" id="L50">                System.out.println(&quot;Empty element UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L51">            }</span>
          +<span class="nc bnc" id="L52" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L53">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L54">            else this.uuid = UUID.fromString(uuid);</span>
          +        }
          +<span class="nc" id="L56">    }</span>
          +
          +    public UUID getUUID() {
          +<span class="nc" id="L59">        return this.uuid;</span>
          +    }
          +
          +    public String getArtist() {
          +<span class="nc" id="L63">        return this.artist;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L67">        return this.title;</span>
          +    }
          +
          +    public String toString() {
          +<span class="nc" id="L71">        return &quot;Title = &quot; + this.title + &quot;, Artist = &quot; + this.artist + &quot;, Length = &quot; + this.lengthInSeconds + &quot;, Content = &quot; + this.content;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L75">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L76">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L77">        parentElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L79">        Element artistElement = document.createElement(&quot;artist&quot;);</span>
          +<span class="nc" id="L80">        artistElement.appendChild(document.createTextNode(artist));</span>
          +<span class="nc" id="L81">        parentElement.appendChild(artistElement);</span>
          +
          +<span class="nc" id="L83">        Element lengthElement = document.createElement(&quot;length&quot;);</span>
          +<span class="nc" id="L84">        lengthElement.appendChild(document.createTextNode(Integer.valueOf(lengthInSeconds).toString()));</span>
          +<span class="nc" id="L85">        parentElement.appendChild(lengthElement);</span>
          +
          +<span class="nc" id="L87">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L88">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L89">        parentElement.appendChild(UUIDElement);</span>
          +
          +<span class="nc" id="L91">        Element contentElement = document.createElement(&quot;content&quot;);</span>
          +<span class="nc" id="L92">        contentElement.appendChild(document.createTextNode(content));</span>
          +<span class="nc" id="L93">        parentElement.appendChild(contentElement);</span>
          +
          +<span class="nc" id="L95">    }</span>
          +    
          +    public void manageAudioElement() throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +    	
          +<span class="nc" id="L99">    	Scanner scanner = new Scanner(System.in); </span>
          +    	
          +<span class="nc" id="L101">    	File file = new File(this.content);</span>
          +<span class="nc" id="L102">    	AudioInputStream audioStream = AudioSystem.getAudioInputStream(file);</span>
          +<span class="nc" id="L103">    	Clip clip = AudioSystem.getClip();</span>
          +<span class="nc" id="L104">    	clip.open(audioStream);</span>
          +    	
          +<span class="nc" id="L106">    	String action = &quot;&quot;;</span>
          +    			
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">    	while(!action.equals(&quot;Q&quot;)) {</span>
          +<span class="nc" id="L109">    		System.out.println(&quot;P = Play \b S = Stop \b R = Reset \b Q = Quit&quot;);</span>
          +<span class="nc" id="L110">    		System.out.println(&quot;Enter your choice&quot;);</span>
          +<span class="nc" id="L111">    		action = scanner.next();</span>
          +<span class="nc" id="L112">        	action = action.toUpperCase();</span>
          +        	
          +<span class="nc bnc" id="L114" title="All 5 branches missed.">        	switch(action) {</span>
          +<span class="nc" id="L115">        		case &quot;S&quot; : clip.stop();</span>
          +<span class="nc" id="L116">        		break;</span>
          +<span class="nc" id="L117">        		case &quot;P&quot; : clip.start();</span>
          +<span class="nc" id="L118">        		break;</span>
          +<span class="nc" id="L119">        		case &quot;R&quot; : clip.setMicrosecondPosition(0);</span>
          +<span class="nc" id="L120">        		break;</span>
          +<span class="nc" id="L121">        		case &quot;Q&quot; : clip.stop();</span>
          +<span class="nc" id="L122">        		break;</span>
          +<span class="nc" id="L123">        		default : System.out.println(&quot;try again&quot;);</span>
          +        	}
          +<span class="nc" id="L125">        	System.out.println(&quot;You stoped the Audio element&quot;);</span>
          +    	}
          +    	
          +<span class="nc" id="L128">    	clip.close();</span>
          +    
          +<span class="nc" id="L130">    }</span>
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.html b/target/site/jacoco/musichub.business/Category.html
          new file mode 100644
          index 0000000..d7e4df0
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Category.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.java.html b/target/site/jacoco/musichub.business/Category.java.html
          new file mode 100644
          index 0000000..cdef51f
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Category.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Category.java</span></div><h1>Category.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Category {</span>
          +<span class="nc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
          +    private final String category;
          +
          +<span class="nc" id="L7">    Category(String category) {</span>
          +<span class="nc" id="L8">        this.category = category;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getCategory() {
          +<span class="nc" id="L12">        return category;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Genre.html b/target/site/jacoco/musichub.business/Genre.html
          new file mode 100644
          index 0000000..88e0ecd
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Genre.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Genre</span></div><h1>Genre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">56 of 56</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Genre.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Genre.java.html#L7" class="el_method">Genre(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Genre.java.html#L12" class="el_method">getGenre()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Genre.java.html b/target/site/jacoco/musichub.business/Genre.java.html
          new file mode 100644
          index 0000000..021bb4b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Genre.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Genre.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Genre.java</span></div><h1>Genre.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Genre {</span>
          +<span class="nc" id="L4">    JAZZ(&quot;jazz&quot;), CLASSIC(&quot;classic&quot;), HIPHOP(&quot;hiphop&quot;), ROCK(&quot;rock&quot;), POP(&quot;pop&quot;), RAP(&quot;rap&quot;);</span>
          +    private final String genre;
          +
          +<span class="nc" id="L7">    Genre(String genre) {</span>
          +<span class="nc" id="L8">        this.genre = genre;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getGenre() {
          +<span class="nc" id="L12">        return genre;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.html b/target/site/jacoco/musichub.business/Language.html
          new file mode 100644
          index 0000000..604af85
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Language.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.java.html b/target/site/jacoco/musichub.business/Language.java.html
          new file mode 100644
          index 0000000..f974811
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Language.java.html
          @@ -0,0 +1,15 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Language.java</span></div><h1>Language.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +<span class="nc" id="L3">public enum Language {</span>
          +<span class="nc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
          +    private final String language;
          +
          +<span class="nc" id="L7">    Language(String language) {</span>
          +<span class="nc" id="L8">        this.language = language;</span>
          +<span class="nc" id="L9">    }</span>
          +
          +    public String getLanguage() {
          +<span class="nc" id="L12">        return language;</span>
          +    }
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.html b/target/site/jacoco/musichub.business/MusicHub.html
          new file mode 100644
          index 0000000..6bedc98
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/MusicHub.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">MusicHub</span></div><h1>MusicHub</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">803 of 803</td><td class="ctr2">0 %</td><td class="bar">114 of 114</td><td class="ctr2">0 %</td><td class="ctr1">79</td><td class="ctr2">79</td><td class="ctr1">195</td><td class="ctr2">195</td><td class="ctr1">22</td><td class="ctr2">22</td></tr></tfoot><tbody><tr><td id="a2"><a href="MusicHub.java.html#L158" class="el_method">addElementToAlbum(String, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f2">7</td><td class="ctr2" id="g2">7</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MusicHub.java.html#L187" class="el_method">addElementToPlayList(String, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="82" alt="82"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="12" alt="12"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f3">7</td><td class="ctr2" id="g3">7</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="MusicHub.java.html#L135" class="el_method">getAlbumSongsSortedByGenre(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="115" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="MusicHub.java.html#L113" class="el_method">getAlbumSongs(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="73" alt="73"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f1">8</td><td class="ctr2" id="g1">8</td><td class="ctr1" id="h4">15</td><td class="ctr2" id="i4">15</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a14"><a href="MusicHub.java.html#L254" class="el_method">loadElements()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="64" alt="64"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f4">6</td><td class="ctr2" id="g4">6</td><td class="ctr1" id="h2">18</td><td class="ctr2" id="i2">18</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a11"><a href="MusicHub.java.html#L101" class="el_method">getAudiobooksTitlesSortedByAuthor()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="53" alt="53"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f9">4</td><td class="ctr2" id="g9">4</td><td class="ctr1" id="h11">9</td><td class="ctr2" id="i11">9</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a19"><a href="MusicHub.java.html#L314" class="el_method">saveElements()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e6">0 %</td><td class="ctr1" id="f5">5</td><td class="ctr2" id="g5">5</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">12</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a13"><a href="MusicHub.java.html#L218" class="el_method">loadAlbums()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e7">0 %</td><td class="ctr1" id="f6">5</td><td class="ctr2" id="g6">5</td><td class="ctr1" id="h6">11</td><td class="ctr2" id="i6">11</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a15"><a href="MusicHub.java.html#L236" class="el_method">loadPlaylists()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="44" alt="44"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e8">0 %</td><td class="ctr1" id="f7">5</td><td class="ctr2" id="g7">5</td><td class="ctr1" id="h7">11</td><td class="ctr2" id="i7">11</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a6"><a href="MusicHub.java.html#L66" class="el_method">deletePlayList(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="40" alt="40"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e9">0 %</td><td class="ctr1" id="f8">5</td><td class="ctr2" id="g8">5</td><td class="ctr1" id="h8">11</td><td class="ctr2" id="i8">11</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a18"><a href="MusicHub.java.html#L282" class="el_method">saveAlbums()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e10">0 %</td><td class="ctr1" id="f10">3</td><td class="ctr2" id="g10">3</td><td class="ctr1" id="h9">10</td><td class="ctr2" id="i9">10</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a20"><a href="MusicHub.java.html#L298" class="el_method">savePlayLists()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0 %</td><td class="ctr1" id="f11">3</td><td class="ctr2" id="g11">3</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a10"><a href="MusicHub.java.html#L93" class="el_method">getAlbumsTitlesSortedByDate()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="46" height="10" title="32" alt="32"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e12">0 %</td><td class="ctr1" id="f13">2</td><td class="ctr2" id="g13">2</td><td class="ctr1" id="h13">5</td><td class="ctr2" id="i13">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a16"><a href="MusicHub.java.html#L41" class="el_method">MusicHub()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="29" alt="29"/></td><td class="ctr2" id="c13">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a12"><a href="MusicHub.java.html#L335" class="el_method">getAudioElement(List, String)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c14">0 %</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e13">0 %</td><td class="ctr1" id="f12">3</td><td class="ctr2" id="g12">3</td><td class="ctr1" id="h14">5</td><td class="ctr2" id="i14">5</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a21"><a href="MusicHub.java.html#L34" class="el_method">static {...}</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="13" alt="13"/></td><td class="ctr2" id="c15">0 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">4</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L53" class="el_method">addElement(AudioElement)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c16">0 %</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">2</td><td class="ctr2" id="i16">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a0"><a href="MusicHub.java.html#L57" class="el_method">addAlbum(Album)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0 %</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a4"><a href="MusicHub.java.html#L61" class="el_method">addPlaylist(PlayList)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c18">0 %</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a5"><a href="MusicHub.java.html#L81" class="el_method">albums()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c19">0 %</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a17"><a href="MusicHub.java.html#L85" class="el_method">playlists()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0 %</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a7"><a href="MusicHub.java.html#L89" class="el_method">elements()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c21">0 %</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          new file mode 100644
          index 0000000..b9dfd09
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -0,0 +1,343 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MusicHub.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">MusicHub.java</span></div><h1>MusicHub.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import musichub.util.XMLHandler;
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.io.IOException;
          +import java.util.*;
          +
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +
          +<span class="nc" id="L15">class SortByDate implements Comparator&lt;Album&gt; {</span>
          +    public int compare(Album a1, Album a2) {
          +<span class="nc" id="L17">        return a1.getDate().compareTo(a2.getDate());</span>
          +    }
          +}
          +
          +<span class="nc" id="L21">class SortByGenre implements Comparator&lt;Song&gt; {</span>
          +    public int compare(Song s1, Song s2) {
          +<span class="nc" id="L23">        return s1.getGenre().compareTo(s2.getGenre());</span>
          +    }
          +}
          +
          +<span class="nc" id="L27">class SortByAuthor implements Comparator&lt;AudioElement&gt; {</span>
          +    public int compare(AudioElement e1, AudioElement e2) {
          +<span class="nc" id="L29">        return e1.getArtist().compareTo(e2.getArtist());</span>
          +    }
          +}
          +
          +public class MusicHub {
          +<span class="nc" id="L34">    public static final String DIR = System.getProperty(&quot;user.dir&quot;);</span>
          +<span class="nc" id="L35">    public static final String ALBUMS_FILE_PATH = DIR + &quot;/files/albums.xml&quot;;</span>
          +<span class="nc" id="L36">    public static final String PLAYLISTS_FILE_PATH = DIR + &quot;/files/playlists.xml&quot;;</span>
          +<span class="nc" id="L37">    public static final String ELEMENTS_FILE_PATH = DIR + &quot;/files/elements.xml&quot;;</span>
          +    private final List&lt;Album&gt; albums;
          +    private final List&lt;PlayList&gt; playlists;
          +    private final List&lt;AudioElement&gt; elements;
          +<span class="nc" id="L41">    private final XMLHandler xmlHandler = new XMLHandler();</span>
          +
          +<span class="nc" id="L43">    public MusicHub() {</span>
          +<span class="nc" id="L44">        albums = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L45">        playlists = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L46">        elements = new LinkedList&lt;&gt;();</span>
          +<span class="nc" id="L47">        this.loadElements();</span>
          +<span class="nc" id="L48">        this.loadAlbums();</span>
          +<span class="nc" id="L49">        this.loadPlaylists();</span>
          +<span class="nc" id="L50">    }</span>
          +
          +    public void addElement(AudioElement element) {
          +<span class="nc" id="L53">        elements.add(element);</span>
          +<span class="nc" id="L54">    }</span>
          +
          +    public void addAlbum(Album album) {
          +<span class="nc" id="L57">        albums.add(album);</span>
          +<span class="nc" id="L58">    }</span>
          +
          +    public void addPlaylist(PlayList playlist) {
          +<span class="nc" id="L61">        playlists.add(playlist);</span>
          +<span class="nc" id="L62">    }</span>
          +
          +    public void deletePlayList(String playListTitle) throws NoPlayListFoundException {
          +
          +<span class="nc" id="L66">        PlayList thePlayList = null;</span>
          +<span class="nc" id="L67">        boolean result = false;</span>
          +<span class="nc bnc" id="L68" title="All 2 branches missed.">        for (PlayList pl : playlists) {</span>
          +<span class="nc bnc" id="L69" title="All 2 branches missed.">            if (pl.getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L70">                thePlayList = pl;</span>
          +<span class="nc" id="L71">                break;</span>
          +            }
          +<span class="nc" id="L73">        }</span>
          +
          +<span class="nc bnc" id="L75" title="All 2 branches missed.">        if (thePlayList != null)</span>
          +<span class="nc" id="L76">            result = playlists.remove(thePlayList);</span>
          +<span class="nc bnc" id="L77" title="All 2 branches missed.">        if (!result) throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L78">    }</span>
          +
          +    public Iterator&lt;Album&gt; albums() {
          +<span class="nc" id="L81">        return albums.listIterator();</span>
          +    }
          +
          +    public Iterator&lt;PlayList&gt; playlists() {
          +<span class="nc" id="L85">        return playlists.listIterator();</span>
          +    }
          +
          +    public Iterator&lt;AudioElement&gt; elements() {
          +<span class="nc" id="L89">        return elements.listIterator();</span>
          +    }
          +
          +    public String getAlbumsTitlesSortedByDate() {
          +<span class="nc" id="L93">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L94">        albums.sort(new SortByDate());</span>
          +<span class="nc bnc" id="L95" title="All 2 branches missed.">        for (Album al : albums)</span>
          +<span class="nc" id="L96">            titleList.append(al.getTitle()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L97">        return titleList.toString();</span>
          +    }
          +
          +    public String getAudiobooksTitlesSortedByAuthor() {
          +<span class="nc" id="L101">        StringBuilder titleList = new StringBuilder();</span>
          +<span class="nc" id="L102">        List&lt;AudioElement&gt; audioBookList = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L103" title="All 2 branches missed.">        for (AudioElement ae : elements)</span>
          +<span class="nc bnc" id="L104" title="All 2 branches missed.">            if (ae instanceof AudioBook)</span>
          +<span class="nc" id="L105">                audioBookList.add(ae);</span>
          +<span class="nc" id="L106">        audioBookList.sort(new SortByAuthor());</span>
          +<span class="nc bnc" id="L107" title="All 2 branches missed.">        for (AudioElement ab : audioBookList)</span>
          +<span class="nc" id="L108">            titleList.append(ab.getArtist()).append(&quot;\n&quot;);</span>
          +<span class="nc" id="L109">        return titleList.toString();</span>
          +    }
          +
          +    public List&lt;AudioElement&gt; getAlbumSongs(String albumTitle) throws NoAlbumFoundException {
          +<span class="nc" id="L113">        Album theAlbum = null;</span>
          +<span class="nc" id="L114">        ArrayList&lt;AudioElement&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L115" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L116" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L117">                theAlbum = al;</span>
          +<span class="nc" id="L118">                break;</span>
          +            }
          +<span class="nc" id="L120">        }</span>
          +<span class="nc bnc" id="L121" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L123">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L124" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L126" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L127" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add(el);</span>
          +                }
          +<span class="nc" id="L129">            }</span>
          +<span class="nc" id="L130">        return songsInAlbum;</span>
          +
          +    }
          +
          +    public List&lt;Song&gt; getAlbumSongsSortedByGenre(String albumTitle) throws NoAlbumFoundException {
          +<span class="nc" id="L135">        Album theAlbum = null;</span>
          +<span class="nc" id="L136">        ArrayList&lt;Song&gt; songsInAlbum = new ArrayList&lt;&gt;();</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">        for (Album al : albums) {</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">            if (al.getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L139">                theAlbum = al;</span>
          +<span class="nc" id="L140">                break;</span>
          +            }
          +<span class="nc" id="L142">        }</span>
          +<span class="nc bnc" id="L143" title="All 2 branches missed.">        if (theAlbum == null) throw new NoAlbumFoundException(&quot;No album with this title in the MusicHub!&quot;);</span>
          +
          +<span class="nc" id="L145">        List&lt;UUID&gt; songIDs = theAlbum.getSongs();</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">        for (UUID id : songIDs)</span>
          +<span class="nc bnc" id="L147" title="All 2 branches missed.">            for (AudioElement el : elements) {</span>
          +<span class="nc bnc" id="L148" title="All 2 branches missed.">                if (el instanceof Song) {</span>
          +<span class="nc bnc" id="L149" title="All 2 branches missed.">                    if (el.getUUID().equals(id)) songsInAlbum.add((Song) el);</span>
          +                }
          +<span class="nc" id="L151">            }</span>
          +<span class="nc" id="L152">        songsInAlbum.sort(new SortByGenre());</span>
          +<span class="nc" id="L153">        return songsInAlbum;</span>
          +
          +    }
          +
          +    public void addElementToAlbum(String elementTitle, String albumTitle) throws NoAlbumFoundException, NoElementFoundException {
          +<span class="nc" id="L158">        Album theAlbum = null;</span>
          +        int i;
          +<span class="nc" id="L160">        boolean found = false;</span>
          +<span class="nc bnc" id="L161" title="All 2 branches missed.">        for (i = 0; i &lt; albums.size(); i++) {</span>
          +<span class="nc bnc" id="L162" title="All 2 branches missed.">            if (albums.get(i).getTitle().equalsIgnoreCase(albumTitle)) {</span>
          +<span class="nc" id="L163">                theAlbum = albums.get(i);</span>
          +<span class="nc" id="L164">                found = true;</span>
          +<span class="nc" id="L165">                break;</span>
          +            }
          +        }
          +
          +<span class="nc bnc" id="L169" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L170">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L171" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L172" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L173">                    theElement = ae;</span>
          +<span class="nc" id="L174">                    break;</span>
          +                }
          +<span class="nc" id="L176">            }</span>
          +<span class="nc bnc" id="L177" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L178">                theAlbum.addSong(theElement.getUUID());</span>
          +                //replace the album in the list
          +<span class="nc" id="L180">                albums.set(i, theAlbum);</span>
          +<span class="nc" id="L181">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +<span class="nc" id="L182">        } else throw new NoAlbumFoundException(&quot;Album &quot; + albumTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L184">    }</span>
          +
          +    public void addElementToPlayList(String elementTitle, String playListTitle) throws NoPlayListFoundException, NoElementFoundException {
          +<span class="nc" id="L187">        PlayList thePlaylist = null;</span>
          +        int i;
          +<span class="nc" id="L189">        boolean found = false;</span>
          +
          +<span class="nc bnc" id="L191" title="All 2 branches missed.">        for (i = 0; i &lt; playlists.size(); i++) {</span>
          +<span class="nc bnc" id="L192" title="All 2 branches missed.">            if (playlists.get(i).getTitle().equalsIgnoreCase(playListTitle)) {</span>
          +<span class="nc" id="L193">                thePlaylist = playlists.get(i);</span>
          +<span class="nc" id="L194">                found = true;</span>
          +<span class="nc" id="L195">                break;</span>
          +            }
          +        }
          +
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">        if (found) {</span>
          +<span class="nc" id="L200">            AudioElement theElement = null;</span>
          +<span class="nc bnc" id="L201" title="All 2 branches missed.">            for (AudioElement ae : elements) {</span>
          +<span class="nc bnc" id="L202" title="All 2 branches missed.">                if (ae.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L203">                    theElement = ae;</span>
          +<span class="nc" id="L204">                    break;</span>
          +                }
          +<span class="nc" id="L206">            }</span>
          +<span class="nc bnc" id="L207" title="All 2 branches missed.">            if (theElement != null) {</span>
          +<span class="nc" id="L208">                thePlaylist.addElement(theElement.getUUID());</span>
          +                //replace the album in the list
          +<span class="nc" id="L210">                playlists.set(i, thePlaylist);</span>
          +<span class="nc" id="L211">            } else throw new NoElementFoundException(&quot;Element &quot; + elementTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L213">        } else throw new NoPlayListFoundException(&quot;Playlist &quot; + playListTitle + &quot; not found!&quot;);</span>
          +
          +<span class="nc" id="L215">    }</span>
          +
          +    private void loadAlbums() {
          +<span class="nc" id="L218">        NodeList albumNodes = xmlHandler.parseXMLFile(ALBUMS_FILE_PATH);</span>
          +<span class="nc bnc" id="L219" title="All 2 branches missed.">        if (albumNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L221" title="All 2 branches missed.">        for (int i = 0; i &lt; albumNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L222" title="All 2 branches missed.">            if (albumNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L223">                Element albumElement = (Element) albumNodes.item(i);</span>
          +<span class="nc bnc" id="L224" title="All 2 branches missed.">                if (albumElement.getNodeName().equals(&quot;album&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L226">                        this.addAlbum(new Album(albumElement));</span>
          +<span class="nc" id="L227">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L228">                        System.out.println(&quot;Something is wrong with the XML album element&quot;);</span>
          +<span class="nc" id="L229">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L233">    }</span>
          +
          +    private void loadPlaylists() {
          +<span class="nc" id="L236">        NodeList playlistNodes = xmlHandler.parseXMLFile(PLAYLISTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L237" title="All 2 branches missed.">        if (playlistNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L239" title="All 2 branches missed.">        for (int i = 0; i &lt; playlistNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L240" title="All 2 branches missed.">            if (playlistNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L241">                Element playlistElement = (Element) playlistNodes.item(i);</span>
          +<span class="nc bnc" id="L242" title="All 2 branches missed.">                if (playlistElement.getNodeName().equals(&quot;playlist&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L244">                        this.addPlaylist(new PlayList(playlistElement));</span>
          +<span class="nc" id="L245">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L246">                        System.out.println(&quot;Something is wrong with the XML playlist element&quot;);</span>
          +<span class="nc" id="L247">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L251">    }</span>
          +
          +    private void loadElements() {
          +<span class="nc" id="L254">        NodeList audioelementsNodes = xmlHandler.parseXMLFile(ELEMENTS_FILE_PATH);</span>
          +<span class="nc bnc" id="L255" title="All 2 branches missed.">        if (audioelementsNodes == null) return;</span>
          +
          +<span class="nc bnc" id="L257" title="All 2 branches missed.">        for (int i = 0; i &lt; audioelementsNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L258" title="All 2 branches missed.">            if (audioelementsNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L259">                Element audioElement = (Element) audioelementsNodes.item(i);</span>
          +<span class="nc bnc" id="L260" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;song&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L262">                        AudioElement newSong = new Song(audioElement);</span>
          +<span class="nc" id="L263">                        this.addElement(newSong);</span>
          +<span class="nc" id="L264">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L265">                        System.out.println(&quot;Something is wrong with the XML song element&quot;);</span>
          +<span class="nc" id="L266">                    }</span>
          +                }
          +<span class="nc bnc" id="L268" title="All 2 branches missed.">                if (audioElement.getNodeName().equals(&quot;audiobook&quot;)) {</span>
          +                    try {
          +<span class="nc" id="L270">                        AudioElement newAudioBook = new AudioBook(audioElement);</span>
          +<span class="nc" id="L271">                        this.addElement(newAudioBook);</span>
          +<span class="nc" id="L272">                    } catch (Exception ex) {</span>
          +<span class="nc" id="L273">                        System.out.println(&quot;Something is wrong with the XML audiobook element&quot;);</span>
          +<span class="nc" id="L274">                    }</span>
          +                }
          +            }
          +        }
          +<span class="nc" id="L278">    }</span>
          +
          +
          +    public void saveAlbums() {
          +<span class="nc" id="L282">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L283" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L286">        Element root = document.createElement(&quot;albums&quot;);</span>
          +<span class="nc" id="L287">        document.appendChild(root);</span>
          +
          +        //save all albums
          +<span class="nc bnc" id="L290" title="All 2 branches missed.">        for (Iterator&lt;Album&gt; albumsIter = this.albums(); albumsIter.hasNext(); ) {</span>
          +<span class="nc" id="L291">            Album currentAlbum = albumsIter.next();</span>
          +<span class="nc" id="L292">            currentAlbum.createXMLElement(document, root);</span>
          +<span class="nc" id="L293">        }</span>
          +<span class="nc" id="L294">        xmlHandler.createXMLFile(document, ALBUMS_FILE_PATH);</span>
          +<span class="nc" id="L295">    }</span>
          +
          +    public void savePlayLists() {
          +<span class="nc" id="L298">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L299" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L302">        Element root = document.createElement(&quot;playlists&quot;);</span>
          +<span class="nc" id="L303">        document.appendChild(root);</span>
          +
          +        //save all playlists
          +<span class="nc bnc" id="L306" title="All 2 branches missed.">        for (Iterator&lt;PlayList&gt; playlistsIter = this.playlists(); playlistsIter.hasNext(); ) {</span>
          +<span class="nc" id="L307">            PlayList currentPlayList = playlistsIter.next();</span>
          +<span class="nc" id="L308">            currentPlayList.createXMLElement(document, root);</span>
          +<span class="nc" id="L309">        }</span>
          +<span class="nc" id="L310">        xmlHandler.createXMLFile(document, PLAYLISTS_FILE_PATH);</span>
          +<span class="nc" id="L311">    }</span>
          +
          +    public void saveElements() {
          +<span class="nc" id="L314">        Document document = xmlHandler.createXMLDocument();</span>
          +<span class="nc bnc" id="L315" title="All 2 branches missed.">        if (document == null) return;</span>
          +
          +        // root element
          +<span class="nc" id="L318">        Element root = document.createElement(&quot;elements&quot;);</span>
          +<span class="nc" id="L319">        document.appendChild(root);</span>
          +
          +        //save all AudioElements
          +<span class="nc bnc" id="L322" title="All 2 branches missed.">        for (AudioElement currentElement : elements) {</span>
          +
          +<span class="nc bnc" id="L324" title="All 2 branches missed.">            if (currentElement instanceof Song) {</span>
          +<span class="nc" id="L325">                currentElement.createXMLElement(document, root);</span>
          +            }
          +<span class="nc bnc" id="L327" title="All 2 branches missed.">            if (currentElement instanceof AudioBook) {</span>
          +<span class="nc" id="L328">                currentElement.createXMLElement(document, root);</span>
          +            }
          +<span class="nc" id="L330">        }</span>
          +<span class="nc" id="L331">        xmlHandler.createXMLFile(document, ELEMENTS_FILE_PATH);</span>
          +<span class="nc" id="L332">    }</span>
          +    
          +    public void getAudioElement(List&lt;AudioElement&gt; audios, String elementTitle) throws NoAlbumFoundException, UnsupportedAudioFileException, IOException, LineUnavailableException {
          +<span class="nc bnc" id="L335" title="All 2 branches missed.">        for (AudioElement el : audios) {</span>
          +<span class="nc bnc" id="L336" title="All 2 branches missed.">            if (el.getTitle().equalsIgnoreCase(elementTitle)) {</span>
          +<span class="nc" id="L337">                el.manageAudioElement();</span>
          +            }
          +<span class="nc" id="L339">        }</span>
          +
          +<span class="nc" id="L341">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoAlbumFoundException.html b/target/site/jacoco/musichub.business/NoAlbumFoundException.html
          new file mode 100644
          index 0000000..51bf5be
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoAlbumFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoAlbumFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoAlbumFoundException</span></div><h1>NoAlbumFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoAlbumFoundException.java.html#L6" class="el_method">NoAlbumFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html b/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html
          new file mode 100644
          index 0000000..d78347b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoAlbumFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoAlbumFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoAlbumFoundException.java</span></div><h1>NoAlbumFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoAlbumFoundException extends Exception {
          +
          +    public NoAlbumFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoElementFoundException.html b/target/site/jacoco/musichub.business/NoElementFoundException.html
          new file mode 100644
          index 0000000..01fecbd
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoElementFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoElementFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoElementFoundException</span></div><h1>NoElementFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoElementFoundException.java.html#L6" class="el_method">NoElementFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoElementFoundException.java.html b/target/site/jacoco/musichub.business/NoElementFoundException.java.html
          new file mode 100644
          index 0000000..4d5f6bb
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoElementFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoElementFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoElementFoundException.java</span></div><h1>NoElementFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoElementFoundException extends Exception {
          +
          +    public NoElementFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoPlayListFoundException.html b/target/site/jacoco/musichub.business/NoPlayListFoundException.html
          new file mode 100644
          index 0000000..d1803ad
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoPlayListFoundException.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoPlayListFoundException</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">NoPlayListFoundException</span></div><h1>NoPlayListFoundException</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">4 of 4</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="NoPlayListFoundException.java.html#L6" class="el_method">NoPlayListFoundException(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html b/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html
          new file mode 100644
          index 0000000..f93e9a4
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/NoPlayListFoundException.java.html
          @@ -0,0 +1,9 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoPlayListFoundException.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">NoPlayListFoundException.java</span></div><h1>NoPlayListFoundException.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +public class NoPlayListFoundException extends Exception {
          +
          +    public NoPlayListFoundException(String msg) {
          +<span class="nc" id="L6">        super(msg);</span>
          +<span class="nc" id="L7">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.html b/target/site/jacoco/musichub.business/PathValidation.html
          new file mode 100644
          index 0000000..3b58bb2
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PathValidation.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L34" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L22" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.java.html b/target/site/jacoco/musichub.business/PathValidation.java.html
          new file mode 100644
          index 0000000..4d22953
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PathValidation.java.html
          @@ -0,0 +1,39 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PathValidation.java</span></div><h1>PathValidation.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import java.nio.file.Files;
          +import java.nio.file.Path;
          +import java.nio.file.Paths;
          +
          +/**
          + * Class offering a path validation method.
          + *
          + * @author Aimeric ADJUTOR
          + * @version 1.0
          + */
          +
          +public final class PathValidation {
          +
          +    /**
          +     * Method that just throws an AssertionError if the class is called
          +     * @author Aimeric ADJUTOR
          +     * @throws AssertionError you can't instantiate this class
          +     */
          +
          +<span class="fc" id="L22">    public PathValidation() {</span>
          +<span class="fc" id="L23">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          +    }
          +
          +    /**
          +     * Method that checks the validity of a given path
          +     *
          +     * @param inputPath the path given by the user
          +     * @return a boolean
          +     */
          +
          +    public static boolean isPathValid(String inputPath) {
          +<span class="fc" id="L34">        Path path = Paths.get(inputPath);</span>
          +<span class="fc" id="L35">        return Files.exists(path);</span>
          +    }
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.html b/target/site/jacoco/musichub.business/PlayList.html
          new file mode 100644
          index 0000000..ae17a14
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PlayList.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PlayList</span></div><h1>PlayList</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">202 of 202</td><td class="ctr2">0 %</td><td class="bar">14 of 14</td><td class="ctr2">0 %</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">53</td><td class="ctr2">53</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a4"><a href="PlayList.java.html#L28" class="el_method">PlayList(Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="88" alt="88"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PlayList.java.html#L78" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="75" alt="75"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="PlayList.java.html#L22" class="el_method">PlayList(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="14" alt="14"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="PlayList.java.html#L16" class="el_method">PlayList(String, String, ArrayList)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">5</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="PlayList.java.html#L66" class="el_method">addElement(UUID)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="PlayList.java.html#L70" class="el_method">getElements()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="PlayList.java.html#L74" class="el_method">getTitle()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PlayList.java.html b/target/site/jacoco/musichub.business/PlayList.java.html
          new file mode 100644
          index 0000000..6a45004
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/PlayList.java.html
          @@ -0,0 +1,101 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PlayList.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PlayList.java</span></div><h1>PlayList.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.Node;
          +import org.w3c.dom.NodeList;
          +
          +import java.util.ArrayList;
          +import java.util.UUID;
          +
          +public class PlayList {
          +    private final String title;
          +    private final UUID uuid;
          +    private ArrayList&lt;UUID&gt; elementUUIDs;
          +
          +<span class="nc" id="L16">    public PlayList(String title, String id, ArrayList&lt;UUID&gt; elementUUIDs) {</span>
          +<span class="nc" id="L17">        this.title = title;</span>
          +<span class="nc" id="L18">        this.uuid = UUID.fromString(id);</span>
          +<span class="nc" id="L19">        this.elementUUIDs = elementUUIDs;</span>
          +<span class="nc" id="L20">    }</span>
          +
          +<span class="nc" id="L22">    public PlayList(String title) {</span>
          +<span class="nc" id="L23">        this.title = title;</span>
          +<span class="nc" id="L24">        this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L25">        this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +<span class="nc" id="L26">    }</span>
          +
          +<span class="nc" id="L28">    public PlayList(Element xmlElement) {</span>
          +        {
          +<span class="nc" id="L30">            this.title = xmlElement.getElementsByTagName(&quot;title&quot;).item(0).getTextContent();</span>
          +
          +<span class="nc" id="L32">            String uuid = null;</span>
          +            try {
          +<span class="nc" id="L34">                uuid = xmlElement.getElementsByTagName(&quot;UUID&quot;).item(0).getTextContent();</span>
          +<span class="nc" id="L35">            } catch (Exception ex) {</span>
          +<span class="nc" id="L36">                System.out.println(&quot;Empty playlist UUID, will create a new one&quot;);</span>
          +<span class="nc" id="L37">            }</span>
          +<span class="nc bnc" id="L38" title="All 4 branches missed.">            if ((uuid == null) || (uuid.isEmpty()))</span>
          +<span class="nc" id="L39">                this.uuid = UUID.randomUUID();</span>
          +<span class="nc" id="L40">            else this.uuid = UUID.fromString(uuid);</span>
          +
          +            //parse list of elements:
          +<span class="nc" id="L43">            Node elementsElement = xmlElement.getElementsByTagName(&quot;elements&quot;).item(0);</span>
          +<span class="nc" id="L44">            NodeList elementUUIDNodes = elementsElement.getChildNodes();</span>
          +<span class="nc bnc" id="L45" title="All 2 branches missed.">            if (elementUUIDNodes == null) return;</span>
          +
          +<span class="nc" id="L47">            this.elementUUIDs = new ArrayList&lt;&gt;();</span>
          +
          +
          +<span class="nc bnc" id="L50" title="All 2 branches missed.">            for (int i = 0; i &lt; elementUUIDNodes.getLength(); i++) {</span>
          +<span class="nc bnc" id="L51" title="All 2 branches missed.">                if (elementUUIDNodes.item(i).getNodeType() == Node.ELEMENT_NODE) {</span>
          +<span class="nc" id="L52">                    Element elementElement = (Element) elementUUIDNodes.item(i);</span>
          +<span class="nc bnc" id="L53" title="All 2 branches missed.">                    if (elementElement.getNodeName().equals(&quot;UUID&quot;)) {</span>
          +                        try {
          +<span class="nc" id="L55">                            this.addElement(UUID.fromString(elementElement.getTextContent()));</span>
          +<span class="nc" id="L56">                        } catch (Exception ex) {</span>
          +<span class="nc" id="L57">                            ex.printStackTrace();</span>
          +<span class="nc" id="L58">                        }</span>
          +                    }
          +                }
          +            }
          +        }
          +<span class="nc" id="L63">    }</span>
          +
          +    public void addElement(UUID element) {
          +<span class="nc" id="L66">        elementUUIDs.add(element);</span>
          +<span class="nc" id="L67">    }</span>
          +
          +    public ArrayList&lt;UUID&gt; getElements() {
          +<span class="nc" id="L70">        return elementUUIDs;</span>
          +    }
          +
          +    public String getTitle() {
          +<span class="nc" id="L74">        return title;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +<span class="nc" id="L78">        Element playlistElement = document.createElement(&quot;playlist&quot;);</span>
          +<span class="nc" id="L79">        parentElement.appendChild(playlistElement);</span>
          +
          +<span class="nc" id="L81">        Element nameElement = document.createElement(&quot;title&quot;);</span>
          +<span class="nc" id="L82">        nameElement.appendChild(document.createTextNode(title));</span>
          +<span class="nc" id="L83">        playlistElement.appendChild(nameElement);</span>
          +
          +<span class="nc" id="L85">        Element UUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L86">        UUIDElement.appendChild(document.createTextNode(uuid.toString()));</span>
          +<span class="nc" id="L87">        playlistElement.appendChild(UUIDElement);</span>
          +
          +
          +<span class="nc" id="L90">        Element elementsElement = document.createElement(&quot;elements&quot;);</span>
          +<span class="nc bnc" id="L91" title="All 2 branches missed.">        for (UUID currentUUID : this.elementUUIDs) {</span>
          +
          +<span class="nc" id="L93">            Element elementUUIDElement = document.createElement(&quot;UUID&quot;);</span>
          +<span class="nc" id="L94">            elementUUIDElement.appendChild(document.createTextNode(currentUUID.toString()));</span>
          +<span class="nc" id="L95">            elementsElement.appendChild(elementUUIDElement);</span>
          +<span class="nc" id="L96">        }</span>
          +<span class="nc" id="L97">        playlistElement.appendChild(elementsElement);</span>
          +<span class="nc" id="L98">    }</span>
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.html b/target/site/jacoco/musichub.business/Song.html
          new file mode 100644
          index 0000000..4af18c3
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Song.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Song</span></div><h1>Song</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">105 of 105</td><td class="ctr2">0 %</td><td class="bar">6 of 6</td><td class="ctr2">0 %</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a2"><a href="Song.java.html#L30" class="el_method">setGenre(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="33" alt="33"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Song.java.html#L46" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="Song.java.html#L21" class="el_method">Song(Element)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="Song.java.html#L11" class="el_method">Song(String, String, int, String, String, String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="Song.java.html#L16" class="el_method">Song(String, String, int, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="10" alt="10"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="Song.java.html#L41" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="Song.java.html#L26" class="el_method">getGenre()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Song.java.html b/target/site/jacoco/musichub.business/Song.java.html
          new file mode 100644
          index 0000000..4f7f01d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/Song.java.html
          @@ -0,0 +1,59 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Song.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Song.java</span></div><h1>Song.java</h1><pre class="source lang-java linenums">package musichub.business;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +
          +
          +public class Song extends AudioElement {
          +    private Genre genre;
          +
          +    public Song(String title, String artist, int length, String uid, String content, String genre) {
          +<span class="nc" id="L11">        super(title, artist, length, uid, content);</span>
          +<span class="nc" id="L12">        this.setGenre(genre);</span>
          +<span class="nc" id="L13">    }</span>
          +
          +    public Song(String title, String artist, int length, String content, String genre) {
          +<span class="nc" id="L16">        super(title, artist, length, content);</span>
          +<span class="nc" id="L17">        this.setGenre(genre);</span>
          +<span class="nc" id="L18">    }</span>
          +
          +    public Song(Element xmlElement) {
          +<span class="nc" id="L21">        super(xmlElement);</span>
          +<span class="nc" id="L22">        this.setGenre(xmlElement.getElementsByTagName(&quot;genre&quot;).item(0).getTextContent());</span>
          +<span class="nc" id="L23">    }</span>
          +
          +    public String getGenre() {
          +<span class="nc" id="L26">        return genre.getGenre();</span>
          +    }
          +
          +    public void setGenre(String genre) {
          +<span class="nc bnc" id="L30" title="All 6 branches missed.">        switch (genre.toLowerCase()) {</span>
          +<span class="nc" id="L31">            default -&gt; this.genre = Genre.JAZZ;</span>
          +<span class="nc" id="L32">            case &quot;classic&quot; -&gt; this.genre = Genre.CLASSIC;</span>
          +<span class="nc" id="L33">            case &quot;hiphop&quot; -&gt; this.genre = Genre.HIPHOP;</span>
          +<span class="nc" id="L34">            case &quot;rock&quot; -&gt; this.genre = Genre.ROCK;</span>
          +<span class="nc" id="L35">            case &quot;pop&quot; -&gt; this.genre = Genre.POP;</span>
          +<span class="nc" id="L36">            case &quot;rap&quot; -&gt; this.genre = Genre.RAP;</span>
          +        }
          +<span class="nc" id="L38">    }</span>
          +
          +    public String toString() {
          +<span class="nc" id="L41">        return super.toString() + &quot;, Genre = &quot; + getGenre() + &quot;\n&quot;;</span>
          +    }
          +
          +    public void createXMLElement(Document document, Element parentElement) {
          +        // song element
          +<span class="nc" id="L46">        Element song = document.createElement(&quot;song&quot;);</span>
          +
          +<span class="nc" id="L48">        super.createXMLElement(document, song);</span>
          +
          +<span class="nc" id="L50">        Element genreElement = document.createElement(&quot;genre&quot;);</span>
          +<span class="nc" id="L51">        genreElement.appendChild(document.createTextNode(genre.getGenre()));</span>
          +<span class="nc" id="L52">        song.appendChild(genreElement);</span>
          +
          +<span class="nc" id="L54">        parentElement.appendChild(song);</span>
          +<span class="nc" id="L55">    }</span>
          +    
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByAuthor.html b/target/site/jacoco/musichub.business/SortByAuthor.html
          new file mode 100644
          index 0000000..851cdce
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByAuthor.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByAuthor</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByAuthor</span></div><h1>SortByAuthor</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L29" class="el_method">compare(AudioElement, AudioElement)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L27" class="el_method">SortByAuthor()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByDate.html b/target/site/jacoco/musichub.business/SortByDate.html
          new file mode 100644
          index 0000000..8f4b2f7
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByDate.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByDate</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByDate</span></div><h1>SortByDate</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L17" class="el_method">compare(Album, Album)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L15" class="el_method">SortByDate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/SortByGenre.html b/target/site/jacoco/musichub.business/SortByGenre.html
          new file mode 100644
          index 0000000..6dd6e7d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/SortByGenre.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SortByGenre</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">SortByGenre</span></div><h1>SortByGenre</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="MusicHub.java.html#L23" class="el_method">compare(Song, Song)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MusicHub.java.html#L21" class="el_method">SortByGenre()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          new file mode 100644
          index 0000000..178e60b
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a15"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c15">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k15">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a10"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g12">2</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k12">2</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          new file mode 100644
          index 0000000..45a5b59
          --- /dev/null
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a10"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          new file mode 100644
          index 0000000..de45b84
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L17" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="548" alt="548"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">27</td><td class="ctr2" id="g0">27</td><td class="ctr1" id="h0">185</td><td class="ctr2" id="i0">185</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L252" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L14" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          new file mode 100644
          index 0000000..df39af0
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -0,0 +1,266 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.main</a> &gt; <span class="el_source">Main.java</span></div><h1>Main.java</h1><pre class="source lang-java linenums">package musichub.main;
          +
          +import musichub.business.*;
          +
          +import javax.sound.sampled.LineUnavailableException;
          +import javax.sound.sampled.UnsupportedAudioFileException;
          +import java.io.IOException;
          +import java.util.Iterator;
          +import java.util.List;
          +import java.util.Scanner;
          +
          +import static musichub.business.PathValidation.isPathValid;
          +
          +<span class="nc" id="L14">public class Main {</span>
          +    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +
          +<span class="nc" id="L17">        MusicHub theHub = new MusicHub();</span>
          +
          +<span class="nc" id="L19">        System.out.println(&quot;Type h for available commands&quot;);</span>
          +
          +
          +<span class="nc" id="L22">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L23">        String choice = scan.nextLine();</span>
          +
          +        String albumTitle;
          +
          +<span class="nc bnc" id="L27" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          +
          +<span class="nc bnc" id="L29" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +<span class="nc bnc" id="L30" title="All 14 branches missed.">            switch (choice.charAt(0)) {</span>
          +                case 'q': //added the option directly in the switch instead of the loop
          +<span class="nc" id="L32">                    System.exit(0);</span>
          +                case 'h':
          +<span class="nc" id="L34">                    printAvailableCommands();</span>
          +<span class="nc" id="L35">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L36">                    break;</span>
          +                case 't':
          +                    //album titles, ordered by date
          +<span class="nc" id="L39">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L40">                    printAvailableCommands();</span>
          +<span class="nc" id="L41">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L42">                    break;</span>
          +                case 'g':
          +                    //songs of an album, sorted by genre
          +<span class="nc" id="L45">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L46">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L48">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L50">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L51">                        System.out.println(songs);</span>
          +<span class="nc" id="L52">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L53">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L54">                    }</span>
          +<span class="nc" id="L55">                    printAvailableCommands();</span>
          +<span class="nc" id="L56">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L57">                    break;</span>
          +                case 'd':
          +                    //songs of an album
          +<span class="nc" id="L60">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L61">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +
          +<span class="nc" id="L63">                    albumTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L65">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L66">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L67">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L68">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L69">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L70">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L71">                    }</span>
          +<span class="nc" id="L72">                    printAvailableCommands();</span>
          +<span class="nc" id="L73">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L74">                    break;</span>
          +                case 'u':
          +                    //audiobooks ordered by author
          +<span class="nc" id="L77">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L78">                    printAvailableCommands();</span>
          +<span class="nc" id="L79">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L80">                    break;</span>
          +                case 'c':
          +                    // add a new song
          +<span class="nc" id="L83">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L84">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L85">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L86">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L87">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L88">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L89">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L91">                    int length = Integer.parseInt(scan.nextLine());</span>
          +
          +<span class="nc" id="L93">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L94">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L95" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L96">                        System.out.println(&quot;The music file was not found with the path you've provided.\nType h for available commands&quot;);</span>
          +<span class="nc" id="L97">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L98">                        break;</span>
          +                    }
          +
          +<span class="nc" id="L101">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L102">                    theHub.addElement(s);</span>
          +<span class="nc" id="L103">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L104">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L105" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L106">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L107">                    printAvailableCommands();</span>
          +<span class="nc" id="L108">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L109">                    break;</span>
          +                case 'a':
          +                    // add a new album
          +<span class="nc" id="L112">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L113">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L114">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L115">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L116">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L117">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L118">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L119">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L120">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L121">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L122">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L124">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L125" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L126">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L127">                    printAvailableCommands();</span>
          +<span class="nc" id="L128">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L129">                    break;</span>
          +                case '+':
          +                    //add a song to an album:
          +<span class="nc" id="L132">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L133">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L134">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L135" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L136">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L137" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L138">                    }</span>
          +<span class="nc" id="L139">                    String songTitle = scan.nextLine();</span>
          +
          +<span class="nc" id="L141">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L142">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L143" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L144">                        Album al = ait.next();</span>
          +<span class="nc" id="L145">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L146">                    }</span>
          +<span class="nc" id="L147">                    String titleAlbum = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L149">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L150">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L151">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L152">                    }</span>
          +<span class="nc" id="L153">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L154">                    printAvailableCommands();</span>
          +<span class="nc" id="L155">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L156">                    break;</span>
          +                case 'l':
          +                    // add a new audiobook
          +<span class="nc" id="L159">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L160">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L161">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L162">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L163">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L164">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L165">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L166">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L167">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L168">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L169">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L170">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L171">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L172">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L173">                    theHub.addElement(b);</span>
          +<span class="nc" id="L174">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L175">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L176" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L177">                    printAvailableCommands();</span>
          +<span class="nc" id="L178">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L179">                    break;</span>
          +                case 'p':
          +                    //create a new playlist from existing elements
          +<span class="nc" id="L182">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L183">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L184">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L185" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L186">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L187">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L188">                    }</span>
          +<span class="nc" id="L189">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L190">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L191">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L192">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L193">                    System.out.println(&quot;Available elements: &quot;);</span>
          +
          +<span class="nc" id="L195">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L196" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L197">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L198">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L199">                    }</span>
          +<span class="nc bnc" id="L200" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L201">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L202">                        String elementTitle = scan.nextLine();</span>
          +                        try {
          +<span class="nc" id="L204">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L205">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L206">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L207">                        }</span>
          +
          +<span class="nc" id="L209">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L210">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L211">                    }</span>
          +<span class="nc" id="L212">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L213">                    printAvailableCommands();</span>
          +<span class="nc" id="L214">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L215">                    break;</span>
          +                case '-':
          +                    //delete a playlist
          +<span class="nc" id="L218">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L219">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L220" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L221">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L222">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L223">                    }</span>
          +<span class="nc" id="L224">                    String plTitle = scan.nextLine();</span>
          +                    try {
          +<span class="nc" id="L226">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L227">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L228">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L229">                    }</span>
          +<span class="nc" id="L230">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L231">                    printAvailableCommands();</span>
          +<span class="nc" id="L232">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L233">                    break;</span>
          +                case 's':
          +                    //save elements, albums, playlists
          +<span class="nc" id="L236">                    theHub.saveElements();</span>
          +<span class="nc" id="L237">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L238">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L239">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L240">                    printAvailableCommands();</span>
          +<span class="nc" id="L241">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L242">                    break;</span>
          +                default:
          +
          +<span class="nc" id="L245">                    break;</span>
          +            }
          +        }
          +<span class="nc" id="L248">        scan.close();</span>
          +<span class="nc" id="L249">    }</span>
          +
          +    private static void printAvailableCommands() {
          +<span class="nc" id="L252">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L253">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L254">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L255">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L256">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L257">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L258">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L259">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L260">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L261">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L262">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L263">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L264">    }</span>
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          new file mode 100644
          index 0000000..c4e995d
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          new file mode 100644
          index 0000000..189774f
          --- /dev/null
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.html b/target/site/jacoco/musichub.util/XMLHandler.html
          new file mode 100644
          index 0000000..7aff8c8
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/XMLHandler.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.java.html b/target/site/jacoco/musichub.util/XMLHandler.java.html
          new file mode 100644
          index 0000000..b8ee27a
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/XMLHandler.java.html
          @@ -0,0 +1,75 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.util</a> &gt; <span class="el_source">XMLHandler.java</span></div><h1>XMLHandler.java</h1><pre class="source lang-java linenums">package musichub.util;
          +
          +import org.w3c.dom.Document;
          +import org.w3c.dom.Element;
          +import org.w3c.dom.NodeList;
          +import org.xml.sax.SAXException;
          +
          +import javax.xml.parsers.DocumentBuilder;
          +import javax.xml.parsers.DocumentBuilderFactory;
          +import javax.xml.parsers.ParserConfigurationException;
          +import javax.xml.transform.Transformer;
          +import javax.xml.transform.TransformerException;
          +import javax.xml.transform.TransformerFactory;
          +import javax.xml.transform.dom.DOMSource;
          +import javax.xml.transform.stream.StreamResult;
          +import java.io.File;
          +import java.io.IOException;
          +
          +
          +public class XMLHandler {
          +    TransformerFactory transformerFactory;
          +    Transformer transformer;
          +    DocumentBuilderFactory documentFactory;
          +    DocumentBuilder documentBuilder;
          +
          +<span class="nc" id="L26">    public XMLHandler() {</span>
          +        try {
          +<span class="nc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          +<span class="nc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          +<span class="nc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          +<span class="nc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
          +<span class="nc" id="L32">        } catch (TransformerException | ParserConfigurationException tfe) {</span>
          +<span class="nc" id="L33">            tfe.printStackTrace();</span>
          +<span class="nc" id="L34">        }</span>
          +<span class="nc" id="L35">    }</span>
          +
          +    public void createXMLFile(Document document, String filePath) {
          +        try {
          +            // create the xml file
          +            //transform the DOM Object to an XML File
          +<span class="nc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          +<span class="nc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
          +
          +            // If you use
          +            // StreamResult result = new StreamResult(System.out);
          +            // the output will be pushed to the standard output ...
          +            // You can use that for debugging
          +
          +<span class="nc" id="L49">            transformer.transform(domSource, streamResult);</span>
          +
          +<span class="nc" id="L51">        } catch (TransformerException tfe) {</span>
          +<span class="nc" id="L52">            tfe.printStackTrace();</span>
          +<span class="nc" id="L53">        }</span>
          +<span class="nc" id="L54">    }</span>
          +
          +    public Document createXMLDocument() {
          +<span class="nc" id="L57">        return documentBuilder.newDocument();</span>
          +    }
          +
          +    public NodeList parseXMLFile(String filePath) {
          +<span class="nc" id="L61">        NodeList elementNodes = null;</span>
          +        try {
          +<span class="nc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          +<span class="nc" id="L64">            Element root = document.getDocumentElement();</span>
          +
          +<span class="nc" id="L66">            elementNodes = root.getChildNodes();</span>
          +<span class="nc" id="L67">        } catch (SAXException | IOException e) {</span>
          +<span class="nc" id="L68">            e.printStackTrace();</span>
          +<span class="nc" id="L69">        }</span>
          +<span class="nc" id="L70">        return elementNodes;</span>
          +    }
          +
          +
          +}
          +</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          new file mode 100644
          index 0000000..1194ec1
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          new file mode 100644
          index 0000000..e6f6dba
          --- /dev/null
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -0,0 +1 @@
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index 9f65573..16e8971 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          new file mode 100644
          index 0000000..4a19c26
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PathValidationTest" time="0.014" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492 2021-06-26T14-30-52_984-jvmRun1 surefire12207114920762145658tmp surefire_04118465738105299962tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testPathValidationClass" classname="musichub.business.PathValidationTest" time="0.007"/>
          +  <testcase name="testIsPathValid" classname="musichub.business.PathValidationTest" time="0.002"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.PathValidationTest.txt b/target/surefire-reports/musichub.business.PathValidationTest.txt
          new file mode 100644
          index 0000000..87f14cb
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.PathValidationTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.PathValidationTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.PathValidationTest
          diff --git a/target/test-classes/musichub/business/PathValidationTest.class b/target/test-classes/musichub/business/PathValidationTest.class
          new file mode 100644
          index 0000000..24d063b
          Binary files /dev/null and b/target/test-classes/musichub/business/PathValidationTest.class differ
          -- 
          cgit v1.2.3
          
          
          From 67ed18fe86ddfabe5f6c6c270273597799722a72 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sat, 26 Jun 2021 22:07:53 +0200
          Subject: Tests are ok fully covered.
          
          ---
           log/spoteezer.log                                  |   5 +-
           src/main/java/musichub/util/LogHandler.java        |  12 +
           src/test/java/musichub/util/LogHandlerTest.java    |  41 +++
           target/jacoco.exec                                 | Bin 80650 -> 27236 bytes
           target/maven-archiver/pom.properties               |   2 +-
           target/maven-javadoc-plugin-stale-data.txt         |  39 +-
           .../compile/default-compile/createdFiles.lst       |   3 +-
           .../compile/default-compile/inputFiles.lst         |   3 +-
           .../default-testCompile/createdFiles.lst           |   3 +-
           .../testCompile/default-testCompile/inputFiles.lst |   3 +-
           target/original-spoteezer-0.1.0.jar                | Bin 31900 -> 33244 bytes
           target/site/apidocs/allclasses-index.html          |  32 +-
           target/site/apidocs/allpackages-index.html         |   2 +-
           target/site/apidocs/help-doc.html                  |   2 +-
           target/site/apidocs/index-all.html                 |  31 +-
           target/site/apidocs/index.html                     |   2 +-
           target/site/apidocs/member-search-index.js         |   2 +-
           target/site/apidocs/musichub/business/Album.html   |   2 +-
           .../site/apidocs/musichub/business/AudioBook.html  |   2 +-
           .../apidocs/musichub/business/AudioElement.html    |   2 +-
           .../site/apidocs/musichub/business/Category.html   |   2 +-
           target/site/apidocs/musichub/business/Genre.html   |   2 +-
           .../site/apidocs/musichub/business/Language.html   |   2 +-
           .../site/apidocs/musichub/business/MusicHub.html   |   2 +-
           .../musichub/business/NoAlbumFoundException.html   |   2 +-
           .../musichub/business/NoElementFoundException.html |   2 +-
           .../business/NoPlayListFoundException.html         |   2 +-
           .../apidocs/musichub/business/PathValidation.html  | 189 ----------
           .../site/apidocs/musichub/business/PlayList.html   |   2 +-
           target/site/apidocs/musichub/business/Song.html    |   2 +-
           .../apidocs/musichub/business/class-use/Album.html |   2 +-
           .../musichub/business/class-use/AudioBook.html     |   2 +-
           .../musichub/business/class-use/AudioElement.html  |   2 +-
           .../musichub/business/class-use/Category.html      |   2 +-
           .../apidocs/musichub/business/class-use/Genre.html |   2 +-
           .../musichub/business/class-use/Language.html      |   2 +-
           .../musichub/business/class-use/MusicHub.html      |   2 +-
           .../business/class-use/NoAlbumFoundException.html  |   2 +-
           .../class-use/NoElementFoundException.html         |   2 +-
           .../class-use/NoPlayListFoundException.html        |   2 +-
           .../business/class-use/PathValidation.html         |  65 ----
           .../musichub/business/class-use/PlayList.html      |   2 +-
           .../apidocs/musichub/business/class-use/Song.html  |   2 +-
           .../apidocs/musichub/business/package-summary.html |  12 +-
           .../apidocs/musichub/business/package-tree.html    |   3 +-
           .../apidocs/musichub/business/package-use.html     |   2 +-
           target/site/apidocs/musichub/main/Main.html        |   2 +-
           .../site/apidocs/musichub/main/class-use/Main.html |   2 +-
           .../apidocs/musichub/main/package-summary.html     |   2 +-
           .../site/apidocs/musichub/main/package-tree.html   |   2 +-
           target/site/apidocs/musichub/main/package-use.html |   2 +-
           target/site/apidocs/musichub/util/XMLHandler.html  |   2 +-
           .../musichub/util/class-use/XMLHandler.html        |   2 +-
           .../apidocs/musichub/util/package-summary.html     |  10 +-
           .../site/apidocs/musichub/util/package-tree.html   |   4 +-
           target/site/apidocs/musichub/util/package-use.html |   2 +-
           target/site/apidocs/overview-summary.html          |   2 +-
           target/site/apidocs/overview-tree.html             |   5 +-
           target/site/apidocs/serialized-form.html           |   2 +-
           target/site/apidocs/type-search-index.js           |   2 +-
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   5 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../jacoco/musichub.business/PathValidation.html   |   1 -
           .../musichub.business/PathValidation.java.html     |  39 --
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.html         |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 410 +++++++++++----------
           target/site/jacoco/musichub.main/index.html        |   2 +-
           target/site/jacoco/musichub.main/index.source.html |   2 +-
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           target/spoteezer-0.1.0.jar                         | Bin 367786 -> 369146 bytes
           .../TEST-musichub.business.PathValidationTest.xml  |  60 ---
           .../musichub.business.PathValidationTest.txt       |   4 -
           77 files changed, 412 insertions(+), 669 deletions(-)
           create mode 100644 src/test/java/musichub/util/LogHandlerTest.java
           delete mode 100644 target/site/apidocs/musichub/business/PathValidation.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/PathValidation.html
           delete mode 100644 target/site/jacoco/musichub.business/PathValidation.html
           delete mode 100644 target/site/jacoco/musichub.business/PathValidation.java.html
           delete mode 100644 target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
           delete mode 100644 target/surefire-reports/musichub.business.PathValidationTest.txt
          
          (limited to 'target/maven-archiver/pom.properties')
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 091f5e0..834e29f 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,3 +1,6 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-26 21:37:09.507] WARNING: The music file was not found with the path you've provided.
          -[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          \ No newline at end of file
          +[2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
          +[2021-06-26 22:05:28.614] INFO: JUnit test
          +[2021-06-26 22:06:26.191] INFO: JUnit test
          +[2021-06-26 22:06:38.453] INFO: JUnit test
          \ No newline at end of file
          diff --git a/src/main/java/musichub/util/LogHandler.java b/src/main/java/musichub/util/LogHandler.java
          index f6522f5..988b149 100644
          --- a/src/main/java/musichub/util/LogHandler.java
          +++ b/src/main/java/musichub/util/LogHandler.java
          @@ -26,6 +26,13 @@ public final class LogHandler {
                   throw new AssertionError("You just can't instantiate this class.");
               }
           
          +    /**
          +     * Method that writes a log message to spoteezer.log
          +     *
          +     * @param msg  the message to write
          +     * @param type the type of log
          +     * @throws IOException if the file's not there
          +     */
               public static void write(String msg, String type) throws IOException {
           
                   Timestamp timestamp = new Timestamp(System.currentTimeMillis());
          @@ -42,6 +49,11 @@ public final class LogHandler {
           
               }
           
          +    /**
          +     * Method that prints the content of spoteezer.log
          +     *
          +     * @throws IOException if the file's not there
          +     */
               public static void read() throws IOException {
                   Path fileName = Path.of("log/spoteezer.log");
           
          diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
          new file mode 100644
          index 0000000..17b47f6
          --- /dev/null
          +++ b/src/test/java/musichub/util/LogHandlerTest.java
          @@ -0,0 +1,41 @@
          +package musichub.util;
          +
          +
          +import org.junit.jupiter.api.Test;
          +
          +import java.io.IOException;
          +
          +import static musichub.util.LogHandler.read;
          +import static musichub.util.LogHandler.write;
          +import static org.junit.jupiter.api.Assertions.assertEquals;
          +import static org.junit.jupiter.api.Assertions.assertTrue;
          +
          +public class LogHandlerTest {
          +    @Test
          +    void testWrite() {
          +        try {
          +            write("JUnit test", "INFO");
          +        } catch (IOException e) {
          +            e.printStackTrace();
          +        }
          +    }
          +
          +    @Test
          +    void testRead() {
          +        try {
          +            read();
          +        } catch (IOException e) {
          +            e.printStackTrace();
          +        }
          +    }
          +
          +    @Test
          +    void testLogHandlerClass() {
          +        try {
          +            LogHandler logHandlerClass = new LogHandler();
          +        } catch (Error ex) {
          +            assertTrue(ex instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", ex.getMessage());
          +        }
          +    }
          +}
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index a11f908..5deaa95 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          index 1d6eb92..9bf0389 100644
          --- a/target/maven-archiver/pom.properties
          +++ b/target/maven-archiver/pom.properties
          @@ -1,5 +1,5 @@
           #Generated by Maven
          -#Sat Jun 26 14:29:09 CEST 2021
          +#Sat Jun 26 22:06:26 CEST 2021
           groupId=esiea.softwareengineering
           artifactId=spoteezer
           version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          index 211d1c0..e5ff7a2 100644
          --- a/target/maven-javadoc-plugin-stale-data.txt
          +++ b/target/maven-javadoc-plugin-stale-data.txt
          @@ -34,10 +34,11 @@
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PathValidation.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
           'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
           C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          @@ -45,21 +46,21 @@ C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\ju
           C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
           C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
           C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624710556861
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624710556864
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624710556758
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624710556888
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624710556884
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624710556844
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624710556910
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624710556868
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624710556865
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624710556885
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624710556841
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624710556866
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624710556892
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624710556895
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624710556785
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624710556891
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624710556869
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624710556867
          \ No newline at end of file
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624737994231
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624737994233
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624737994134
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624737994257
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624737994253
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624737994214
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624737994280
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624737994238
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624737994234
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624737994255
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624737994211
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624737994235
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624737994260
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624737994263
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624737994156
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624737994259
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624737994239
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624737994236
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          index 26c13ed..acee52e 100644
          --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
          @@ -1,6 +1,6 @@
           musichub\util\XMLHandler.class
          -musichub\business\PathValidation.class
           musichub\business\NoElementFoundException.class
          +musichub\util\LogHandler.class
           musichub\business\Language.class
           musichub\business\PlayList.class
           musichub\main\Main.class
          @@ -11,6 +11,7 @@ musichub\business\SortByAuthor.class
           musichub\business\NoAlbumFoundException.class
           musichub\business\AudioBook.class
           musichub\business\Song.class
          +musichub\util\PathValidation.class
           musichub\business\Genre.class
           musichub\business\NoPlayListFoundException.class
           musichub\business\Category.class
          diff --git a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          index 93f6593..a533945 100644
          --- a/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
          @@ -5,9 +5,10 @@ C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\main\Main.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioBook.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Language.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\MusicHub.java
          +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\LogHandler.java
          +C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\util\PathValidation.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Album.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\AudioElement.java
          -C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\PathValidation.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\Category.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoAlbumFoundException.java
           C:\Users\SoftA\Documents\spoteezer\src\main\java\musichub\business\NoPlayListFoundException.java
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 649a939..13c2c99 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1 +1,2 @@
          -musichub\business\PathValidationTest.class
          +musichub\util\PathValidationTest.class
          +musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 9b5d3f0..1b9eea3 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1 +1,2 @@
          -C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\business\PathValidationTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          index fbeb8a5..e14293d 100644
          Binary files a/target/original-spoteezer-0.1.0.jar and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          index 767b8ab..e4d9f65 100644
          --- a/target/site/apidocs/allclasses-index.html
          +++ b/target/site/apidocs/allclasses-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>All Classes (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -76,26 +76,30 @@ loadScripts(document, 'script');</script>
           <div class="col-last even-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
           <div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></div>
           <div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
           <div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
           <div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">
          +<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          +<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
           <div class="block">Class offering a path validation method.</div>
           </div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
           <div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
           <div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          +<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          +<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
           </div>
           </div>
           </div>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          index daffbfc..1670da5 100644
          --- a/target/site/apidocs/allpackages-index.html
          +++ b/target/site/apidocs/allpackages-index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>All Packages (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          index 084eeb0..4d85c2b 100644
          --- a/target/site/apidocs/help-doc.html
          +++ b/target/site/apidocs/help-doc.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>API Help (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          index bb26bd1..0df0f51 100644
          --- a/target/site/apidocs/index-all.html
          +++ b/target/site/apidocs/index-all.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Index (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -54,7 +54,7 @@ loadScripts(document, 'script');</script>
           <div class="header">
           <h1>Index</h1>
           </div>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
           <h2 class="title" id="I:A">A</h2>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addAlbum(musichub.business.Album)">addAlbum(Album)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          @@ -202,7 +202,7 @@ loadScripts(document, 'script');</script>
           </dl>
           <h2 class="title" id="I:I">I</h2>
           <dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></dt>
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
           <dd>
           <div class="block">Method that checks the validity of a given path</div>
           </dd>
          @@ -220,6 +220,14 @@ loadScripts(document, 'script');</script>
           <dd>&nbsp;</dd>
           <dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#lengthInSeconds">lengthInSeconds</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
           <dd>&nbsp;</dd>
          +<dt><a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          +<dd>
          +<div class="block">Class offering a log writing method.</div>
          +</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#%3Cinit%3E()">LogHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that just throws an AssertionError if the class is called</div>
          +</dd>
           </dl>
           <h2 class="title" id="I:M">M</h2>
           <dl class="index">
          @@ -263,11 +271,11 @@ loadScripts(document, 'script');</script>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#parseXMLFile(java.lang.String)">parseXMLFile(String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
           <dd>&nbsp;</dd>
          -<dt><a href="musichub/business/PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          +<dt><a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
           <dd>
           <div class="block">Class offering a path validation method.</div>
           </dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business">PathValidation</a></dt>
          +<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
           <dd>
           <div class="block">Method that just throws an AssertionError if the class is called</div>
           </dd>
          @@ -290,6 +298,10 @@ loadScripts(document, 'script');</script>
           <dl class="index">
           <dt><span class="member-name-link"><a href="musichub/business/Genre.html#RAP">RAP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
           <dd>&nbsp;</dd>
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#read()">read()</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that prints the content of spoteezer.log</div>
          +</dd>
           <dt><span class="member-name-link"><a href="musichub/business/Genre.html#ROCK">ROCK</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
           <dd>&nbsp;</dd>
           </dl>
          @@ -368,6 +380,13 @@ the order they are declared.</div>
           the order they are declared.</div>
           </dd>
           </dl>
          +<h2 class="title" id="I:W">W</h2>
          +<dl class="index">
          +<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#write(java.lang.String,java.lang.String)">write(String, String)</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          +<dd>
          +<div class="block">Method that writes a log message to spoteezer.log</div>
          +</dd>
          +</dl>
           <h2 class="title" id="I:X">X</h2>
           <dl class="index">
           <dt><a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          @@ -380,7 +399,7 @@ the order they are declared.</div>
           <dt><span class="member-name-link"><a href="musichub/business/Category.html#YOUTH">YOUTH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
           <dd>&nbsp;</dd>
           </dl>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
          +<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
           <footer role="contentinfo">
           <hr>
           <p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          index a865d2c..e5010d9 100644
          --- a/target/site/apidocs/index.html
          +++ b/target/site/apidocs/index.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Overview (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          index 7c431d3..f583be9 100644
          --- a/target/site/apidocs/member-search-index.js
          +++ b/target/site/apidocs/member-search-index.js
          @@ -1 +1 @@
          -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.business","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.business","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          +memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          index 824d2f6..fd0beaa 100644
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ b/target/site/apidocs/musichub/business/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          index f171946..211e1b0 100644
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          index f2ecb62..fe6ad42 100644
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          index 6fa6ed1..4266493 100644
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ b/target/site/apidocs/musichub/business/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          index 404433a..96e2762 100644
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ b/target/site/apidocs/musichub/business/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          index 7c71eef..6bebff8 100644
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ b/target/site/apidocs/musichub/business/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          index a96d88e..4af462c 100644
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          index 51defb8..16143e3 100644
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          index b935b6c..3a04446 100644
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          index 56d2aaf..4a9413a 100644
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/PathValidation.html b/target/site/apidocs/musichub/business/PathValidation.html
          deleted file mode 100644
          index 9a7945c..0000000
          --- a/target/site/apidocs/musichub/business/PathValidation.html
          +++ /dev/null
          @@ -1,189 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          -<title>PathValidation (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: PathValidation">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/PathValidation.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class PathValidation" class="title">Class PathValidation</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.PathValidation</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public final class </span><span class="element-name type-name-label">PathValidation</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -<div class="block">Class offering a path validation method.</div>
          -<dl class="notes">
          -<dt>Version:</dt>
          -<dd>1.0</dd>
          -<dt>Author:</dt>
          -<dd>Aimeric ADJUTOR</dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">PathValidation</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static boolean</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#isPathValid(java.lang.String)">isPathValid</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Method that checks the validity of a given path</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>PathValidation</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PathValidation</span>()</div>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/AssertionError.html" title="class or interface in java.lang" class="external-link">AssertionError</a></code> - you can't instantiate this class</dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="isPathValid(java.lang.String)">
          -<h3>isPathValid</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isPathValid</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;inputPath)</span></div>
          -<div class="block">Method that checks the validity of a given path</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>inputPath</code> - the path given by the user</dd>
          -<dt>Returns:</dt>
          -<dd>a boolean</dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          index 533a2ad..a1ccc9b 100644
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ b/target/site/apidocs/musichub/business/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          index aa13772..82582dd 100644
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ b/target/site/apidocs/musichub/business/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          index a799c69..097e8c7 100644
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ b/target/site/apidocs/musichub/business/class-use/Album.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          index 6054d2d..a109ca3 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          index ab20cf8..1249775 100644
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          index d0b7007..022df3a 100644
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ b/target/site/apidocs/musichub/business/class-use/Category.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          index 94c178d..a9cd613 100644
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ b/target/site/apidocs/musichub/business/class-use/Genre.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          index 6df04ff..86ed23a 100644
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ b/target/site/apidocs/musichub/business/class-use/Language.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          index 2f00178..683a7e5 100644
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          index c11e6be..3d190ec 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          index 70bbffa..07bc200 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          index 97c5c34..0a7a442 100644
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/PathValidation.html b/target/site/apidocs/musichub/business/class-use/PathValidation.html
          deleted file mode 100644
          index b8a4f5a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/PathValidation.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          -<title>Uses of Class musichub.business.PathValidation (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: PathValidation">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../PathValidation.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.PathValidation" class="title">Uses of Class<br>musichub.business.PathValidation</h1>
          -</div>
          -No usage of musichub.business.PathValidation</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          index 7d039a5..151e091 100644
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ b/target/site/apidocs/musichub/business/class-use/PlayList.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          index 853c506..f7caf68 100644
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ b/target/site/apidocs/musichub/business/class-use/Song.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          index 57c22af..ab9bef3 100644
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ b/target/site/apidocs/musichub/business/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -71,14 +71,10 @@ loadScripts(document, 'script');</script>
           <div class="col-last even-row-color">&nbsp;</div>
           <div class="col-first odd-row-color"><a href="MusicHub.html" title="class in musichub.business">MusicHub</a></div>
           <div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="PathValidation.html" title="class in musichub.business">PathValidation</a></div>
          -<div class="col-last even-row-color">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first odd-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-first even-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
          +<div class="col-first odd-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          +<div class="col-last odd-row-color">&nbsp;</div>
           </div>
           </li>
           <li>
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          index 31cbe13..e1a5f5b 100644
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ b/target/site/apidocs/musichub/business/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -71,7 +71,6 @@ loadScripts(document, 'script');</script>
           </ul>
           </li>
           <li class="circle">musichub.business.<a href="MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.business.<a href="PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
           <ul>
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          index c75e960..89e8d56 100644
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ b/target/site/apidocs/musichub/business/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          index d060888..2a6bcf8 100644
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ b/target/site/apidocs/musichub/main/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          index 2ea6da4..819433d 100644
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ b/target/site/apidocs/musichub/main/class-use/Main.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          index 87c57b3..afcd6ad 100644
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ b/target/site/apidocs/musichub/main/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          index d6354f0..393b386 100644
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ b/target/site/apidocs/musichub/main/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          index 68e7ada..0747159 100644
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ b/target/site/apidocs/musichub/main/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          index 52734c9..53ffdbe 100644
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          index 04b02a0..8c6ad08 100644
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          index 72ff644..24257be 100644
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ b/target/site/apidocs/musichub/util/package-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -63,6 +63,14 @@ loadScripts(document, 'script');</script>
           <div class="summary-table two-column-summary">
           <div class="table-header col-first">Class</div>
           <div class="table-header col-last">Description</div>
          +<div class="col-first even-row-color"><a href="LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          +<div class="col-last even-row-color">
          +<div class="block">Class offering a log writing method.</div>
          +</div>
          +<div class="col-first odd-row-color"><a href="PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          +<div class="col-last odd-row-color">
          +<div class="block">Class offering a path validation method.</div>
          +</div>
           <div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
           <div class="col-last even-row-color">&nbsp;</div>
           </div>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          index 7817d93..ace19b6 100644
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ b/target/site/apidocs/musichub/util/package-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -63,6 +63,8 @@ loadScripts(document, 'script');</script>
           <ul>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
           <ul>
          +<li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          +<li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
           </ul>
           </li>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          index afe8c6d..02a3fc7 100644
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ b/target/site/apidocs/musichub/util/package-use.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          index 1961838..370d2cb 100644
          --- a/target/site/apidocs/overview-summary.html
          +++ b/target/site/apidocs/overview-summary.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>spoteezer 0.1.0 API</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          index 69d606a..943af3e 100644
          --- a/target/site/apidocs/overview-tree.html
          +++ b/target/site/apidocs/overview-tree.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Class Hierarchy (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          @@ -72,9 +72,10 @@ loadScripts(document, 'script');</script>
           <li class="circle">musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
           </ul>
           </li>
          +<li class="circle">musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
           <li class="circle">musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
           <li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/PathValidation.html" title="class in musichub.business"><span class="type-name-link">PathValidation</span></a></li>
          +<li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
           <li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
           <li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
           <ul>
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          index 011c84f..781fdeb 100644
          --- a/target/site/apidocs/serialized-form.html
          +++ b/target/site/apidocs/serialized-form.html
          @@ -2,7 +2,7 @@
           <!-- NewPage -->
           <html lang="fr">
           <head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 14:29:15 CEST 2021 -->
          +<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
           <title>Serialized Form (spoteezer 0.1.0 API)</title>
           <meta name="viewport" content="width=device-width, initial-scale=1">
           <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          index be00fa7..26dac6f 100644
          --- a/target/site/apidocs/type-search-index.js
          +++ b/target/site/apidocs/type-search-index.js
          @@ -1 +1 @@
          -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.business","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          +typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index f0faf92..b800f3f 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 723 of 2 740</td><td class="ctr2">0 %</td><td class="bar">209 of 209</td><td class="ctr2">0 %</td><td class="ctr1">205</td><td class="ctr2">207</td><td class="ctr1">723</td><td class="ctr2">727</td><td class="ctr1">88</td><td class="ctr2">90</td><td class="ctr1">17</td><td class="ctr2">18</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="119" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">174</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">503</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">83</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">16</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="33" height="10" title="588" alt="588"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="28" height="10" title="40" alt="40"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">29</td><td class="ctr2" id="g1">29</td><td class="ctr1" id="h1">199</td><td class="ctr2" id="i1">199</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">4</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 740 of 2 803</td><td class="ctr2">2 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">206</td><td class="ctr2">211</td><td class="ctr1">730</td><td class="ctr2">745</td><td class="ctr1">88</td><td class="ctr2">93</td><td class="ctr1">17</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/><img src="jacoco-resources/greenbar.gif" width="3" height="10" title="63" alt="63"/></td><td class="ctr2" id="c0">46 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 478feda..4058e1f 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-e57e2e00</span></td><td>26 juin 2021, 14:29:08</td><td>26 juin 2021, 14:29:09</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-3e358c1a</span></td><td>26 juin 2021, 14:29:30</td><td>26 juin 2021, 14:29:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-56f46767</span></td><td>26 juin 2021, 14:29:49</td><td>26 juin 2021, 14:29:49</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-e88c304d</span></td><td>26 juin 2021, 14:30:30</td><td>26 juin 2021, 14:30:30</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-20d8781c</span></td><td>26 juin 2021, 14:30:42</td><td>26 juin 2021, 14:30:43</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-442c10a6</span></td><td>26 juin 2021, 14:30:53</td><td>26 juin 2021, 14:30:53</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="musichub.business/PathValidation.html" class="el_class">musichub.business.PathValidation</a></td><td><code>23fa11bc9f27a597</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>c2c5ebe52507fc9e</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>325f5b44374bcaeb</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>4c7ade2bf38c6e74</code></td></tr><tr><td><span class="el_class">musichub.business.PathValidationTest</span></td><td><code>192d10ac364dc41c</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.org.apache.maven.shared.utils.StringUtils</span></td><td><code>336ef03300f29635</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ClassNameStackTraceFilter</span></td><td><code>2e0e75f8104a222a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.PojoStackTraceWriter</span></td><td><code>cdfe959904c6726b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SafeThrowable</span></td><td><code>e61429531d0f0c1c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SmartStackTraceParser</span></td><td><code>05e423188a7bbb31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.BlacklistedExceptions</span></td><td><code>73365157bacc50af</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ExceptionUtils</span></td><td><code>0125033b30a9585f</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">org.opentest4j.AssertionFailedError</span></td><td><code>2c5f69ceb24e9128</code></td></tr><tr><td><span class="el_class">org.opentest4j.ValueWrapper</span></td><td><code>7d0d1c90c1c4c4b3</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-be4b9e12</span></td><td>26 juin 2021, 22:06:25</td><td>26 juin 2021, 22:06:26</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-4db7b834</span></td><td>26 juin 2021, 22:06:38</td><td>26 juin 2021, 22:06:38</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>727806a24a38b49a</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>d7b83ca1e47cacd7</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>b026f96f38b030a9</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 9aff09d..6466855 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -1,7 +1,8 @@
           GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
          +spoteezer,musichub.util,PathValidation,0,17,0,0,0,4,0,2,0,2
          +spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
           spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
          -spoteezer,musichub.business,PathValidation,0,17,0,0,0,4,0,2,0,2
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          @@ -16,4 +17,4 @@ spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,56,0,0,0,6,0,3,0,3,0
           spoteezer,musichub.business,AudioElement,266,0,11,0,72,0,16,0,9,0
          -spoteezer,musichub.main,Main,588,0,40,0,199,0,29,0,3,0
          +spoteezer,musichub.main,Main,605,0,41,0,206,0,30,0,3,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 5a939ee..2e46b55 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-e57e2e00" start="1624710548706" dump="1624710549076"/><sessioninfo id="DESKTOP-M4INQND-3e358c1a" start="1624710570201" dump="1624710570575"/><sessioninfo id="DESKTOP-M4INQND-56f46767" start="1624710589444" dump="1624710589830"/><sessioninfo id="DESKTOP-M4INQND-e88c304d" start="1624710630581" dump="1624710630973"/><sessioninfo id="DESKTOP-M4INQND-20d8781c" start="1624710642738" dump="1624710643144"/><sessioninfo id="DESKTOP-M4INQND-442c10a6" start="1624710653198" dump="1624710653579"/><package name="musichub/util"><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="22"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="34"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="PathValidation.java"><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="5" mb="0" cb="0"/><line nr="34" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="17"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="4"/><counter type="COMPLEXITY" missed="172" covered="2"/><counter type="METHOD" missed="81" covered="2"/><counter type="CLASS" missed="15" covered="1"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="14"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="548" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="185" covered="0"/><counter type="COMPLEXITY" missed="27" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="252"><counter type="INSTRUCTION" missed="37" covered="0"/><counter type="LINE" missed="13" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="14" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="5" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="2" cb="0"/><line nr="29" mi="4" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="14" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="1" ci="0" mb="0" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="3" ci="0" mb="0" cb="0"/><line nr="42" mi="1" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="3" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="3" ci="0" mb="0" cb="0"/><line nr="52" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="3" ci="0" mb="0" cb="0"/><line nr="57" mi="1" ci="0" mb="0" cb="0"/><line nr="60" mi="3" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="65" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="1" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="3" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="83" mi="3" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="3" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="2" cb="0"/><line nr="96" mi="3" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><line nr="101" mi="9" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="3" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="105" mi="10" ci="0" mb="2" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="1" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="109" mi="1" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="3" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="8" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="10" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="1" ci="0" mb="0" cb="0"/><line nr="128" mi="3" ci="0" mb="0" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="132" mi="3" ci="0" mb="0" cb="0"/><line nr="133" mi="3" ci="0" mb="0" cb="0"/><line nr="134" mi="3" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="2" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="7" ci="0" mb="2" cb="0"/><line nr="138" mi="1" ci="0" mb="0" cb="0"/><line nr="139" mi="3" ci="0" mb="0" cb="0"/><line nr="141" mi="3" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="143" mi="3" ci="0" mb="2" cb="0"/><line nr="144" mi="4" ci="0" mb="0" cb="0"/><line nr="145" mi="4" ci="0" mb="0" cb="0"/><line nr="146" mi="1" ci="0" mb="0" cb="0"/><line nr="147" mi="3" ci="0" mb="0" cb="0"/><line nr="149" mi="4" ci="0" mb="0" cb="0"/><line nr="150" mi="1" ci="0" mb="0" cb="0"/><line nr="151" mi="4" ci="0" mb="0" cb="0"/><line nr="152" mi="1" ci="0" mb="0" cb="0"/><line nr="153" mi="3" ci="0" mb="0" cb="0"/><line nr="154" mi="1" ci="0" mb="0" cb="0"/><line nr="155" mi="3" ci="0" mb="0" cb="0"/><line nr="156" mi="1" ci="0" mb="0" cb="0"/><line nr="159" mi="3" ci="0" mb="0" cb="0"/><line nr="160" mi="3" ci="0" mb="0" cb="0"/><line nr="161" mi="3" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="4" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="3" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="10" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="3" ci="0" mb="0" cb="0"/><line nr="176" mi="10" ci="0" mb="2" cb="0"/><line nr="177" mi="1" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="1" ci="0" mb="0" cb="0"/><line nr="182" mi="3" ci="0" mb="0" cb="0"/><line nr="183" mi="3" ci="0" mb="0" cb="0"/><line nr="184" mi="3" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="2" cb="0"/><line nr="186" mi="4" ci="0" mb="0" cb="0"/><line nr="187" mi="4" ci="0" mb="0" cb="0"/><line nr="188" mi="1" ci="0" mb="0" cb="0"/><line nr="189" mi="3" ci="0" mb="0" cb="0"/><line nr="190" mi="3" ci="0" mb="0" cb="0"/><line nr="191" mi="5" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="2" cb="0"/><line nr="197" mi="4" ci="0" mb="0" cb="0"/><line nr="198" mi="4" ci="0" mb="0" cb="0"/><line nr="199" mi="1" ci="0" mb="0" cb="0"/><line nr="200" mi="5" ci="0" mb="2" cb="0"/><line nr="201" mi="3" ci="0" mb="0" cb="0"/><line nr="202" mi="3" ci="0" mb="0" cb="0"/><line nr="204" mi="4" ci="0" mb="0" cb="0"/><line nr="205" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="4" ci="0" mb="0" cb="0"/><line nr="207" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="3" ci="0" mb="0" cb="0"/><line nr="210" mi="3" ci="0" mb="0" cb="0"/><line nr="211" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="1" ci="0" mb="0" cb="0"/><line nr="214" mi="3" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="3" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="0" cb="0"/><line nr="220" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="4" ci="0" mb="0" cb="0"/><line nr="222" mi="4" ci="0" mb="0" cb="0"/><line nr="223" mi="1" ci="0" mb="0" cb="0"/><line nr="224" mi="3" ci="0" mb="0" cb="0"/><line nr="226" mi="3" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="4" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="230" mi="3" ci="0" mb="0" cb="0"/><line nr="231" mi="1" ci="0" mb="0" cb="0"/><line nr="232" mi="3" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="2" ci="0" mb="0" cb="0"/><line nr="237" mi="2" ci="0" mb="0" cb="0"/><line nr="238" mi="2" ci="0" mb="0" cb="0"/><line nr="239" mi="3" ci="0" mb="0" cb="0"/><line nr="240" mi="1" ci="0" mb="0" cb="0"/><line nr="241" mi="3" ci="0" mb="0" cb="0"/><line nr="242" mi="1" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="2" ci="0" mb="0" cb="0"/><line nr="249" mi="1" ci="0" mb="0" cb="0"/><line nr="252" mi="3" ci="0" mb="0" cb="0"/><line nr="253" mi="3" ci="0" mb="0" cb="0"/><line nr="254" mi="3" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="0" cb="0"/><line nr="256" mi="3" ci="0" mb="0" cb="0"/><line nr="257" mi="3" ci="0" mb="0" cb="0"/><line nr="258" mi="3" ci="0" mb="0" cb="0"/><line nr="259" mi="3" ci="0" mb="0" cb="0"/><line nr="260" mi="3" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="588" covered="0"/><counter type="BRANCH" missed="40" covered="0"/><counter type="LINE" missed="199" covered="0"/><counter type="COMPLEXITY" missed="29" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2723" covered="17"/><counter type="BRANCH" missed="209" covered="0"/><counter type="LINE" missed="723" covered="4"/><counter type="COMPLEXITY" missed="205" covered="2"/><counter type="METHOD" missed="88" covered="2"/><counter type="CLASS" missed="17" covered="1"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-be4b9e12" start="1624737985817" dump="1624737986228"/><sessioninfo id="DESKTOP-M4INQND-4db7b834" start="1624737998088" dump="1624737998495"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="37"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="56"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="37" mi="0" ci="5" mb="0" cb="0"/><line nr="40" mi="0" ci="5" mb="0" cb="0"/><line nr="43" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="10" mb="0" cb="0"/><line nr="49" mi="0" ci="1" mb="0" cb="0"/><line nr="56" mi="0" ci="5" mb="0" cb="0"/><line nr="59" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="63"/><counter type="LINE" missed="25" covered="15"/><counter type="COMPLEXITY" missed="4" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="1" covered="2"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2740" covered="63"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="730" covered="15"/><counter type="COMPLEXITY" missed="206" covered="5"/><counter type="METHOD" missed="88" covered="5"/><counter type="CLASS" missed="17" covered="2"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.html b/target/site/jacoco/musichub.business/PathValidation.html
          deleted file mode 100644
          index 3b58bb2..0000000
          --- a/target/site/jacoco/musichub.business/PathValidation.html
          +++ /dev/null
          @@ -1 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">PathValidation</span></div><h1>PathValidation</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 17</td><td class="ctr2">100 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="PathValidation.java.html#L34" class="el_method">isPathValid(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html#L22" class="el_method">PathValidation()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="84" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/PathValidation.java.html b/target/site/jacoco/musichub.business/PathValidation.java.html
          deleted file mode 100644
          index 4d22953..0000000
          --- a/target/site/jacoco/musichub.business/PathValidation.java.html
          +++ /dev/null
          @@ -1,39 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>PathValidation.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">PathValidation.java</span></div><h1>PathValidation.java</h1><pre class="source lang-java linenums">package musichub.business;
          -
          -import java.nio.file.Files;
          -import java.nio.file.Path;
          -import java.nio.file.Paths;
          -
          -/**
          - * Class offering a path validation method.
          - *
          - * @author Aimeric ADJUTOR
          - * @version 1.0
          - */
          -
          -public final class PathValidation {
          -
          -    /**
          -     * Method that just throws an AssertionError if the class is called
          -     * @author Aimeric ADJUTOR
          -     * @throws AssertionError you can't instantiate this class
          -     */
          -
          -<span class="fc" id="L22">    public PathValidation() {</span>
          -<span class="fc" id="L23">        throw new AssertionError(&quot;You just can't instantiate this class.&quot;);</span>
          -    }
          -
          -    /**
          -     * Method that checks the validity of a given path
          -     *
          -     * @param inputPath the path given by the user
          -     * @return a boolean
          -     */
          -
          -    public static boolean isPathValid(String inputPath) {
          -<span class="fc" id="L34">        Path path = Paths.get(inputPath);</span>
          -<span class="fc" id="L35">        return Files.exists(path);</span>
          -    }
          -
          -}
          -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 178e60b..421752c 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a13"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a14"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a15"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c15">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k15">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a10"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b15"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">0</td><td class="ctr2" id="g12">2</td><td class="ctr1" id="h15">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j15">0</td><td class="ctr2" id="k12">2</td><td class="ctr1" id="l15">0</td><td class="ctr2" id="m15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b13"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b14"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 45a5b59..13ddd53 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 080</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">174</td><td class="ctr1">499</td><td class="ctr2">503</td><td class="ctr1">81</td><td class="ctr2">83</td><td class="ctr1">15</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a11"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a10"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="17" alt="17"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">0</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h12">0</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 063 of 2 063</td><td class="ctr2">0 %</td><td class="bar">169 of 169</td><td class="ctr2">0 %</td><td class="ctr1">172</td><td class="ctr2">172</td><td class="ctr1">499</td><td class="ctr2">499</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="266" alt="266"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f3">16</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">72</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="202" alt="202"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f4">14</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h3">53</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j4">7</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h4">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j3">9</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f5">12</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h5">26</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j5">7</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">3</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">3</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b10"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b11"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.html b/target/site/jacoco/musichub.main/Main.html
          index de45b84..ea5f0da 100644
          --- a/target/site/jacoco/musichub.main/Main.html
          +++ b/target/site/jacoco/musichub.main/Main.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L17" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="548" alt="548"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">27</td><td class="ctr2" id="g0">27</td><td class="ctr1" id="h0">185</td><td class="ctr2" id="i0">185</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L252" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L14" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.main</a> &gt; <span class="el_class">Main</span></div><h1>Main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Main.java.html#L18" class="el_method">main(String[])</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="562" alt="562"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">28</td><td class="ctr2" id="g0">28</td><td class="ctr1" id="h0">191</td><td class="ctr2" id="i0">191</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Main.java.html#L261" class="el_method">printAvailableCommands()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="40" alt="40"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Main.java.html#L15" class="el_method">Main()</a></td><td class="bar" id="b2"/><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index df39af0..7ec6a41 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -1,6 +1,7 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Main.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.main</a> &gt; <span class="el_source">Main.java</span></div><h1>Main.java</h1><pre class="source lang-java linenums">package musichub.main;
           
           import musichub.business.*;
          +import musichub.util.LogHandler;
           
           import javax.sound.sampled.LineUnavailableException;
           import javax.sound.sampled.UnsupportedAudioFileException;
          @@ -9,258 +10,267 @@ import java.util.Iterator;
           import java.util.List;
           import java.util.Scanner;
           
          -import static musichub.business.PathValidation.isPathValid;
          +import static musichub.util.PathValidation.isPathValid;
           
          -<span class="nc" id="L14">public class Main {</span>
          +<span class="nc" id="L15">public class Main {</span>
               public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
           
          -<span class="nc" id="L17">        MusicHub theHub = new MusicHub();</span>
          +<span class="nc" id="L18">        MusicHub theHub = new MusicHub();</span>
           
          -<span class="nc" id="L19">        System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L20">        System.out.println(&quot;Type h for available commands&quot;);</span>
           
           
          -<span class="nc" id="L22">        Scanner scan = new Scanner(System.in);</span>
          -<span class="nc" id="L23">        String choice = scan.nextLine();</span>
          +<span class="nc" id="L23">        Scanner scan = new Scanner(System.in);</span>
          +<span class="nc" id="L24">        String choice = scan.nextLine();</span>
           
                   String albumTitle;
           
          -<span class="nc bnc" id="L27" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          +<span class="nc bnc" id="L28" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
           
          -<span class="nc bnc" id="L29" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -<span class="nc bnc" id="L30" title="All 14 branches missed.">            switch (choice.charAt(0)) {</span>
          +<span class="nc bnc" id="L30" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +<span class="nc bnc" id="L31" title="All 15 branches missed.">            switch (choice.charAt(0)) {</span>
                           case 'q': //added the option directly in the switch instead of the loop
          -<span class="nc" id="L32">                    System.exit(0);</span>
          +<span class="nc" id="L33">                    System.exit(0);</span>
                           case 'h':
          -<span class="nc" id="L34">                    printAvailableCommands();</span>
          -<span class="nc" id="L35">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L36">                    break;</span>
          +<span class="nc" id="L35">                    printAvailableCommands();</span>
          +<span class="nc" id="L36">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L37">                    break;</span>
                           case 't':
                               //album titles, ordered by date
          -<span class="nc" id="L39">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -<span class="nc" id="L40">                    printAvailableCommands();</span>
          -<span class="nc" id="L41">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L42">                    break;</span>
          +<span class="nc" id="L40">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L41">                    printAvailableCommands();</span>
          +<span class="nc" id="L42">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L43">                    break;</span>
                           case 'g':
                               //songs of an album, sorted by genre
          -<span class="nc" id="L45">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L46">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L46">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L47">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
           
          -<span class="nc" id="L48">                    albumTitle = scan.nextLine();</span>
          +<span class="nc" id="L49">                    albumTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L50">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          -<span class="nc" id="L51">                        System.out.println(songs);</span>
          -<span class="nc" id="L52">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L53">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L54">                    }</span>
          -<span class="nc" id="L55">                    printAvailableCommands();</span>
          -<span class="nc" id="L56">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L57">                    break;</span>
          +<span class="nc" id="L51">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L52">                        System.out.println(songs);</span>
          +<span class="nc" id="L53">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L54">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L55">                    }</span>
          +<span class="nc" id="L56">                    printAvailableCommands();</span>
          +<span class="nc" id="L57">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L58">                    break;</span>
                           case 'd':
                               //songs of an album
          -<span class="nc" id="L60">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L61">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L61">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +<span class="nc" id="L62">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
           
          -<span class="nc" id="L63">                    albumTitle = scan.nextLine();</span>
          +<span class="nc" id="L64">                    albumTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L65">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L66">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L67">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L68">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L69">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L70">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L71">                    }</span>
          -<span class="nc" id="L72">                    printAvailableCommands();</span>
          -<span class="nc" id="L73">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L74">                    break;</span>
          +<span class="nc" id="L66">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L67">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L68">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L69">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L70">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L71">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L72">                    }</span>
          +<span class="nc" id="L73">                    printAvailableCommands();</span>
          +<span class="nc" id="L74">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L75">                    break;</span>
                           case 'u':
                               //audiobooks ordered by author
          -<span class="nc" id="L77">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L78">                    printAvailableCommands();</span>
          -<span class="nc" id="L79">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L80">                    break;</span>
          +<span class="nc" id="L78">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L79">                    printAvailableCommands();</span>
          +<span class="nc" id="L80">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L81">                    break;</span>
                           case 'c':
                               // add a new song
          -<span class="nc" id="L83">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L84">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L85">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L86">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L87">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L88">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L89">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L90">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -<span class="nc" id="L91">                    int length = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L84">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L85">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L86">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L87">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L88">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L89">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L90">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L91">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +<span class="nc" id="L92">                    int length = Integer.parseInt(scan.nextLine());</span>
           
          -<span class="nc" id="L93">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc" id="L94">                    String content = scan.nextLine();</span>
          -<span class="nc bnc" id="L95" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L96">                        System.out.println(&quot;The music file was not found with the path you've provided.\nType h for available commands&quot;);</span>
          -<span class="nc" id="L97">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L98">                        break;</span>
          +<span class="nc" id="L94">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc" id="L95">                    String content = scan.nextLine();</span>
          +<span class="nc bnc" id="L96" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided.&quot;;</span>
          +<span class="nc" id="L98">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          +<span class="nc" id="L99">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          +<span class="nc" id="L100">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L101">                        break;</span>
                               }
           
          -<span class="nc" id="L101">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L102">                    theHub.addElement(s);</span>
          -<span class="nc" id="L103">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc" id="L104">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc bnc" id="L105" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L106">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L107">                    printAvailableCommands();</span>
          -<span class="nc" id="L108">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L109">                    break;</span>
          +<span class="nc" id="L104">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L105">                    theHub.addElement(s);</span>
          +<span class="nc" id="L106">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc" id="L107">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L109">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L110">                    printAvailableCommands();</span>
          +<span class="nc" id="L111">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L112">                    break;</span>
                           case 'a':
                               // add a new album
          -<span class="nc" id="L112">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L113">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L114">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L115">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L116">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L117">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L118">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L119">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L120">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L121">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L122">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L123">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc" id="L124">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc bnc" id="L125" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L126">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L127">                    printAvailableCommands();</span>
          -<span class="nc" id="L128">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L129">                    break;</span>
          +<span class="nc" id="L115">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L116">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L117">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L118">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L119">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L120">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L121">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L122">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L123">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L124">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L125">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L126">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc" id="L127">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc bnc" id="L128" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L129">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L130">                    printAvailableCommands();</span>
          +<span class="nc" id="L131">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L132">                    break;</span>
                           case '+':
                               //add a song to an album:
          -<span class="nc" id="L132">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L133">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc" id="L134">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc bnc" id="L135" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          -<span class="nc" id="L136">                        AudioElement ae = itae.next();</span>
          -<span class="nc bnc" id="L137" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L138">                    }</span>
          -<span class="nc" id="L139">                    String songTitle = scan.nextLine();</span>
          +<span class="nc" id="L135">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L136">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc" id="L137">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          +<span class="nc" id="L139">                        AudioElement ae = itae.next();</span>
          +<span class="nc bnc" id="L140" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L141">                    }</span>
          +<span class="nc" id="L142">                    String songTitle = scan.nextLine();</span>
           
          -<span class="nc" id="L141">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc" id="L142">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc bnc" id="L143" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L144">                        Album al = ait.next();</span>
          -<span class="nc" id="L145">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L146">                    }</span>
          -<span class="nc" id="L147">                    String titleAlbum = scan.nextLine();</span>
          +<span class="nc" id="L144">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc" id="L145">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L147">                        Album al = ait.next();</span>
          +<span class="nc" id="L148">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L149">                    }</span>
          +<span class="nc" id="L150">                    String titleAlbum = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L149">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L150">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L151">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L152">                    }</span>
          -<span class="nc" id="L153">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L154">                    printAvailableCommands();</span>
          -<span class="nc" id="L155">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L156">                    break;</span>
          +<span class="nc" id="L152">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L153">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L154">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L155">                    }</span>
          +<span class="nc" id="L156">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L157">                    printAvailableCommands();</span>
          +<span class="nc" id="L158">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L159">                    break;</span>
                           case 'l':
                               // add a new audiobook
          -<span class="nc" id="L159">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L160">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L161">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L162">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L163">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L164">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L165">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L166">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L167">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L168">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L169">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L170">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L171">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L172">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L173">                    theHub.addElement(b);</span>
          -<span class="nc" id="L174">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc" id="L175">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc bnc" id="L176" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L177">                    printAvailableCommands();</span>
          -<span class="nc" id="L178">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L179">                    break;</span>
          +<span class="nc" id="L162">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L163">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L164">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L165">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L166">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L167">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L168">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L169">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L170">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L171">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L172">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L173">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L174">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L175">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L176">                    theHub.addElement(b);</span>
          +<span class="nc" id="L177">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc" id="L178">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc bnc" id="L179" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L180">                    printAvailableCommands();</span>
          +<span class="nc" id="L181">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L182">                    break;</span>
                           case 'p':
                               //create a new playlist from existing elements
          -<span class="nc" id="L182">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L183">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc" id="L184">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc bnc" id="L185" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L186">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L187">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L188">                    }</span>
          -<span class="nc" id="L189">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L190">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L191">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L192">                    theHub.addPlaylist(pl);</span>
          -<span class="nc" id="L193">                    System.out.println(&quot;Available elements: &quot;);</span>
          +<span class="nc" id="L185">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L186">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc" id="L187">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc bnc" id="L188" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L189">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L190">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L191">                    }</span>
          +<span class="nc" id="L192">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L193">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L194">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L195">                    theHub.addPlaylist(pl);</span>
          +<span class="nc" id="L196">                    System.out.println(&quot;Available elements: &quot;);</span>
           
          -<span class="nc" id="L195">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc bnc" id="L196" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L197">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L198">                        System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L199">                    }</span>
          -<span class="nc bnc" id="L200" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L201">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -<span class="nc" id="L202">                        String elementTitle = scan.nextLine();</span>
          +<span class="nc" id="L198">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L200">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L201">                        System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L202">                    }</span>
          +<span class="nc bnc" id="L203" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L204">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +<span class="nc" id="L205">                        String elementTitle = scan.nextLine();</span>
                                   try {
          -<span class="nc" id="L204">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L205">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L206">                            System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L207">                        }</span>
          +<span class="nc" id="L207">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L208">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L209">                            System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L210">                        }</span>
           
          -<span class="nc" id="L209">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L210">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L211">                    }</span>
          -<span class="nc" id="L212">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L213">                    printAvailableCommands();</span>
          -<span class="nc" id="L214">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L215">                    break;</span>
          +<span class="nc" id="L212">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L213">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L214">                    }</span>
          +<span class="nc" id="L215">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L216">                    printAvailableCommands();</span>
          +<span class="nc" id="L217">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L218">                    break;</span>
                           case '-':
                               //delete a playlist
          -<span class="nc" id="L218">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc" id="L219">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc bnc" id="L220" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L221">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L222">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L223">                    }</span>
          -<span class="nc" id="L224">                    String plTitle = scan.nextLine();</span>
          +<span class="nc" id="L221">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc" id="L222">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc bnc" id="L223" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L224">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L225">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L226">                    }</span>
          +<span class="nc" id="L227">                    String plTitle = scan.nextLine();</span>
                               try {
          -<span class="nc" id="L226">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L227">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L228">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L229">                    }</span>
          -<span class="nc" id="L230">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L231">                    printAvailableCommands();</span>
          -<span class="nc" id="L232">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L233">                    break;</span>
          +<span class="nc" id="L229">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L230">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L231">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L232">                    }</span>
          +<span class="nc" id="L233">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L234">                    printAvailableCommands();</span>
          +<span class="nc" id="L235">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L236">                    break;</span>
                           case 's':
                               //save elements, albums, playlists
          -<span class="nc" id="L236">                    theHub.saveElements();</span>
          -<span class="nc" id="L237">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L238">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L239">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L240">                    printAvailableCommands();</span>
          -<span class="nc" id="L241">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L242">                    break;</span>
          +<span class="nc" id="L239">                    theHub.saveElements();</span>
          +<span class="nc" id="L240">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L241">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L242">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L243">                    printAvailableCommands();</span>
          +<span class="nc" id="L244">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L245">                    break;</span>
          +                case 'o':
          +                    //consult the app logs
          +<span class="nc" id="L248">                    LogHandler.read();</span>
          +<span class="nc" id="L249">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +<span class="nc" id="L250">                    choice = scan.nextLine();</span>
          +<span class="nc" id="L251">                    break;</span>
                           default:
           
          -<span class="nc" id="L245">                    break;</span>
          +<span class="nc" id="L254">                    break;</span>
                       }
                   }
          -<span class="nc" id="L248">        scan.close();</span>
          -<span class="nc" id="L249">    }</span>
          +<span class="nc" id="L257">        scan.close();</span>
          +<span class="nc" id="L258">    }</span>
           
               private static void printAvailableCommands() {
          -<span class="nc" id="L252">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L253">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L254">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L255">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L256">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L257">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L258">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L259">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -<span class="nc" id="L260">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          -<span class="nc" id="L261">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          -<span class="nc" id="L262">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          -<span class="nc" id="L263">        System.out.println(&quot;q: quit program&quot;);</span>
          -<span class="nc" id="L264">    }</span>
          +<span class="nc" id="L261">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L262">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L263">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L264">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L265">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L266">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L267">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L268">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +<span class="nc" id="L269">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          +<span class="nc" id="L270">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          +<span class="nc" id="L271">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          +<span class="nc" id="L272">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          +<span class="nc" id="L273">        System.out.println(&quot;q: quit program&quot;);</span>
          +<span class="nc" id="L274">    }</span>
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.html b/target/site/jacoco/musichub.main/index.html
          index c4e995d..191e4db 100644
          --- a/target/site/jacoco/musichub.main/index.html
          +++ b/target/site/jacoco/musichub.main/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.html" class="el_class">Main</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/index.source.html b/target/site/jacoco/musichub.main/index.source.html
          index 189774f..654a78a 100644
          --- a/target/site/jacoco/musichub.main/index.source.html
          +++ b/target/site/jacoco/musichub.main/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">588 of 588</td><td class="ctr2">0 %</td><td class="bar">40 of 40</td><td class="ctr2">0 %</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="588" alt="588"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="40" alt="40"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">29</td><td class="ctr2" id="g0">29</td><td class="ctr1" id="h0">199</td><td class="ctr2" id="i0">199</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.main</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.main</span></div><h1>musichub.main</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">605 of 605</td><td class="ctr2">0 %</td><td class="bar">41 of 41</td><td class="ctr2">0 %</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">206</td><td class="ctr2">206</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Main.java.html" class="el_source">Main.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="605" alt="605"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="41" alt="41"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">30</td><td class="ctr2" id="g0">30</td><td class="ctr1" id="h0">206</td><td class="ctr2" id="i0">206</td><td class="ctr1" id="j0">3</td><td class="ctr2" id="k0">3</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 1194ec1..20f0d2b 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index e6f6dba..f8bbd4e 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          index 16e8971..ea96baa 100644
          Binary files a/target/spoteezer-0.1.0.jar and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          deleted file mode 100644
          index 4a19c26..0000000
          --- a/target/surefire-reports/TEST-musichub.business.PathValidationTest.xml
          +++ /dev/null
          @@ -1,60 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PathValidationTest" time="0.014" tests="2" errors="0" skipped="0" failures="0">
          -  <properties>
          -    <property name="java.specification.version" value="16"/>
          -    <property name="sun.cpu.isalist" value="amd64"/>
          -    <property name="sun.jnu.encoding" value="Cp1252"/>
          -    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          -    <property name="java.vm.vendor" value="Oracle Corporation"/>
          -    <property name="sun.arch.data.model" value="64"/>
          -    <property name="user.variant" value=""/>
          -    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          -    <property name="user.timezone" value="Europe/Paris"/>
          -    <property name="os.name" value="Windows 10"/>
          -    <property name="java.vm.specification.version" value="16"/>
          -    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          -    <property name="user.country" value="FR"/>
          -    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          -    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492 2021-06-26T14-30-52_984-jvmRun1 surefire12207114920762145658tmp surefire_04118465738105299962tmp"/>
          -    <property name="jdk.debug" value="release"/>
          -    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          -    <property name="sun.cpu.endian" value="little"/>
          -    <property name="user.home" value="C:\Users\SoftA"/>
          -    <property name="user.language" value="fr"/>
          -    <property name="java.specification.vendor" value="Oracle Corporation"/>
          -    <property name="java.version.date" value="2021-04-20"/>
          -    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          -    <property name="file.separator" value="\"/>
          -    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          -    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          -    <property name="line.separator" value="&#10;"/>
          -    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          -    <property name="java.specification.name" value="Java Platform API Specification"/>
          -    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire432352315427642492\surefirebooter9321675300695943827.jar"/>
          -    <property name="user.script" value=""/>
          -    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          -    <property name="java.runtime.version" value="16.0.1+9-24"/>
          -    <property name="user.name" value="SoftA"/>
          -    <property name="path.separator" value=";"/>
          -    <property name="os.version" value="10.0"/>
          -    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          -    <property name="file.encoding" value="Cp1252"/>
          -    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          -    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          -    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          -    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          -    <property name="java.version" value="16.0.1"/>
          -    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          -    <property name="os.arch" value="amd64"/>
          -    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          -    <property name="sun.os.patch.level" value=""/>
          -    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          -    <property name="java.vm.info" value="mixed mode, sharing"/>
          -    <property name="java.vendor" value="Oracle Corporation"/>
          -    <property name="java.vm.version" value="16.0.1+9-24"/>
          -    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          -    <property name="java.class.version" value="60.0"/>
          -  </properties>
          -  <testcase name="testPathValidationClass" classname="musichub.business.PathValidationTest" time="0.007"/>
          -  <testcase name="testIsPathValid" classname="musichub.business.PathValidationTest" time="0.002"/>
          -</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.PathValidationTest.txt b/target/surefire-reports/musichub.business.PathValidationTest.txt
          deleted file mode 100644
          index 87f14cb..0000000
          --- a/target/surefire-reports/musichub.business.PathValidationTest.txt
          +++ /dev/null
          @@ -1,4 +0,0 @@
          --------------------------------------------------------------------------------
          -Test set: musichub.business.PathValidationTest
          --------------------------------------------------------------------------------
          -Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.PathValidationTest
          -- 
          cgit v1.2.3
          
          
          From d4c6fe18ca94ed0880720d7ff135b82920d764b4 Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 11:16:21 +0200
          Subject: XMLHandler tests covered at 91%
          
          ---
           files/parse_JUnit.xml                              |   4 +
           log/spoteezer.log                                  |  22 +-
           src/test/java/musichub/util/LogHandlerTest.java    |  20 +-
           .../java/musichub/util/PathValidationTest.java     |  20 +-
           src/test/java/musichub/util/XMLHandlerTest.java    |  14 +-
           target/jacoco.exec                                 | Bin 27236 -> 14814 bytes
           .../javadoc-options-javadoc-resources.xml          |  10 -
           target/maven-archiver/pom.properties               |   5 -
           target/maven-javadoc-plugin-stale-data.txt         |  66 --
           .../default-testCompile/createdFiles.lst           |   1 +
           .../testCompile/default-testCompile/inputFiles.lst |   1 +
           target/original-spoteezer-0.1.0.jar                | Bin 33244 -> 0 bytes
           target/site/apidocs/allclasses-index.html          | 114 ---
           target/site/apidocs/allpackages-index.html         |  76 --
           target/site/apidocs/element-list                   |   3 -
           target/site/apidocs/help-doc.html                  | 162 ----
           target/site/apidocs/index-all.html                 | 410 ----------
           target/site/apidocs/index.html                     |  78 --
           target/site/apidocs/jquery-ui.overrides.css        |  34 -
           target/site/apidocs/member-search-index.js         |   1 -
           target/site/apidocs/module-search-index.js         |   1 -
           target/site/apidocs/musichub/business/Album.html   | 250 -------
           .../site/apidocs/musichub/business/AudioBook.html  | 273 -------
           .../apidocs/musichub/business/AudioElement.html    | 325 --------
           .../site/apidocs/musichub/business/Category.html   | 258 -------
           target/site/apidocs/musichub/business/Genre.html   | 266 -------
           .../site/apidocs/musichub/business/Language.html   | 258 -------
           .../site/apidocs/musichub/business/MusicHub.html   | 412 ----------
           .../musichub/business/NoAlbumFoundException.html   | 150 ----
           .../musichub/business/NoElementFoundException.html | 150 ----
           .../business/NoPlayListFoundException.html         | 150 ----
           .../site/apidocs/musichub/business/PlayList.html   | 215 ------
           target/site/apidocs/musichub/business/Song.html    | 251 -------
           .../apidocs/musichub/business/class-use/Album.html |  99 ---
           .../musichub/business/class-use/AudioBook.html     |  65 --
           .../musichub/business/class-use/AudioElement.html  | 124 ---
           .../musichub/business/class-use/Category.html      | 101 ---
           .../apidocs/musichub/business/class-use/Genre.html |  98 ---
           .../musichub/business/class-use/Language.html      | 101 ---
           .../musichub/business/class-use/MusicHub.html      |  65 --
           .../business/class-use/NoAlbumFoundException.html  | 101 ---
           .../class-use/NoElementFoundException.html         |  95 ---
           .../class-use/NoPlayListFoundException.html        |  94 ---
           .../musichub/business/class-use/PlayList.html      |  99 ---
           .../apidocs/musichub/business/class-use/Song.html  |  90 ---
           .../apidocs/musichub/business/package-summary.html | 116 ---
           .../apidocs/musichub/business/package-tree.html    | 114 ---
           .../apidocs/musichub/business/package-use.html     | 105 ---
           target/site/apidocs/musichub/main/Main.html        | 175 -----
           .../site/apidocs/musichub/main/class-use/Main.html |  65 --
           .../apidocs/musichub/main/package-summary.html     |  80 --
           .../site/apidocs/musichub/main/package-tree.html   |  79 --
           target/site/apidocs/musichub/main/package-use.html |  65 --
           target/site/apidocs/musichub/util/XMLHandler.html  | 186 -----
           .../musichub/util/class-use/XMLHandler.html        |  65 --
           .../apidocs/musichub/util/package-summary.html     |  88 ---
           .../site/apidocs/musichub/util/package-tree.html   |  81 --
           target/site/apidocs/musichub/util/package-use.html |  65 --
           target/site/apidocs/overview-summary.html          |  27 -
           target/site/apidocs/overview-tree.html             | 120 ---
           target/site/apidocs/package-search-index.js        |   1 -
           target/site/apidocs/resources/glass.png            | Bin 499 -> 0 bytes
           target/site/apidocs/resources/x.png                | Bin 394 -> 0 bytes
           .../images/ui-bg_glass_55_fbf9ee_1x400.png         | Bin 335 -> 0 bytes
           .../images/ui-bg_glass_65_dadada_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_75_dadada_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_75_e6e6e6_1x400.png         | Bin 262 -> 0 bytes
           .../images/ui-bg_glass_95_fef1ec_1x400.png         | Bin 332 -> 0 bytes
           .../ui-bg_highlight-soft_75_cccccc_1x100.png       | Bin 280 -> 0 bytes
           .../script-dir/images/ui-icons_222222_256x240.png  | Bin 6922 -> 0 bytes
           .../script-dir/images/ui-icons_2e83ff_256x240.png  | Bin 4549 -> 0 bytes
           .../script-dir/images/ui-icons_454545_256x240.png  | Bin 6992 -> 0 bytes
           .../script-dir/images/ui-icons_888888_256x240.png  | Bin 6999 -> 0 bytes
           .../script-dir/images/ui-icons_cd0a0a_256x240.png  | Bin 4549 -> 0 bytes
           target/site/apidocs/script-dir/jquery-3.5.1.min.js |   2 -
           target/site/apidocs/script-dir/jquery-ui.min.css   |   7 -
           target/site/apidocs/script-dir/jquery-ui.min.js    |   6 -
           .../apidocs/script-dir/jquery-ui.structure.min.css |   5 -
           target/site/apidocs/script.js                      | 132 ----
           target/site/apidocs/search.js                      | 354 ---------
           target/site/apidocs/serialized-form.html           |  89 ---
           target/site/apidocs/stylesheet.css                 | 827 ---------------------
           target/site/apidocs/tag-search-index.js            |   1 -
           target/site/apidocs/type-search-index.js           |   1 -
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   2 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           target/site/jacoco/musichub.util/XMLHandler.html   |   2 +-
           .../site/jacoco/musichub.util/XMLHandler.java.html |  42 +-
           target/site/jacoco/musichub.util/index.html        |   2 +-
           target/site/jacoco/musichub.util/index.source.html |   2 +-
           target/spoteezer-0.1.0.jar                         | Bin 369146 -> 0 bytes
           93 files changed, 82 insertions(+), 7962 deletions(-)
           create mode 100644 files/parse_JUnit.xml
           delete mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
           delete mode 100644 target/maven-archiver/pom.properties
           delete mode 100644 target/maven-javadoc-plugin-stale-data.txt
           delete mode 100644 target/original-spoteezer-0.1.0.jar
           delete mode 100644 target/site/apidocs/allclasses-index.html
           delete mode 100644 target/site/apidocs/allpackages-index.html
           delete mode 100644 target/site/apidocs/element-list
           delete mode 100644 target/site/apidocs/help-doc.html
           delete mode 100644 target/site/apidocs/index-all.html
           delete mode 100644 target/site/apidocs/index.html
           delete mode 100644 target/site/apidocs/jquery-ui.overrides.css
           delete mode 100644 target/site/apidocs/member-search-index.js
           delete mode 100644 target/site/apidocs/module-search-index.js
           delete mode 100644 target/site/apidocs/musichub/business/Album.html
           delete mode 100644 target/site/apidocs/musichub/business/AudioBook.html
           delete mode 100644 target/site/apidocs/musichub/business/AudioElement.html
           delete mode 100644 target/site/apidocs/musichub/business/Category.html
           delete mode 100644 target/site/apidocs/musichub/business/Genre.html
           delete mode 100644 target/site/apidocs/musichub/business/Language.html
           delete mode 100644 target/site/apidocs/musichub/business/MusicHub.html
           delete mode 100644 target/site/apidocs/musichub/business/NoAlbumFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/NoElementFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/NoPlayListFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/PlayList.html
           delete mode 100644 target/site/apidocs/musichub/business/Song.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Album.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/AudioBook.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/AudioElement.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Category.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Genre.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Language.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/MusicHub.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/PlayList.html
           delete mode 100644 target/site/apidocs/musichub/business/class-use/Song.html
           delete mode 100644 target/site/apidocs/musichub/business/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/business/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/business/package-use.html
           delete mode 100644 target/site/apidocs/musichub/main/Main.html
           delete mode 100644 target/site/apidocs/musichub/main/class-use/Main.html
           delete mode 100644 target/site/apidocs/musichub/main/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/main/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/main/package-use.html
           delete mode 100644 target/site/apidocs/musichub/util/XMLHandler.html
           delete mode 100644 target/site/apidocs/musichub/util/class-use/XMLHandler.html
           delete mode 100644 target/site/apidocs/musichub/util/package-summary.html
           delete mode 100644 target/site/apidocs/musichub/util/package-tree.html
           delete mode 100644 target/site/apidocs/musichub/util/package-use.html
           delete mode 100644 target/site/apidocs/overview-summary.html
           delete mode 100644 target/site/apidocs/overview-tree.html
           delete mode 100644 target/site/apidocs/package-search-index.js
           delete mode 100644 target/site/apidocs/resources/glass.png
           delete mode 100644 target/site/apidocs/resources/x.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
           delete mode 100644 target/site/apidocs/script-dir/jquery-3.5.1.min.js
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.min.css
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.min.js
           delete mode 100644 target/site/apidocs/script-dir/jquery-ui.structure.min.css
           delete mode 100644 target/site/apidocs/script.js
           delete mode 100644 target/site/apidocs/search.js
           delete mode 100644 target/site/apidocs/serialized-form.html
           delete mode 100644 target/site/apidocs/stylesheet.css
           delete mode 100644 target/site/apidocs/tag-search-index.js
           delete mode 100644 target/site/apidocs/type-search-index.js
           delete mode 100644 target/spoteezer-0.1.0.jar
          
          (limited to 'target/maven-archiver/pom.properties')
          
          diff --git a/files/parse_JUnit.xml b/files/parse_JUnit.xml
          new file mode 100644
          index 0000000..92f7c75
          --- /dev/null
          +++ b/files/parse_JUnit.xml
          @@ -0,0 +1,4 @@
          +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
          +<parse>
          +
          +</parse>
          \ No newline at end of file
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index 834e29f..910a4f2 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -3,4 +3,24 @@
           [2021-06-26 21:45:11.453] WARNING: The music file was not found with the path you've provided.
           [2021-06-26 22:05:28.614] INFO: JUnit test
           [2021-06-26 22:06:26.191] INFO: JUnit test
          -[2021-06-26 22:06:38.453] INFO: JUnit test
          \ No newline at end of file
          +[2021-06-26 22:06:38.453] INFO: JUnit test
          +[2021-06-27 10:23:31.646] INFO: JUnit test
          +[2021-06-27 10:31:25.514] INFO: JUnit test
          +[2021-06-27 10:38:07.141] INFO: JUnit test
          +[2021-06-27 10:42:26.41] INFO: JUnit test
          +[2021-06-27 10:44:04.343] INFO: JUnit test
          +[2021-06-27 10:44:22.383] INFO: JUnit test
          +[2021-06-27 10:50:24.719] INFO: JUnit test
          +[2021-06-27 10:52:37.112] INFO: JUnit test
          +[2021-06-27 10:52:59.042] INFO: JUnit test
          +[2021-06-27 10:57:26.087] INFO: JUnit test
          +[2021-06-27 10:58:04.601] INFO: JUnit test
          +[2021-06-27 11:03:08.428] INFO: JUnit test
          +[2021-06-27 11:05:43.601] INFO: JUnit test
          +[2021-06-27 11:06:15.442] INFO: JUnit test
          +[2021-06-27 11:06:35.753] INFO: JUnit test
          +[2021-06-27 11:08:19.669] INFO: JUnit test
          +[2021-06-27 11:09:37.095] INFO: JUnit test
          +[2021-06-27 11:09:46.982] INFO: JUnit test
          +[2021-06-27 11:13:46.639] INFO: JUnit test
          +[2021-06-27 11:15:45.379] INFO: JUnit test
          \ No newline at end of file
          diff --git a/src/test/java/musichub/util/LogHandlerTest.java b/src/test/java/musichub/util/LogHandlerTest.java
          index 17b47f6..3965520 100644
          --- a/src/test/java/musichub/util/LogHandlerTest.java
          +++ b/src/test/java/musichub/util/LogHandlerTest.java
          @@ -11,6 +11,16 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
           import static org.junit.jupiter.api.Assertions.assertTrue;
           
           public class LogHandlerTest {
          +    @Test
          +    void testLogHandlerClass() {
          +        try {
          +            LogHandler logHandlerClass = new LogHandler();
          +        } catch (Error e) {
          +            assertTrue(e instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", e.getMessage());
          +        }
          +    }
          +
               @Test
               void testWrite() {
                   try {
          @@ -28,14 +38,4 @@ public class LogHandlerTest {
                       e.printStackTrace();
                   }
               }
          -
          -    @Test
          -    void testLogHandlerClass() {
          -        try {
          -            LogHandler logHandlerClass = new LogHandler();
          -        } catch (Error ex) {
          -            assertTrue(ex instanceof AssertionError);
          -            assertEquals("You just can't instantiate this class.", ex.getMessage());
          -        }
          -    }
           }
          diff --git a/src/test/java/musichub/util/PathValidationTest.java b/src/test/java/musichub/util/PathValidationTest.java
          index 4c7a3d6..b0e0c38 100644
          --- a/src/test/java/musichub/util/PathValidationTest.java
          +++ b/src/test/java/musichub/util/PathValidationTest.java
          @@ -7,20 +7,20 @@ import static musichub.util.PathValidation.isPathValid;
           import static org.junit.jupiter.api.Assertions.*;
           
           public class PathValidationTest {
          -    @Test
          -    void testIsPathValid() {
          -        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          -        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          -        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          -    }
          -
               @Test
               void testPathValidationClass() {
                   try {
                       PathValidation pathValidationClass = new PathValidation();
          -        } catch (Error ex) {
          -            assertTrue(ex instanceof AssertionError);
          -            assertEquals("You just can't instantiate this class.", ex.getMessage());
          +        } catch (Error e) {
          +            assertTrue(e instanceof AssertionError);
          +            assertEquals("You just can't instantiate this class.", e.getMessage());
                   }
               }
          +
          +    @Test
          +    void testIsPathValid() {
          +        assertTrue(isPathValid("Song/Side_To_Side.wav")); //the right path
          +        assertFalse(isPathValid("wrong_path/Side_To_Side.wav")); //wrong path
          +        assertFalse(isPathValid("Song/Side_To_Side.mp3")); //wrong extension
          +    }
           }
          diff --git a/src/test/java/musichub/util/XMLHandlerTest.java b/src/test/java/musichub/util/XMLHandlerTest.java
          index 1be2258..7b5a791 100644
          --- a/src/test/java/musichub/util/XMLHandlerTest.java
          +++ b/src/test/java/musichub/util/XMLHandlerTest.java
          @@ -10,11 +10,6 @@ public class XMLHandlerTest {
               final String DIR = System.getProperty("user.dir");
               final String JUNIT_FILE_PATH = DIR + "/files/JUnit.xml";
           
          -/*    @Test
          -    void testXMLHandlerClass() {
          -            XMLHandler xmlHandler = new XMLHandler();
          -    }*/
          -
               @Test
               void testCreateXML() {
                   XMLHandler xmlHandler = new XMLHandler(); //XML class
          @@ -24,7 +19,12 @@ public class XMLHandlerTest {
           
               @Test
               void testParseXMLFile() {
          +        final String PARSE_DIR = System.getProperty("user.dir");
          +        final String PARSE_FILE_PATH = PARSE_DIR + "/files/parse_JUnit.xml";
                   XMLHandler xmlHandler = new XMLHandler();
          -        NodeList albumNodes = xmlHandler.parseXMLFile(JUNIT_FILE_PATH);
          +        //wrong content of file resulting in an exception, will print it during test but it's normal
          +        NodeList junitNodes = xmlHandler.parseXMLFile(JUNIT_FILE_PATH);
          +        //right content of file
          +        NodeList parseNodes = xmlHandler.parseXMLFile(PARSE_FILE_PATH);
               }
          -}
          +}
          \ No newline at end of file
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 5deaa95..51b090d 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          deleted file mode 100644
          index 8b89c97..0000000
          --- a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          +++ /dev/null
          @@ -1,10 +0,0 @@
          -<?xml version="1.0" encoding="UTF-8"?>
          -<javadocOptions>
          -  <docletArtifacts>
          -    <docletArtifact />
          -  </docletArtifacts>
          -  <tagletArtifacts>
          -    <tagletArtifact />
          -  </tagletArtifacts>
          -  <javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
          -</javadocOptions>
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          deleted file mode 100644
          index 9bf0389..0000000
          --- a/target/maven-archiver/pom.properties
          +++ /dev/null
          @@ -1,5 +0,0 @@
          -#Generated by Maven
          -#Sat Jun 26 22:06:26 CEST 2021
          -groupId=esiea.softwareengineering
          -artifactId=spoteezer
          -version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          deleted file mode 100644
          index e5ff7a2..0000000
          --- a/target/maven-javadoc-plugin-stale-data.txt
          +++ /dev/null
          @@ -1,66 +0,0 @@
          -@options
          -@argfile
          --classpath
          -'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar'
          --encoding
          -'Cp1252'
          --protected
          ---release
          -16
          --sourcepath
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java'
          --author
          --bottom
          -'Copyright &#169; 2021. All rights reserved.'
          --charset
          -'UTF-8'
          --d
          -'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs'
          --docencoding
          -'UTF-8'
          --doctitle
          -'spoteezer 0.1.0 API'
          --use
          --version
          --windowtitle
          -'spoteezer 0.1.0 API'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
          -'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
          -C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
          -C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          -C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770
          -C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
          -C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
          -C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624737994231
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624737994233
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624737994134
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624737994257
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624737994253
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624737994214
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624737994280
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624737994238
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624737994234
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624737994255
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624737994211
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624737994235
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624737994260
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624737994263
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624737994156
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624737994259
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624737994239
          -C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624737994236
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 13c2c99..5941d84 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,2 +1,3 @@
          +musichub\util\XMLHandlerTest.class
           musichub\util\PathValidationTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          index 1b9eea3..8cbb196 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
          @@ -1,2 +1,3 @@
          +C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\XMLHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\LogHandlerTest.java
           C:\Users\SoftA\Documents\spoteezer\src\test\java\musichub\util\PathValidationTest.java
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          deleted file mode 100644
          index e14293d..0000000
          Binary files a/target/original-spoteezer-0.1.0.jar and /dev/null differ
          diff --git a/target/site/apidocs/allclasses-index.html b/target/site/apidocs/allclasses-index.html
          deleted file mode 100644
          index e4d9f65..0000000
          --- a/target/site/apidocs/allclasses-index.html
          +++ /dev/null
          @@ -1,114 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>All Classes (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="class index">
          -<meta name="generator" content="javadoc/AllClassesIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="all-classes-index-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="All&amp;nbsp;Classes" class="title">All&nbsp;Classes</h1>
          -</div>
          -<div id="all-classes-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="all-classes-table-tab0" role="tab" aria-selected="true" aria-controls="all-classes-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table', 2)" class="active-table-tab">All Classes</button><button id="all-classes-table-tab2" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab2', 2)" class="table-tab">Class Summary</button><button id="all-classes-table-tab3" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab3', 2)" class="table-tab">Enum Class Summary</button><button id="all-classes-table-tab4" role="tab" aria-selected="false" aria-controls="all-classes-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('all-classes-table', 'all-classes-table-tab4', 2)" class="table-tab">Exception Summary</button></div>
          -<div id="all-classes-table.tabpanel" role="tabpanel">
          -<div class="summary-table two-column-summary" aria-labelledby="all-classes-table-tab0">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Album.html" title="class in musichub.business">Album</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab3"><a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab3">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          -<div class="block">Class offering a log writing method.</div>
          -</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/main/Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          -<div class="col-last even-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table all-classes-table-tab4"><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last odd-row-color all-classes-table all-classes-table-tab4">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first even-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/business/Song.html" title="class in musichub.business">Song</a></div>
          -<div class="col-last even-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-classes-table-tab2 all-classes-table"><a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          -<div class="col-last odd-row-color all-classes-table-tab2 all-classes-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/allpackages-index.html b/target/site/apidocs/allpackages-index.html
          deleted file mode 100644
          index 1670da5..0000000
          --- a/target/site/apidocs/allpackages-index.html
          +++ /dev/null
          @@ -1,76 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>All Packages (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="package index">
          -<meta name="generator" content="javadoc/AllPackagesIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="all-packages-index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="All&amp;nbsp;Packages" class="title">All&nbsp;Packages</h1>
          -</div>
          -<div class="caption"><span>Package Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/element-list b/target/site/apidocs/element-list
          deleted file mode 100644
          index 87e8cdc..0000000
          --- a/target/site/apidocs/element-list
          +++ /dev/null
          @@ -1,3 +0,0 @@
          -musichub.business
          -musichub.main
          -musichub.util
          diff --git a/target/site/apidocs/help-doc.html b/target/site/apidocs/help-doc.html
          deleted file mode 100644
          index 4d85c2b..0000000
          --- a/target/site/apidocs/help-doc.html
          +++ /dev/null
          @@ -1,162 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>API Help (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="help">
          -<meta name="generator" content="javadoc/HelpWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="help-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li class="nav-bar-cell1-rev">Help</li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">How This API Document Is Organized</h1>
          -<div class="sub-title">This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.</div>
          -</div>
          -<section class="help-section">
          -<h2>Overview</h2>
          -<p>The <a href="index.html">Overview</a> page is the front page of this API document and provides a list of all packages with a summary for each.  This page can also contain an overall description of the set of packages.</p>
          -</section>
          -<section class="help-section">
          -<h2>Package</h2>
          -<p>Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain six categories:</p>
          -<ul class="help-section-list">
          -<li>Interfaces</li>
          -<li>Classes</li>
          -<li>Enum Classes</li>
          -<li>Exceptions</li>
          -<li>Errors</li>
          -<li>Annotation Interfaces</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Class or Interface</h2>
          -<p>Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:</p>
          -<ul class="help-section-list">
          -<li>Class Inheritance Diagram</li>
          -<li>Direct Subclasses</li>
          -<li>All Known Subinterfaces</li>
          -<li>All Known Implementing Classes</li>
          -<li>Class or Interface Declaration</li>
          -<li>Class or Interface Description</li>
          -</ul>
          -<br>
          -<ul class="help-section-list">
          -<li>Nested Class Summary</li>
          -<li>Field Summary</li>
          -<li>Property Summary</li>
          -<li>Constructor Summary</li>
          -<li>Method Summary</li>
          -</ul>
          -<br>
          -<ul class="help-section-list">
          -<li>Field Details</li>
          -<li>Property Details</li>
          -<li>Constructor Details</li>
          -<li>Method Details</li>
          -</ul>
          -<p>The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</p>
          -</section>
          -<section class="help-section">
          -<h2>Annotation Interface</h2>
          -<p>Each annotation interface has its own separate page with the following sections:</p>
          -<ul class="help-section-list">
          -<li>Annotation Interface Declaration</li>
          -<li>Annotation Interface Description</li>
          -<li>Required Element Summary</li>
          -<li>Optional Element Summary</li>
          -<li>Element Details</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Enum Class</h2>
          -<p>Each enum class has its own separate page with the following sections:</p>
          -<ul class="help-section-list">
          -<li>Enum Declaration</li>
          -<li>Enum Description</li>
          -<li>Enum Constant Summary</li>
          -<li>Enum Constant Details</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Use</h2>
          -<p>Each documented package, class and interface has its own Use page.  This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its "Use" page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A.  You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</p>
          -</section>
          -<section class="help-section">
          -<h2>Tree (Class Hierarchy)</h2>
          -<p>There is a <a href="overview-tree.html">Class Hierarchy</a> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with <code>java.lang.Object</code>. Interfaces do not inherit from <code>java.lang.Object</code>.</p>
          -<ul class="help-section-list">
          -<li>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.</li>
          -<li>When viewing a particular package, class or interface page, clicking on "Tree" displays the hierarchy for only that package.</li>
          -</ul>
          -</section>
          -<section class="help-section">
          -<h2>Index</h2>
          -<p>The <a href="index-all.html">Index</a> contains an alphabetic index of all classes, interfaces, constructors, methods, and fields, as well as lists of all packages and all classes.</p>
          -</section>
          -<section class="help-section">
          -<h2>Serialized Form</h2>
          -<p>Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.</p>
          -</section>
          -<section class="help-section">
          -<h2>Search</h2>
          -<p>You can search for definitions of modules, packages, types, fields, methods, system properties and other terms defined in the API, using some or all of the name, optionally using "camel-case" abbreviations. For example:</p>
          -<ul class="help-section-list">
          -<li><code>j.l.obj</code> will match "java.lang.Object"</li>
          -<li><code>InpStr</code> will match "java.io.InputStream"</li>
          -<li><code>HM.cK</code> will match "java.util.HashMap.containsKey(Object)"</li>
          -</ul>
          -<p>Refer to <a href="https://docs.oracle.com/en/java/javase/16/docs/specs/javadoc/javadoc-search-spec.html">the Javadoc Search Specification</a> for a full description of search features.</p>
          -</section>
          -<hr>
          -<span class="help-footnote">This help file applies to API documentation generated by the standard doclet.</span></main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/index-all.html b/target/site/apidocs/index-all.html
          deleted file mode 100644
          index 0df0f51..0000000
          --- a/target/site/apidocs/index-all.html
          +++ /dev/null
          @@ -1,410 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Index (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="index">
          -<meta name="generator" content="javadoc/IndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li class="nav-bar-cell1-rev">Index</li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1>Index</h1>
          -</div>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a>
          -<h2 class="title" id="I:A">A</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addAlbum(musichub.business.Album)">addAlbum(Album)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#addElement(java.util.UUID)">addElement(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElement(musichub.business.AudioElement)">addElement(AudioElement)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList(String, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist(PlayList)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#addSong(java.util.UUID)">addSong(UUID)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album(String, String, int, String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#%3Cinit%3E(org.w3c.dom.Element)">Album(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#albums()">albums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#artist">artist</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook(String, String, int, String, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#%3Cinit%3E(org.w3c.dom.Element)">AudioBook(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement(String, String, int, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#%3Cinit%3E(org.w3c.dom.Element)">AudioElement(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:C">C</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#CLASSIC">CLASSIC</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#content">content</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLDocument()">createXMLDocument()</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement(Document, Element)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile(Document, String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:D">D</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#deletePlayList(java.lang.String)">deletePlayList(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#DIR">DIR</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#DOCUMENTARY">DOCUMENTARY</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:E">E</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#elements()">elements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#ENGLISH">ENGLISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:F">F</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#FRENCH">FRENCH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:G">G</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#GERMAN">GERMAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getArtist()">getArtist()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement(List&lt;AudioElement&gt;, String)</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getCategory()">getCategory()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#getCategory()">getCategory()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getDate()">getDate()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getElements()">getElements()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#getGenre()">getGenre()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#getGenre()">getGenre()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#getLanguage()">getLanguage()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#getLanguage()">getLanguage()</a></span> - Method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongs()">getSongs()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getSongsRandomly()">getSongsRandomly()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Album.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business">Album</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#getTitle()">getTitle()</a></span> - Method in class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#getUUID()">getUUID()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:H">H</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#HIPHOP">HIPHOP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:I">I</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#isPathValid(java.lang.String)">isPathValid(String)</a></span> - Static method in class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          -<dd>
          -<div class="block">Method that checks the validity of a given path</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#ITALIAN">ITALIAN</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:J">J</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#JAZZ">JAZZ</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:L">L</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a> - Enum Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#lengthInSeconds">lengthInSeconds</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>
          -<div class="block">Class offering a log writing method.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#%3Cinit%3E()">LogHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:M">M</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/main/Main.html#main(java.lang.String%5B%5D)">main(String[])</a></span> - Static method in class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a> - Class in <a href="musichub/main/package-summary.html">musichub.main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/main/Main.html#%3Cinit%3E()">Main()</a></span> - Constructor for class musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main">Main</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#manageAudioElement()">manageAudioElement()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#%3Cinit%3E()">MusicHub()</a></span> - Constructor for class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/package-summary.html">musichub.business</a> - package musichub.business</dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/main/package-summary.html">musichub.main</a> - package musichub.main</dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/package-summary.html">musichub.util</a> - package musichub.util</dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:N">N</h2>
          -<dl class="index">
          -<dt><a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoAlbumFoundException.html#%3Cinit%3E(java.lang.String)">NoAlbumFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoElementFoundException.html#%3Cinit%3E(java.lang.String)">NoElementFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a> - Exception in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/NoPlayListFoundException.html#%3Cinit%3E(java.lang.String)">NoPlayListFoundException(String)</a></span> - Constructor for exception musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#NOVEL">NOVEL</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:P">P</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#parseXMLFile(java.lang.String)">parseXMLFile(String)</a></span> - Method in class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>
          -<div class="block">Class offering a path validation method.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/PathValidation.html#%3Cinit%3E()">PathValidation()</a></span> - Constructor for class musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util">PathValidation</a></dt>
          -<dd>
          -<div class="block">Method that just throws an AssertionError if the class is called</div>
          -</dd>
          -<dt><a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String)">PlayList(String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList(String, String, ArrayList&lt;UUID&gt;)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/PlayList.html#%3Cinit%3E(org.w3c.dom.Element)">PlayList(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business">PlayList</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#playlists()">playlists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span> - Static variable in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#POP">POP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:R">R</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#RAP">RAP</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#read()">read()</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that prints the content of spoteezer.log</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#ROCK">ROCK</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:S">S</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveAlbums()">saveAlbums()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#saveElements()">saveElements()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/MusicHub.html#savePlayLists()">savePlayLists()</a></span> - Method in class musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business">MusicHub</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setCategory(java.lang.String)">setCategory(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#setGenre(java.lang.String)">setGenre(String)</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#setLanguage(java.lang.String)">setLanguage(String)</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a> - Class in <a href="musichub/business/package-summary.html">musichub.business</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song(String, String, int, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song(String, String, int, String, String, String)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#%3Cinit%3E(org.w3c.dom.Element)">Song(Element)</a></span> - Constructor for class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#SPANISH">SPANISH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#SPEECH">SPEECH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:T">T</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#THEATER">THEATER</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#title">title</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioBook.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business">AudioBook</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Song.html#toString()">toString()</a></span> - Method in class musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business">Song</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:U">U</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/AudioElement.html#uuid">uuid</a></span> - Variable in class musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business">AudioElement</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:V">V</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#valueOf(java.lang.String)">valueOf(String)</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Genre.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business">Genre</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -<dt><span class="member-name-link"><a href="musichub/business/Language.html#values()">values()</a></span> - Static method in enum class musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business">Language</a></dt>
          -<dd>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:W">W</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/util/LogHandler.html#write(java.lang.String,java.lang.String)">write(String, String)</a></span> - Static method in class musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util">LogHandler</a></dt>
          -<dd>
          -<div class="block">Method that writes a log message to spoteezer.log</div>
          -</dd>
          -</dl>
          -<h2 class="title" id="I:X">X</h2>
          -<dl class="index">
          -<dt><a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a> - Class in <a href="musichub/util/package-summary.html">musichub.util</a></dt>
          -<dd>&nbsp;</dd>
          -<dt><span class="member-name-link"><a href="musichub/util/XMLHandler.html#%3Cinit%3E()">XMLHandler()</a></span> - Constructor for class musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util">XMLHandler</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<h2 class="title" id="I:Y">Y</h2>
          -<dl class="index">
          -<dt><span class="member-name-link"><a href="musichub/business/Category.html#YOUTH">YOUTH</a></span> - Enum constant in enum class musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business">Category</a></dt>
          -<dd>&nbsp;</dd>
          -</dl>
          -<a href="#I:A">A</a>&nbsp;<a href="#I:C">C</a>&nbsp;<a href="#I:D">D</a>&nbsp;<a href="#I:E">E</a>&nbsp;<a href="#I:F">F</a>&nbsp;<a href="#I:G">G</a>&nbsp;<a href="#I:H">H</a>&nbsp;<a href="#I:I">I</a>&nbsp;<a href="#I:J">J</a>&nbsp;<a href="#I:L">L</a>&nbsp;<a href="#I:M">M</a>&nbsp;<a href="#I:N">N</a>&nbsp;<a href="#I:P">P</a>&nbsp;<a href="#I:R">R</a>&nbsp;<a href="#I:S">S</a>&nbsp;<a href="#I:T">T</a>&nbsp;<a href="#I:U">U</a>&nbsp;<a href="#I:V">V</a>&nbsp;<a href="#I:W">W</a>&nbsp;<a href="#I:X">X</a>&nbsp;<a href="#I:Y">Y</a>&nbsp;<br><a href="allclasses-index.html">All&nbsp;Classes</a><span class="vertical-separator">|</span><a href="allpackages-index.html">All&nbsp;Packages</a><span class="vertical-separator">|</span><a href="serialized-form.html">Serialized&nbsp;Form</a></main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/index.html b/target/site/apidocs/index.html
          deleted file mode 100644
          index e5010d9..0000000
          --- a/target/site/apidocs/index.html
          +++ /dev/null
          @@ -1,78 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Overview (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="package index">
          -<meta name="generator" content="javadoc/PackageIndexWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-index-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li class="nav-bar-cell1-rev">Overview</li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">spoteezer 0.1.0 API</h1>
          -</div>
          -<div id="all-packages-table">
          -<div class="caption"><span>Packages</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/business/package-summary.html">musichub.business</a></div>
          -<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -<div class="col-first odd-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/main/package-summary.html">musichub.main</a></div>
          -<div class="col-last odd-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -<div class="col-first even-row-color all-packages-table-tab1 all-packages-table"><a href="musichub/util/package-summary.html">musichub.util</a></div>
          -<div class="col-last even-row-color all-packages-table-tab1 all-packages-table">&nbsp;</div>
          -</div>
          -</div>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/jquery-ui.overrides.css b/target/site/apidocs/jquery-ui.overrides.css
          deleted file mode 100644
          index f89acb6..0000000
          --- a/target/site/apidocs/jquery-ui.overrides.css
          +++ /dev/null
          @@ -1,34 +0,0 @@
          -/*
          - * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -.ui-state-active,
          -.ui-widget-content .ui-state-active,
          -.ui-widget-header .ui-state-active,
          -a.ui-button:active,
          -.ui-button:active,
          -.ui-button.ui-state-active:hover {
          -    /* Overrides the color of selection used in jQuery UI */
          -    background: #F8981D;
          -}
          diff --git a/target/site/apidocs/member-search-index.js b/target/site/apidocs/member-search-index.js
          deleted file mode 100644
          index f583be9..0000000
          --- a/target/site/apidocs/member-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -memberSearchIndex = [{"p":"musichub.business","c":"MusicHub","l":"addAlbum(Album)","u":"addAlbum(musichub.business.Album)"},{"p":"musichub.business","c":"MusicHub","l":"addElement(AudioElement)","u":"addElement(musichub.business.AudioElement)"},{"p":"musichub.business","c":"PlayList","l":"addElement(UUID)","u":"addElement(java.util.UUID)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToAlbum(String, String)","u":"addElementToAlbum(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addElementToPlayList(String, String)","u":"addElementToPlayList(java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"addPlaylist(PlayList)","u":"addPlaylist(musichub.business.PlayList)"},{"p":"musichub.business","c":"Album","l":"addSong(UUID)","u":"addSong(java.util.UUID)"},{"p":"musichub.business","c":"Album","l":"Album(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"Album","l":"Album(String, String, int, String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"ALBUMS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"albums()"},{"p":"musichub.business","c":"AudioElement","l":"artist"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"AudioBook(String, String, int, String, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)"},{"p":"musichub.business","c":"AudioElement","l":"AudioElement(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"CLASSIC"},{"p":"musichub.business","c":"AudioElement","l":"content"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLDocument()"},{"p":"musichub.business","c":"Album","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioBook","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"AudioElement","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"createXMLElement(Document, Element)","u":"createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)"},{"p":"musichub.util","c":"XMLHandler","l":"createXMLFile(Document, String)","u":"createXMLFile(org.w3c.dom.Document,java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"deletePlayList(String)","u":"deletePlayList(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"DIR"},{"p":"musichub.business","c":"Category","l":"DOCUMENTARY"},{"p":"musichub.business","c":"MusicHub","l":"ELEMENTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"elements()"},{"p":"musichub.business","c":"Language","l":"ENGLISH"},{"p":"musichub.business","c":"Language","l":"FRENCH"},{"p":"musichub.business","c":"Language","l":"GERMAN"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongs(String)","u":"getAlbumSongs(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumSongsSortedByGenre(String)","u":"getAlbumSongsSortedByGenre(java.lang.String)"},{"p":"musichub.business","c":"MusicHub","l":"getAlbumsTitlesSortedByDate()"},{"p":"musichub.business","c":"AudioElement","l":"getArtist()"},{"p":"musichub.business","c":"MusicHub","l":"getAudiobooksTitlesSortedByAuthor()"},{"p":"musichub.business","c":"MusicHub","l":"getAudioElement(List<AudioElement>, String)","u":"getAudioElement(java.util.List,java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"getCategory()"},{"p":"musichub.business","c":"Category","l":"getCategory()"},{"p":"musichub.business","c":"Album","l":"getDate()"},{"p":"musichub.business","c":"PlayList","l":"getElements()"},{"p":"musichub.business","c":"Genre","l":"getGenre()"},{"p":"musichub.business","c":"Song","l":"getGenre()"},{"p":"musichub.business","c":"AudioBook","l":"getLanguage()"},{"p":"musichub.business","c":"Language","l":"getLanguage()"},{"p":"musichub.business","c":"Album","l":"getSongs()"},{"p":"musichub.business","c":"Album","l":"getSongsRandomly()"},{"p":"musichub.business","c":"Album","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getTitle()"},{"p":"musichub.business","c":"PlayList","l":"getTitle()"},{"p":"musichub.business","c":"AudioElement","l":"getUUID()"},{"p":"musichub.business","c":"Genre","l":"HIPHOP"},{"p":"musichub.util","c":"PathValidation","l":"isPathValid(String)","u":"isPathValid(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"ITALIAN"},{"p":"musichub.business","c":"Genre","l":"JAZZ"},{"p":"musichub.business","c":"AudioElement","l":"lengthInSeconds"},{"p":"musichub.util","c":"LogHandler","l":"LogHandler()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"musichub.main","c":"Main","l":"main(String[])","u":"main(java.lang.String[])"},{"p":"musichub.business","c":"AudioElement","l":"manageAudioElement()"},{"p":"musichub.business","c":"MusicHub","l":"MusicHub()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"NoAlbumFoundException","l":"NoAlbumFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoElementFoundException","l":"NoElementFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"NoPlayListFoundException","l":"NoPlayListFoundException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"NOVEL"},{"p":"musichub.util","c":"XMLHandler","l":"parseXMLFile(String)","u":"parseXMLFile(java.lang.String)"},{"p":"musichub.util","c":"PathValidation","l":"PathValidation()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"PlayList","l":"PlayList(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"musichub.business","c":"PlayList","l":"PlayList(String, String, ArrayList<UUID>)","u":"%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)"},{"p":"musichub.business","c":"MusicHub","l":"PLAYLISTS_FILE_PATH"},{"p":"musichub.business","c":"MusicHub","l":"playlists()"},{"p":"musichub.business","c":"Genre","l":"POP"},{"p":"musichub.business","c":"Genre","l":"RAP"},{"p":"musichub.util","c":"LogHandler","l":"read()"},{"p":"musichub.business","c":"Genre","l":"ROCK"},{"p":"musichub.business","c":"MusicHub","l":"saveAlbums()"},{"p":"musichub.business","c":"MusicHub","l":"saveElements()"},{"p":"musichub.business","c":"MusicHub","l":"savePlayLists()"},{"p":"musichub.business","c":"AudioBook","l":"setCategory(String)","u":"setCategory(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"setGenre(String)","u":"setGenre(java.lang.String)"},{"p":"musichub.business","c":"AudioBook","l":"setLanguage(String)","u":"setLanguage(java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(Element)","u":"%3Cinit%3E(org.w3c.dom.Element)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Song","l":"Song(String, String, int, String, String, String)","u":"%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)"},{"p":"musichub.business","c":"Language","l":"SPANISH"},{"p":"musichub.business","c":"Category","l":"SPEECH"},{"p":"musichub.business","c":"Category","l":"THEATER"},{"p":"musichub.business","c":"AudioElement","l":"title"},{"p":"musichub.business","c":"AudioBook","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"toString()"},{"p":"musichub.business","c":"Song","l":"toString()"},{"p":"musichub.business","c":"AudioElement","l":"uuid"},{"p":"musichub.business","c":"Category","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Genre","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Language","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"musichub.business","c":"Category","l":"values()"},{"p":"musichub.business","c":"Genre","l":"values()"},{"p":"musichub.business","c":"Language","l":"values()"},{"p":"musichub.util","c":"LogHandler","l":"write(String, String)","u":"write(java.lang.String,java.lang.String)"},{"p":"musichub.util","c":"XMLHandler","l":"XMLHandler()","u":"%3Cinit%3E()"},{"p":"musichub.business","c":"Category","l":"YOUTH"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/module-search-index.js b/target/site/apidocs/module-search-index.js
          deleted file mode 100644
          index 0d59754..0000000
          --- a/target/site/apidocs/module-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -moduleSearchIndex = [];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/musichub/business/Album.html b/target/site/apidocs/musichub/business/Album.html
          deleted file mode 100644
          index fd0beaa..0000000
          --- a/target/site/apidocs/musichub/business/Album.html
          +++ /dev/null
          @@ -1,250 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Album (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: Album">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Album.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class Album" class="title">Class Album</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.Album</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Album</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Album</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addSong(java.util.UUID)">addSong</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getDate()">getDate</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongs()">getSongs</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getSongsRandomly()">getSongsRandomly</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.util.ArrayList)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;songsUIDs)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;date)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>Album</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Album</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span>
          -      throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addSong(java.util.UUID)">
          -<h3>addSong</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addSong</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;song)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getSongs()">
          -<h3>getSongs</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongs</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getSongsRandomly()">
          -<h3>getSongsRandomly</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getSongsRandomly</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getDate()">
          -<h3>getDate</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Date.html" title="class or interface in java.util" class="external-link">Date</a></span>&nbsp;<span class="element-name">getDate</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/AudioBook.html b/target/site/apidocs/musichub/business/AudioBook.html
          deleted file mode 100644
          index 211e1b0..0000000
          --- a/target/site/apidocs/musichub/business/AudioBook.html
          +++ /dev/null
          @@ -1,273 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>AudioBook (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: AudioBook">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/AudioBook.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class AudioBook" class="title">Class AudioBook</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          -<div class="inheritance">musichub.business.AudioBook</div>
          -</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">AudioBook</span>
          -<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="inherited-list">
          -<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioBook</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setCategory(java.lang.String)">setCategory</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setLanguage(java.lang.String)">setLanguage</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>AudioBook</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioBook</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getLanguage()">
          -<h3>getLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setLanguage(java.lang.String)">
          -<h3>setLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setLanguage</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;language)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getCategory()">
          -<h3>getCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setCategory(java.lang.String)">
          -<h3>setCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setCategory</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;category)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/AudioElement.html b/target/site/apidocs/musichub/business/AudioElement.html
          deleted file mode 100644
          index fe6ad42..0000000
          --- a/target/site/apidocs/musichub/business/AudioElement.html
          +++ /dev/null
          @@ -1,325 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>AudioElement (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: AudioElement">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/AudioElement.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class AudioElement" class="title">Class AudioElement</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.AudioElement</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>Direct Known Subclasses:</dt>
          -<dd><code><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></code>, <code><a href="Song.html" title="class in musichub.business">Song</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AudioElement</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="caption"><span>Fields</span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Field</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#artist">artist</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#content">content</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>protected int</code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#lengthInSeconds">lengthInSeconds</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#title">title</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>protected <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#uuid">uuid</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">AudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getArtist()">getArtist</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getUUID()">getUUID</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#manageAudioElement()">manageAudioElement</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ FIELD DETAIL =========== -->
          -<li>
          -<section class="field-details" id="field.detail">
          -<h2>Field Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="title">
          -<h3>title</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">title</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="artist">
          -<h3>artist</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">artist</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="lengthInSeconds">
          -<h3>lengthInSeconds</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">lengthInSeconds</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="uuid">
          -<h3>uuid</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">uuid</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="content">
          -<h3>content</h3>
          -<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">content</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;lengthInSeconds,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>AudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getUUID()">
          -<h3>getUUID</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a></span>&nbsp;<span class="element-name">getUUID</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getArtist()">
          -<h3>getArtist</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getArtist</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="manageAudioElement()">
          -<h3>manageAudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">manageAudioElement</span>()
          -                        throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Category.html b/target/site/apidocs/musichub/business/Category.html
          deleted file mode 100644
          index 4266493..0000000
          --- a/target/site/apidocs/musichub/business/Category.html
          +++ /dev/null
          @@ -1,258 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Category (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Category">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Category.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Category" class="title">Enum Class Category</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;
          -<div class="inheritance">musichub.business.Category</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Category</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Category.html" title="enum class in musichub.business">Category</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#DOCUMENTARY">DOCUMENTARY</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#NOVEL">NOVEL</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPEECH">SPEECH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#THEATER">THEATER</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#YOUTH">YOUTH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="YOUTH">
          -<h3>YOUTH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">YOUTH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="NOVEL">
          -<h3>NOVEL</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">NOVEL</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="THEATER">
          -<h3>THEATER</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">THEATER</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="DOCUMENTARY">
          -<h3>DOCUMENTARY</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">DOCUMENTARY</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="SPEECH">
          -<h3>SPEECH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">SPEECH</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Category.html" title="enum class in musichub.business">Category</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getCategory()">
          -<h3>getCategory</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getCategory</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Genre.html b/target/site/apidocs/musichub/business/Genre.html
          deleted file mode 100644
          index 96e2762..0000000
          --- a/target/site/apidocs/musichub/business/Genre.html
          +++ /dev/null
          @@ -1,266 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Genre (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Genre">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Genre.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Genre" class="title">Enum Class Genre</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;
          -<div class="inheritance">musichub.business.Genre</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Genre</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Genre.html" title="enum class in musichub.business">Genre</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#CLASSIC">CLASSIC</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#HIPHOP">HIPHOP</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#JAZZ">JAZZ</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#POP">POP</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#RAP">RAP</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ROCK">ROCK</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="JAZZ">
          -<h3>JAZZ</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">JAZZ</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="CLASSIC">
          -<h3>CLASSIC</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">CLASSIC</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="HIPHOP">
          -<h3>HIPHOP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">HIPHOP</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ROCK">
          -<h3>ROCK</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">ROCK</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="POP">
          -<h3>POP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">POP</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="RAP">
          -<h3>RAP</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">RAP</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Genre.html" title="enum class in musichub.business">Genre</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getGenre()">
          -<h3>getGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Language.html b/target/site/apidocs/musichub/business/Language.html
          deleted file mode 100644
          index 6bebff8..0000000
          --- a/target/site/apidocs/musichub/business/Language.html
          +++ /dev/null
          @@ -1,258 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Language (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, enum: Language">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Language.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
          -<li><a href="#enum.constant.summary">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#enum.constant.detail">Enum Constants</a>&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Enum Class Language" class="title">Enum Class Language</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">java.lang.Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;
          -<div class="inheritance">musichub.business.Language</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</code>, <code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public enum </span><span class="element-name type-name-label">Language</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="Language.html" title="enum class in musichub.business">Language</a>&gt;</span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== NESTED CLASS SUMMARY ======== -->
          -<li>
          -<section class="nested-class-summary" id="nested.class.summary">
          -<h2>Nested Class Summary</h2>
          -<div class="inherited-list">
          -<h2 id="nested.classes.inherited.from.class.java.lang.Enum">Nested classes/interfaces inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h2>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">Enum.EnumDesc</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.EnumDesc.html" title="class or interface in java.lang" class="external-link">E</a>&gt;&gt;</code></div>
          -</section>
          -</li>
          -<!-- =========== ENUM CONSTANT SUMMARY =========== -->
          -<li>
          -<section class="constants-summary" id="enum.constant.summary">
          -<h2>Enum Constant Summary</h2>
          -<div class="caption"><span>Enum Constants</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Constant</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#ENGLISH">ENGLISH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#FRENCH">FRENCH</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#GERMAN">GERMAN</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><span class="member-name-link"><a href="#ITALIAN">ITALIAN</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><span class="member-name-link"><a href="#SPANISH">SPANISH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static <a href="Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Enum">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link">Enum</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#compareTo(E)" title="class or interface in java.lang" class="external-link">compareTo</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#describeConstable()" title="class or interface in java.lang" class="external-link">describeConstable</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#getDeclaringClass()" title="class or interface in java.lang" class="external-link">getDeclaringClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#name()" title="class or interface in java.lang" class="external-link">name</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#ordinal()" title="class or interface in java.lang" class="external-link">ordinal</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html#valueOf(java.lang.Class,java.lang.String)" title="class or interface in java.lang" class="external-link">valueOf</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ ENUM CONSTANT DETAIL =========== -->
          -<li>
          -<section class="constant-details" id="enum.constant.detail">
          -<h2>Enum Constant Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="FRENCH">
          -<h3>FRENCH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">FRENCH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ENGLISH">
          -<h3>ENGLISH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ENGLISH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ITALIAN">
          -<h3>ITALIAN</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">ITALIAN</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="SPANISH">
          -<h3>SPANISH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">SPANISH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="GERMAN">
          -<h3>GERMAN</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">GERMAN</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="values()">
          -<h3>values</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a>[]</span>&nbsp;<span class="element-name">values</span>()</div>
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -<dl class="notes">
          -<dt>Returns:</dt>
          -<dd>an array containing the constants of this enum class, in the order they are declared</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="valueOf(java.lang.String)">
          -<h3>valueOf</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type"><a href="Language.html" title="enum class in musichub.business">Language</a></span>&nbsp;<span class="element-name">valueOf</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</span></div>
          -<div class="block">Returns the enum constant of this class with the specified name.
          -The string must match <i>exactly</i> an identifier used to declare an
          -enum constant in this class.  (Extraneous whitespace characters are 
          -not permitted.)</div>
          -<dl class="notes">
          -<dt>Parameters:</dt>
          -<dd><code>name</code> - the name of the enum constant to be returned.</dd>
          -<dt>Returns:</dt>
          -<dd>the enum constant with the specified name</dd>
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/IllegalArgumentException.html" title="class or interface in java.lang" class="external-link">IllegalArgumentException</a></code> - if this enum class has no constant with the specified name</dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/NullPointerException.html" title="class or interface in java.lang" class="external-link">NullPointerException</a></code> - if the argument is null</dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getLanguage()">
          -<h3>getLanguage</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getLanguage</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/MusicHub.html b/target/site/apidocs/musichub/business/MusicHub.html
          deleted file mode 100644
          index 4af462c..0000000
          --- a/target/site/apidocs/musichub/business/MusicHub.html
          +++ /dev/null
          @@ -1,412 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>MusicHub (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: MusicHub">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/MusicHub.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class MusicHub" class="title">Class MusicHub</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.MusicHub</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">MusicHub</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="caption"><span>Fields</span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Field</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ALBUMS_FILE_PATH">ALBUMS_FILE_PATH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#DIR">DIR</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="#ELEMENTS_FILE_PATH">ELEMENTS_FILE_PATH</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="#PLAYLISTS_FILE_PATH">PLAYLISTS_FILE_PATH</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">MusicHub</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#albums()">albums</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#elements()">elements</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAlbumsTitlesSortedByDate()">getAlbumsTitlesSortedByDate</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudiobooksTitlesSortedByAuthor()">getAudiobooksTitlesSortedByAuthor</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#playlists()">playlists</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveAlbums()">saveAlbums</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#saveElements()">saveElements</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#savePlayLists()">savePlayLists</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ============ FIELD DETAIL =========== -->
          -<li>
          -<section class="field-details" id="field.detail">
          -<h2>Field Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="DIR">
          -<h3>DIR</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">DIR</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ALBUMS_FILE_PATH">
          -<h3>ALBUMS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ALBUMS_FILE_PATH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="PLAYLISTS_FILE_PATH">
          -<h3>PLAYLISTS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">PLAYLISTS_FILE_PATH</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="ELEMENTS_FILE_PATH">
          -<h3>ELEMENTS_FILE_PATH</h3>
          -<div class="member-signature"><span class="modifiers">public static final</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">ELEMENTS_FILE_PATH</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>MusicHub</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">MusicHub</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addElement(musichub.business.AudioElement)">
          -<h3>addElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addAlbum(musichub.business.Album)">
          -<h3>addAlbum</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addAlbum</span>&#8203;<span class="parameters">(<a href="Album.html" title="class in musichub.business">Album</a>&nbsp;album)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addPlaylist(musichub.business.PlayList)">
          -<h3>addPlaylist</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addPlaylist</span>&#8203;<span class="parameters">(<a href="PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="deletePlayList(java.lang.String)">
          -<h3>deletePlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">deletePlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          -                    throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="albums()">
          -<h3>albums</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="Album.html" title="class in musichub.business">Album</a>&gt;</span>&nbsp;<span class="element-name">albums</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="playlists()">
          -<h3>playlists</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="PlayList.html" title="class in musichub.business">PlayList</a>&gt;</span>&nbsp;<span class="element-name">playlists</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="elements()">
          -<h3>elements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">elements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumsTitlesSortedByDate()">
          -<h3>getAlbumsTitlesSortedByDate</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAlbumsTitlesSortedByDate</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAudiobooksTitlesSortedByAuthor()">
          -<h3>getAudiobooksTitlesSortedByAuthor</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getAudiobooksTitlesSortedByAuthor</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumSongs(java.lang.String)">
          -<h3>getAlbumSongs</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongs</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                                 throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAlbumSongsSortedByGenre(java.lang.String)">
          -<h3>getAlbumSongsSortedByGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="Song.html" title="class in musichub.business">Song</a>&gt;</span>&nbsp;<span class="element-name">getAlbumSongsSortedByGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                                      throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addElementToAlbum(java.lang.String,java.lang.String)">
          -<h3>addElementToAlbum</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToAlbum</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</span>
          -                       throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          -<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="addElementToPlayList(java.lang.String,java.lang.String)">
          -<h3>addElementToPlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElementToPlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</span>
          -                          throws <span class="exceptions"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a>,
          -<a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></code></dd>
          -<dd><code><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="saveAlbums()">
          -<h3>saveAlbums</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveAlbums</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="savePlayLists()">
          -<h3>savePlayLists</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">savePlayLists</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="saveElements()">
          -<h3>saveElements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">saveElements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getAudioElement(java.util.List,java.lang.String)">
          -<h3>getAudioElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">getAudioElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</span>
          -                     throws <span class="exceptions"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          deleted file mode 100644
          index 16143e3..0000000
          --- a/target/site/apidocs/musichub/business/NoAlbumFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoAlbumFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoAlbumFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoAlbumFoundException" class="title">Class NoAlbumFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoAlbumFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoAlbumFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoAlbumFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoAlbumFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoAlbumFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoAlbumFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoElementFoundException.html b/target/site/apidocs/musichub/business/NoElementFoundException.html
          deleted file mode 100644
          index 3a04446..0000000
          --- a/target/site/apidocs/musichub/business/NoElementFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoElementFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoElementFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoElementFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoElementFoundException" class="title">Class NoElementFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoElementFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoElementFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoElementFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoElementFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoElementFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoElementFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          deleted file mode 100644
          index 4a9413a..0000000
          --- a/target/site/apidocs/musichub/business/NoPlayListFoundException.html
          +++ /dev/null
          @@ -1,150 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: NoPlayListFoundException">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/NoPlayListFoundException.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li>Method</li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class NoPlayListFoundException" class="title">Class NoPlayListFoundException</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">java.lang.Throwable</a>
          -<div class="inheritance"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">java.lang.Exception</a>
          -<div class="inheritance">musichub.business.NoPlayListFoundException</div>
          -</div>
          -</div>
          -</div>
          -<section class="description">
          -<dl class="notes">
          -<dt>All Implemented Interfaces:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a></code></dd>
          -</dl>
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">NoPlayListFoundException</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
          -<dl class="notes">
          -<dt>See Also:</dt>
          -<dd><a href="../../serialized-form.html#musichub.business.NoPlayListFoundException">Serialized Form</a></dd>
          -</dl>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">NoPlayListFoundException</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Throwable">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link">Throwable</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#addSuppressed(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">addSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#fillInStackTrace()" title="class or interface in java.lang" class="external-link">fillInStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getCause()" title="class or interface in java.lang" class="external-link">getCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getLocalizedMessage()" title="class or interface in java.lang" class="external-link">getLocalizedMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getMessage()" title="class or interface in java.lang" class="external-link">getMessage</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getStackTrace()" title="class or interface in java.lang" class="external-link">getStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#getSuppressed()" title="class or interface in java.lang" class="external-link">getSuppressed</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#initCause(java.lang.Throwable)" title="class or interface in java.lang" class="external-link">initCause</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace()" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintStream)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#printStackTrace(java.io.PrintWriter)" title="class or interface in java.lang" class="external-link">printStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#setStackTrace(java.lang.StackTraceElement%5B%5D)" title="class or interface in java.lang" class="external-link">setStackTrace</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html#toString()" title="class or interface in java.lang" class="external-link">toString</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>NoPlayListFoundException</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">NoPlayListFoundException</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;msg)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/PlayList.html b/target/site/apidocs/musichub/business/PlayList.html
          deleted file mode 100644
          index a1ccc9b..0000000
          --- a/target/site/apidocs/musichub/business/PlayList.html
          +++ /dev/null
          @@ -1,215 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>PlayList (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: PlayList">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/PlayList.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class PlayList" class="title">Class PlayList</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.business.PlayList</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">PlayList</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,java.util.ArrayList)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">PlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#addElement(java.util.UUID)">addElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getElements()">getElements</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getTitle()">getTitle</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,java.util.ArrayList)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;&nbsp;elementUUIDs)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>PlayList</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">PlayList</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="addElement(java.util.UUID)">
          -<h3>addElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">addElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&nbsp;element)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getElements()">
          -<h3>getElements</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/ArrayList.html" title="class or interface in java.util" class="external-link">ArrayList</a>&lt;<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/UUID.html" title="class or interface in java.util" class="external-link">UUID</a>&gt;</span>&nbsp;<span class="element-name">getElements</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="getTitle()">
          -<h3>getTitle</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getTitle</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/Song.html b/target/site/apidocs/musichub/business/Song.html
          deleted file mode 100644
          index 82582dd..0000000
          --- a/target/site/apidocs/musichub/business/Song.html
          +++ /dev/null
          @@ -1,251 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Song (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business, class: Song">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Song.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.business</a></div>
          -<h1 title="Class Song" class="title">Class Song</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance"><a href="AudioElement.html" title="class in musichub.business">musichub.business.AudioElement</a>
          -<div class="inheritance">musichub.business.Song</div>
          -</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Song</span>
          -<span class="extends-implements">extends <a href="AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- =========== FIELD SUMMARY =========== -->
          -<li>
          -<section class="field-summary" id="field.summary">
          -<h2>Field Summary</h2>
          -<div class="inherited-list">
          -<h3 id="fields.inherited.from.class.musichub.business.AudioElement">Fields inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#artist">artist</a>, <a href="AudioElement.html#content">content</a>, <a href="AudioElement.html#lengthInSeconds">lengthInSeconds</a>, <a href="AudioElement.html#title">title</a>, <a href="AudioElement.html#uuid">uuid</a></code></div>
          -</section>
          -</li>
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-constructor-name odd-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E(org.w3c.dom.Element)">Song</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#getGenre()">getGenre</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#setGenre(java.lang.String)">setGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#toString()">toString</a></span>()</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.musichub.business.AudioElement">Methods inherited from class&nbsp;musichub.business.<a href="AudioElement.html" title="class in musichub.business">AudioElement</a></h3>
          -<code><a href="AudioElement.html#getArtist()">getArtist</a>, <a href="AudioElement.html#getTitle()">getTitle</a>, <a href="AudioElement.html#getUUID()">getUUID</a>, <a href="AudioElement.html#manageAudioElement()">manageAudioElement</a></code></div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;uid,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;title,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;artist,
          - int&nbsp;length,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;content,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="&lt;init&gt;(org.w3c.dom.Element)">
          -<h3>Song</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Song</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;xmlElement)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="getGenre()">
          -<h3>getGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">getGenre</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="setGenre(java.lang.String)">
          -<h3>setGenre</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setGenre</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;genre)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="toString()">
          -<h3>toString</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">
          -<h3>createXMLElement</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLElement</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Element.html" title="class or interface in org.w3c.dom" class="external-link">Element</a>&nbsp;parentElement)</span></div>
          -<dl class="notes">
          -<dt>Overrides:</dt>
          -<dd><code><a href="AudioElement.html#createXMLElement(org.w3c.dom.Document,org.w3c.dom.Element)">createXMLElement</a></code>&nbsp;in class&nbsp;<code><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Album.html b/target/site/apidocs/musichub/business/class-use/Album.html
          deleted file mode 100644
          index 097e8c7..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Album.html
          +++ /dev/null
          @@ -1,99 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.Album (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: Album">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Album.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.Album" class="title">Uses of Class<br>musichub.business.Album</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Album.html" title="class in musichub.business">Album</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../Album.html" title="class in musichub.business">Album</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#albums()">albums</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../Album.html" title="class in musichub.business">Album</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addAlbum(musichub.business.Album)">addAlbum</a></span>&#8203;(<a href="../Album.html" title="class in musichub.business">Album</a>&nbsp;album)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioBook.html b/target/site/apidocs/musichub/business/class-use/AudioBook.html
          deleted file mode 100644
          index a109ca3..0000000
          --- a/target/site/apidocs/musichub/business/class-use/AudioBook.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.AudioBook (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: AudioBook">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../AudioBook.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.AudioBook" class="title">Uses of Class<br>musichub.business.AudioBook</h1>
          -</div>
          -No usage of musichub.business.AudioBook</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/AudioElement.html b/target/site/apidocs/musichub/business/class-use/AudioElement.html
          deleted file mode 100644
          index 1249775..0000000
          --- a/target/site/apidocs/musichub/business/class-use/AudioElement.html
          +++ /dev/null
          @@ -1,124 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.AudioElement (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: AudioElement">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../AudioElement.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.AudioElement" class="title">Uses of Class<br>musichub.business.AudioElement</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Subclasses of <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a> in <a href="../package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>class&nbsp;</code></div>
          -<div class="col-second even-row-color"><code><span class="member-name-link"><a href="../AudioBook.html" title="class in musichub.business">AudioBook</a></span></code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>class&nbsp;</code></div>
          -<div class="col-second odd-row-color"><code><span class="member-name-link"><a href="../Song.html" title="class in musichub.business">Song</a></span></code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#elements()">elements</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElement(musichub.business.AudioElement)">addElement</a></span>&#8203;(<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&nbsp;element)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Method parameters in <a href="../package-summary.html">musichub.business</a> with type arguments of type <a href="../AudioElement.html" title="class in musichub.business">AudioElement</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Category.html b/target/site/apidocs/musichub/business/class-use/Category.html
          deleted file mode 100644
          index 022df3a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Category.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Category (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Category">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Category.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Category" class="title">Uses of Enum Class<br>musichub.business.Category</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Category.html" title="enum class in musichub.business">Category</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Category.html" title="enum class in musichub.business">Category</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getCategory()">getCategory</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a></code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color"><code>static <a href="../Category.html" title="enum class in musichub.business">Category</a>[]</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Category.</span><code><span class="member-name-link"><a href="../Category.html#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Genre.html b/target/site/apidocs/musichub/business/class-use/Genre.html
          deleted file mode 100644
          index a9cd613..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Genre.html
          +++ /dev/null
          @@ -1,98 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Genre (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Genre">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Genre.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Genre" class="title">Uses of Enum Class<br>musichub.business.Genre</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Genre.html" title="enum class in musichub.business">Genre</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Genre.html" title="enum class in musichub.business">Genre</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Genre.html" title="enum class in musichub.business">Genre</a>[]</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Genre.</span><code><span class="member-name-link"><a href="../Genre.html#values()">values</a></span>()</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Language.html b/target/site/apidocs/musichub/business/class-use/Language.html
          deleted file mode 100644
          index 86ed23a..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Language.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Enum Class musichub.business.Language (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, enum: Language">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Language.html" title="enum class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Enum Class musichub.business.Language" class="title">Uses of Enum Class<br>musichub.business.Language</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Language.html" title="enum class in musichub.business">Language</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return <a href="../Language.html" title="enum class in musichub.business">Language</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">AudioBook.</span><code><span class="member-name-link"><a href="../AudioBook.html#getLanguage()">getLanguage</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a></code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#valueOf(java.lang.String)">valueOf</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;name)</code></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Returns the enum constant of this class with the specified name.</div>
          -</div>
          -<div class="col-first even-row-color"><code>static <a href="../Language.html" title="enum class in musichub.business">Language</a>[]</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">Language.</span><code><span class="member-name-link"><a href="../Language.html#values()">values</a></span>()</code></div>
          -<div class="col-last even-row-color">
          -<div class="block">Returns an array containing the constants of this enum class, in
          -the order they are declared.</div>
          -</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/MusicHub.html b/target/site/apidocs/musichub/business/class-use/MusicHub.html
          deleted file mode 100644
          index 683a7e5..0000000
          --- a/target/site/apidocs/musichub/business/class-use/MusicHub.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.MusicHub (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: MusicHub">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../MusicHub.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.MusicHub" class="title">Uses of Class<br>musichub.business.MusicHub</h1>
          -</div>
          -No usage of musichub.business.MusicHub</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html b/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          deleted file mode 100644
          index 3d190ec..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoAlbumFoundException.html
          +++ /dev/null
          @@ -1,101 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoAlbumFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoAlbumFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoAlbumFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoAlbumFoundException" class="title">Uses of Class<br>musichub.business.NoAlbumFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongs(java.lang.String)">getAlbumSongs</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAudioElement(java.util.List,java.lang.String)">getAudioElement</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../AudioElement.html" title="class in musichub.business">AudioElement</a>&gt;&nbsp;audios,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html b/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          deleted file mode 100644
          index 07bc200..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoElementFoundException.html
          +++ /dev/null
          @@ -1,95 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoElementFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoElementFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoElementFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoElementFoundException" class="title">Uses of Class<br>musichub.business.NoElementFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToAlbum(java.lang.String,java.lang.String)">addElementToAlbum</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html b/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          deleted file mode 100644
          index 0a7a442..0000000
          --- a/target/site/apidocs/musichub/business/class-use/NoPlayListFoundException.html
          +++ /dev/null
          @@ -1,94 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.NoPlayListFoundException (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: NoPlayListFoundException">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../NoPlayListFoundException.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.NoPlayListFoundException" class="title">Uses of Class<br>musichub.business.NoPlayListFoundException</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that throw <a href="../NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addElementToPlayList(java.lang.String,java.lang.String)">addElementToPlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;elementTitle,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><code>void</code></div>
          -<div class="col-second odd-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#deletePlayList(java.lang.String)">deletePlayList</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;playListTitle)</code></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/PlayList.html b/target/site/apidocs/musichub/business/class-use/PlayList.html
          deleted file mode 100644
          index 151e091..0000000
          --- a/target/site/apidocs/musichub/business/class-use/PlayList.html
          +++ /dev/null
          @@ -1,99 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.PlayList (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: PlayList">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../PlayList.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.PlayList" class="title">Uses of Class<br>musichub.business.PlayList</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../PlayList.html" title="class in musichub.business">PlayList</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/Iterator.html" title="class or interface in java.util" class="external-link">Iterator</a>&lt;<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#playlists()">playlists</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> with parameters of type <a href="../PlayList.html" title="class in musichub.business">PlayList</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code>void</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#addPlaylist(musichub.business.PlayList)">addPlaylist</a></span>&#8203;(<a href="../PlayList.html" title="class in musichub.business">PlayList</a>&nbsp;playlist)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/class-use/Song.html b/target/site/apidocs/musichub/business/class-use/Song.html
          deleted file mode 100644
          index f7caf68..0000000
          --- a/target/site/apidocs/musichub/business/class-use/Song.html
          +++ /dev/null
          @@ -1,90 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.business.Song (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business, class: Song">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Song.html" title="class in musichub.business">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.business.Song" class="title">Uses of Class<br>musichub.business.Song</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="class-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<h2>Uses of <a href="../Song.html" title="class in musichub.business">Song</a> in <a href="../package-summary.html">musichub.business</a></h2>
          -<div class="caption"><span>Methods in <a href="../package-summary.html">musichub.business</a> that return types with arguments of type <a href="../Song.html" title="class in musichub.business">Song</a></span></div>
          -<div class="summary-table three-column-summary">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/util/List.html" title="class or interface in java.util" class="external-link">List</a>&lt;<a href="../Song.html" title="class in musichub.business">Song</a>&gt;</code></div>
          -<div class="col-second even-row-color"><span class="type-name-label">MusicHub.</span><code><span class="member-name-link"><a href="../MusicHub.html#getAlbumSongsSortedByGenre(java.lang.String)">getAlbumSongsSortedByGenre</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;albumTitle)</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-summary.html b/target/site/apidocs/musichub/business/package-summary.html
          deleted file mode 100644
          index ab9bef3..0000000
          --- a/target/site/apidocs/musichub/business/package-summary.html
          +++ /dev/null
          @@ -1,116 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.business (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.business</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.business</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Album.html" title="class in musichub.business">Album</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="AudioBook.html" title="class in musichub.business">AudioBook</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="AudioElement.html" title="class in musichub.business">AudioElement</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="MusicHub.html" title="class in musichub.business">MusicHub</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="PlayList.html" title="class in musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="Song.html" title="class in musichub.business">Song</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</li>
          -<li>
          -<div class="caption"><span>Enum Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Enum Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Category.html" title="enum class in musichub.business">Category</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="Genre.html" title="enum class in musichub.business">Genre</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="Language.html" title="enum class in musichub.business">Language</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -<li>
          -<div class="caption"><span>Exception Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Exception</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="NoAlbumFoundException.html" title="class in musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="NoElementFoundException.html" title="class in musichub.business">NoElementFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="NoPlayListFoundException.html" title="class in musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-tree.html b/target/site/apidocs/musichub/business/package-tree.html
          deleted file mode 100644
          index e1a5f5b..0000000
          --- a/target/site/apidocs/musichub/business/package-tree.html
          +++ /dev/null
          @@ -1,114 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.business Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.business</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          -<li class="circle">musichub.business.<a href="AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          -<li class="circle">musichub.business.<a href="Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          -</ul>
          -</li>
          -<li class="circle">musichub.business.<a href="MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.business.<a href="PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -<section class="hierarchy">
          -<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">musichub.business.<a href="Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          -<li class="circle">musichub.business.<a href="Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          -<li class="circle">musichub.business.<a href="Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/business/package-use.html b/target/site/apidocs/musichub/business/package-use.html
          deleted file mode 100644
          index 89e8d56..0000000
          --- a/target/site/apidocs/musichub/business/package-use.html
          +++ /dev/null
          @@ -1,105 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.business (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.business">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.business" class="title">Uses of Package<br>musichub.business</h1>
          -</div>
          -<div class="caption"><span>Packages that use <a href="package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Package</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="#musichub.business">musichub.business</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -<section class="package-uses">
          -<ul class="block-list">
          -<li>
          -<section class="detail" id="musichub.business">
          -<div class="caption"><span>Classes in <a href="package-summary.html">musichub.business</a> used by <a href="package-summary.html">musichub.business</a></span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="class-use/Album.html#musichub.business">Album</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/AudioElement.html#musichub.business">AudioElement</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/Category.html#musichub.business">Category</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/Genre.html#musichub.business">Genre</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/Language.html#musichub.business">Language</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/NoAlbumFoundException.html#musichub.business">NoAlbumFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/NoElementFoundException.html#musichub.business">NoElementFoundException</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/NoPlayListFoundException.html#musichub.business">NoPlayListFoundException</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -<div class="col-first even-row-color"><a href="class-use/PlayList.html#musichub.business">PlayList</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -<div class="col-first odd-row-color"><a href="class-use/Song.html#musichub.business">Song</a></div>
          -<div class="col-last odd-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/Main.html b/target/site/apidocs/musichub/main/Main.html
          deleted file mode 100644
          index 2a6bcf8..0000000
          --- a/target/site/apidocs/musichub/main/Main.html
          +++ /dev/null
          @@ -1,175 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.main, class: Main">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/Main.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.main</a></div>
          -<h1 title="Class Main" class="title">Class Main</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.main.Main</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">Main</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">Main</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab1" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab1', 3)" class="table-tab">Static Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code>static void</code></div>
          -<div class="col-second even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#main(java.lang.String%5B%5D)">main</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab1 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>Main</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">Main</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="main(java.lang.String[])">
          -<h3>main</h3>
          -<div class="member-signature"><span class="modifiers">public static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">main</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>[]&nbsp;args)</span>
          -                 throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a>,
          -<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></span></div>
          -<dl class="notes">
          -<dt>Throws:</dt>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/UnsupportedAudioFileException.html" title="class or interface in javax.sound.sampled" class="external-link">UnsupportedAudioFileException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/IOException.html" title="class or interface in java.io" class="external-link">IOException</a></code></dd>
          -<dd><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.desktop/javax/sound/sampled/LineUnavailableException.html" title="class or interface in javax.sound.sampled" class="external-link">LineUnavailableException</a></code></dd>
          -</dl>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/class-use/Main.html b/target/site/apidocs/musichub/main/class-use/Main.html
          deleted file mode 100644
          index 819433d..0000000
          --- a/target/site/apidocs/musichub/main/class-use/Main.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.main.Main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.main, class: Main">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../Main.html" title="class in musichub.main">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.main.Main" class="title">Uses of Class<br>musichub.main.Main</h1>
          -</div>
          -No usage of musichub.main.Main</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-summary.html b/target/site/apidocs/musichub/main/package-summary.html
          deleted file mode 100644
          index afcd6ad..0000000
          --- a/target/site/apidocs/musichub/main/package-summary.html
          +++ /dev/null
          @@ -1,80 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.main</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.main</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="Main.html" title="class in musichub.main">Main</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-tree.html b/target/site/apidocs/musichub/main/package-tree.html
          deleted file mode 100644
          index 393b386..0000000
          --- a/target/site/apidocs/musichub/main/package-tree.html
          +++ /dev/null
          @@ -1,79 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.main Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.main</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.main.<a href="Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/main/package-use.html b/target/site/apidocs/musichub/main/package-use.html
          deleted file mode 100644
          index 0747159..0000000
          --- a/target/site/apidocs/musichub/main/package-use.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.main (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.main">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.main" class="title">Uses of Package<br>musichub.main</h1>
          -</div>
          -No usage of musichub.main</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/XMLHandler.html b/target/site/apidocs/musichub/util/XMLHandler.html
          deleted file mode 100644
          index 53ffdbe..0000000
          --- a/target/site/apidocs/musichub/util/XMLHandler.html
          +++ /dev/null
          @@ -1,186 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>XMLHandler (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.util, class: XMLHandler">
          -<meta name="generator" content="javadoc/ClassWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-declaration-page">
          -<script type="text/javascript">var evenRowColor = "even-row-color";
          -var oddRowColor = "odd-row-color";
          -var tableTab = "table-tab";
          -var activeTableTab = "active-table-tab";
          -var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li class="nav-bar-cell1-rev">Class</li>
          -<li><a href="class-use/XMLHandler.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div>
          -<ul class="sub-nav-list">
          -<li>Summary:&nbsp;</li>
          -<li>Nested&nbsp;|&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.summary">Method</a></li>
          -</ul>
          -<ul class="sub-nav-list">
          -<li>Detail:&nbsp;</li>
          -<li>Field&nbsp;|&nbsp;</li>
          -<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
          -<li><a href="#method.detail">Method</a></li>
          -</ul>
          -</div>
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<!-- ======== START OF CLASS DATA ======== -->
          -<div class="header">
          -<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">musichub.util</a></div>
          -<h1 title="Class XMLHandler" class="title">Class XMLHandler</h1>
          -</div>
          -<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
          -<div class="inheritance">musichub.util.XMLHandler</div>
          -</div>
          -<section class="description">
          -<hr>
          -<div class="type-signature"><span class="modifiers">public class </span><span class="element-name type-name-label">XMLHandler</span>
          -<span class="extends-implements">extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></span></div>
          -</section>
          -<section class="summary">
          -<ul class="summary-list">
          -<!-- ======== CONSTRUCTOR SUMMARY ======== -->
          -<li>
          -<section class="constructor-summary" id="constructor.summary">
          -<h2>Constructor Summary</h2>
          -<div class="caption"><span>Constructors</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Constructor</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-constructor-name even-row-color"><code><span class="member-name-link"><a href="#%3Cinit%3E()">XMLHandler</a></span>()</code></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</section>
          -</li>
          -<!-- ========== METHOD SUMMARY =========== -->
          -<li>
          -<section class="method-summary" id="method.summary">
          -<h2>Method Summary</h2>
          -<div id="method-summary-table">
          -<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button></div>
          -<div id="method-summary-table.tabpanel" role="tabpanel">
          -<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
          -<div class="table-header col-first">Modifier and Type</div>
          -<div class="table-header col-second">Method</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLDocument()">createXMLDocument</a></span>()</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code>void</code></div>
          -<div class="col-second odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#createXMLFile(org.w3c.dom.Document,java.lang.String)">createXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          -<div class="col-last odd-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -<div class="col-first even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></code></div>
          -<div class="col-second even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table"><code><span class="member-name-link"><a href="#parseXMLFile(java.lang.String)">parseXMLFile</a></span>&#8203;(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</code></div>
          -<div class="col-last even-row-color method-summary-table-tab2 method-summary-table-tab4 method-summary-table">&nbsp;</div>
          -</div>
          -</div>
          -</div>
          -<div class="inherited-list">
          -<h3 id="methods.inherited.from.class.java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
          -<code><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#toString()" title="class or interface in java.lang" class="external-link">toString</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<section class="details">
          -<ul class="details-list">
          -<!-- ========= CONSTRUCTOR DETAIL ======== -->
          -<li>
          -<section class="constructor-details" id="constructor.detail">
          -<h2>Constructor Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="&lt;init&gt;()">
          -<h3>XMLHandler</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">XMLHandler</span>()</div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -<!-- ============ METHOD DETAIL ========== -->
          -<li>
          -<section class="method-details" id="method.detail">
          -<h2>Method Details</h2>
          -<ul class="member-list">
          -<li>
          -<section class="detail" id="createXMLFile(org.w3c.dom.Document,java.lang.String)">
          -<h3>createXMLFile</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">createXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a>&nbsp;document,
          - <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="createXMLDocument()">
          -<h3>createXMLDocument</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/Document.html" title="class or interface in org.w3c.dom" class="external-link">Document</a></span>&nbsp;<span class="element-name">createXMLDocument</span>()</div>
          -</section>
          -</li>
          -<li>
          -<section class="detail" id="parseXMLFile(java.lang.String)">
          -<h3>parseXMLFile</h3>
          -<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.xml/org/w3c/dom/NodeList.html" title="class or interface in org.w3c.dom" class="external-link">NodeList</a></span>&nbsp;<span class="element-name">parseXMLFile</span>&#8203;<span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;filePath)</span></div>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</section>
          -<!-- ========= END OF CLASS DATA ========= -->
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/class-use/XMLHandler.html b/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          deleted file mode 100644
          index 8c6ad08..0000000
          --- a/target/site/apidocs/musichub/util/class-use/XMLHandler.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Class musichub.util.XMLHandler (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.util, class: XMLHandler">
          -<meta name="generator" content="javadoc/ClassUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../../script.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="class-use-page">
          -<script type="text/javascript">var pathtoroot = "../../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../../index.html">Overview</a></li>
          -<li><a href="../package-summary.html">Package</a></li>
          -<li><a href="../XMLHandler.html" title="class in musichub.util">Class</a></li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="../package-tree.html">Tree</a></li>
          -<li><a href="../../../index-all.html">Index</a></li>
          -<li><a href="../../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Class musichub.util.XMLHandler" class="title">Uses of Class<br>musichub.util.XMLHandler</h1>
          -</div>
          -No usage of musichub.util.XMLHandler</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-summary.html b/target/site/apidocs/musichub/util/package-summary.html
          deleted file mode 100644
          index 24257be..0000000
          --- a/target/site/apidocs/musichub/util/package-summary.html
          +++ /dev/null
          @@ -1,88 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.util (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="declaration: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageWriterImpl">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-declaration-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li class="nav-bar-cell1-rev">Package</li>
          -<li>Class</li>
          -<li><a href="package-use.html">Use</a></li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Package" class="title">Package&nbsp;musichub.util</h1>
          -</div>
          -<hr>
          -<div class="package-signature">package <span class="element-name">musichub.util</span></div>
          -<section class="summary">
          -<ul class="summary-list">
          -<li>
          -<div class="caption"><span>Class Summary</span></div>
          -<div class="summary-table two-column-summary">
          -<div class="table-header col-first">Class</div>
          -<div class="table-header col-last">Description</div>
          -<div class="col-first even-row-color"><a href="LogHandler.html" title="class in musichub.util">LogHandler</a></div>
          -<div class="col-last even-row-color">
          -<div class="block">Class offering a log writing method.</div>
          -</div>
          -<div class="col-first odd-row-color"><a href="PathValidation.html" title="class in musichub.util">PathValidation</a></div>
          -<div class="col-last odd-row-color">
          -<div class="block">Class offering a path validation method.</div>
          -</div>
          -<div class="col-first even-row-color"><a href="XMLHandler.html" title="class in musichub.util">XMLHandler</a></div>
          -<div class="col-last even-row-color">&nbsp;</div>
          -</div>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-tree.html b/target/site/apidocs/musichub/util/package-tree.html
          deleted file mode 100644
          index ace19b6..0000000
          --- a/target/site/apidocs/musichub/util/package-tree.html
          +++ /dev/null
          @@ -1,81 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>musichub.util Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="tree: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageTreeWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-tree-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For Package musichub.util</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="../../overview-tree.html">All Packages</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.util.<a href="LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          -<li class="circle">musichub.util.<a href="PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          -<li class="circle">musichub.util.<a href="XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/musichub/util/package-use.html b/target/site/apidocs/musichub/util/package-use.html
          deleted file mode 100644
          index 02a3fc7..0000000
          --- a/target/site/apidocs/musichub/util/package-use.html
          +++ /dev/null
          @@ -1,65 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Uses of Package musichub.util (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="use: package: musichub.util">
          -<meta name="generator" content="javadoc/PackageUseWriter">
          -<link rel="stylesheet" type="text/css" href="../../stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="../../jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="../../script.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="../../script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="package-use-page">
          -<script type="text/javascript">var pathtoroot = "../../";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="../../index.html">Overview</a></li>
          -<li><a href="package-summary.html">Package</a></li>
          -<li>Class</li>
          -<li class="nav-bar-cell1-rev">Use</li>
          -<li><a href="package-tree.html">Tree</a></li>
          -<li><a href="../../index-all.html">Index</a></li>
          -<li><a href="../../help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Uses of Package musichub.util" class="title">Uses of Package<br>musichub.util</h1>
          -</div>
          -No usage of musichub.util</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/overview-summary.html b/target/site/apidocs/overview-summary.html
          deleted file mode 100644
          index 370d2cb..0000000
          --- a/target/site/apidocs/overview-summary.html
          +++ /dev/null
          @@ -1,27 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>spoteezer 0.1.0 API</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="index redirect">
          -<meta name="generator" content="javadoc/IndexRedirectWriter">
          -<link rel="canonical" href="index.html">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<script type="text/javascript">window.location.replace('index.html')</script>
          -<noscript>
          -<meta http-equiv="Refresh" content="0;index.html">
          -</noscript>
          -</head>
          -<body class="index-redirect-page">
          -<main role="main">
          -<noscript>
          -<p>JavaScript is disabled on your browser.</p>
          -</noscript>
          -<p><a href="index.html">index.html</a></p>
          -</main>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/overview-tree.html b/target/site/apidocs/overview-tree.html
          deleted file mode 100644
          index 943af3e..0000000
          --- a/target/site/apidocs/overview-tree.html
          +++ /dev/null
          @@ -1,120 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Class Hierarchy (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="class tree">
          -<meta name="generator" content="javadoc/TreeWriter">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="tree-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li class="nav-bar-cell1-rev">Tree</li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 class="title">Hierarchy For All Packages</h1>
          -<span class="package-hierarchy-label">Package Hierarchies:</span>
          -<ul class="horizontal">
          -<li><a href="musichub/business/package-tree.html">musichub.business</a>, </li>
          -<li><a href="musichub/main/package-tree.html">musichub.main</a>, </li>
          -<li><a href="musichub/util/package-tree.html">musichub.util</a></li>
          -</ul>
          -</div>
          -<section class="hierarchy">
          -<h2 title="Class Hierarchy">Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/Album.html" title="class in musichub.business"><span class="type-name-link">Album</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/AudioElement.html" title="class in musichub.business"><span class="type-name-link">AudioElement</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/AudioBook.html" title="class in musichub.business"><span class="type-name-link">AudioBook</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Song.html" title="class in musichub.business"><span class="type-name-link">Song</span></a></li>
          -</ul>
          -</li>
          -<li class="circle">musichub.util.<a href="musichub/util/LogHandler.html" title="class in musichub.util"><span class="type-name-link">LogHandler</span></a></li>
          -<li class="circle">musichub.main.<a href="musichub/main/Main.html" title="class in musichub.main"><span class="type-name-link">Main</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/MusicHub.html" title="class in musichub.business"><span class="type-name-link">MusicHub</span></a></li>
          -<li class="circle">musichub.util.<a href="musichub/util/PathValidation.html" title="class in musichub.util"><span class="type-name-link">PathValidation</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/PlayList.html" title="class in musichub.business"><span class="type-name-link">PlayList</span></a></li>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Throwable.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Throwable</span></a> (implements java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Exception</span></a>
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business"><span class="type-name-link">NoAlbumFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/NoElementFoundException.html" title="class in musichub.business"><span class="type-name-link">NoElementFoundException</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business"><span class="type-name-link">NoPlayListFoundException</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -<li class="circle">musichub.util.<a href="musichub/util/XMLHandler.html" title="class in musichub.util"><span class="type-name-link">XMLHandler</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -<section class="hierarchy">
          -<h2 title="Enum Class Hierarchy">Enum Class Hierarchy</h2>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Object</span></a>
          -<ul>
          -<li class="circle">java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Enum.html" title="class or interface in java.lang" class="external-link"><span class="type-name-link">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Comparable.html" title="class or interface in java.lang" class="external-link">Comparable</a>&lt;T&gt;, java.lang.constant.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/constant/Constable.html" title="class or interface in java.lang.constant" class="external-link">Constable</a>, java.io.<a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/io/Serializable.html" title="class or interface in java.io" class="external-link">Serializable</a>)
          -<ul>
          -<li class="circle">musichub.business.<a href="musichub/business/Category.html" title="enum class in musichub.business"><span class="type-name-link">Category</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Genre.html" title="enum class in musichub.business"><span class="type-name-link">Genre</span></a></li>
          -<li class="circle">musichub.business.<a href="musichub/business/Language.html" title="enum class in musichub.business"><span class="type-name-link">Language</span></a></li>
          -</ul>
          -</li>
          -</ul>
          -</li>
          -</ul>
          -</section>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/package-search-index.js b/target/site/apidocs/package-search-index.js
          deleted file mode 100644
          index 3098d0e..0000000
          --- a/target/site/apidocs/package-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"musichub.business"},{"l":"musichub.main"},{"l":"musichub.util"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/resources/glass.png b/target/site/apidocs/resources/glass.png
          deleted file mode 100644
          index a7f591f..0000000
          Binary files a/target/site/apidocs/resources/glass.png and /dev/null differ
          diff --git a/target/site/apidocs/resources/x.png b/target/site/apidocs/resources/x.png
          deleted file mode 100644
          index 30548a7..0000000
          Binary files a/target/site/apidocs/resources/x.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png
          deleted file mode 100644
          index 34abd18..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png
          deleted file mode 100644
          index f058a93..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_65_dadada_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png
          deleted file mode 100644
          index 2ce04c1..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_75_dadada_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png
          deleted file mode 100644
          index a90afb8..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png
          deleted file mode 100644
          index dbe091f..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png
          deleted file mode 100644
          index 5dc3593..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png
          deleted file mode 100644
          index e723e17..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_222222_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png
          deleted file mode 100644
          index 1f5f497..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_2e83ff_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png
          deleted file mode 100644
          index 618f5b0..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_454545_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png
          deleted file mode 100644
          index ee5e33f..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_888888_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png b/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png
          deleted file mode 100644
          index 7e8ebc1..0000000
          Binary files a/target/site/apidocs/script-dir/images/ui-icons_cd0a0a_256x240.png and /dev/null differ
          diff --git a/target/site/apidocs/script-dir/jquery-3.5.1.min.js b/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          deleted file mode 100644
          index b061403..0000000
          --- a/target/site/apidocs/script-dir/jquery-3.5.1.min.js
          +++ /dev/null
          @@ -1,2 +0,0 @@
          -/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */
          -!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0<t&&t-1 in e)}S.fn=S.prototype={jquery:f,constructor:S,length:0,toArray:function(){return s.call(this)},get:function(e){return null==e?s.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=S.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return S.each(this,e)},map:function(n){return this.pushStack(S.map(this,function(e,t){return n.call(e,t,e)}))},slice:function(){return this.pushStack(s.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(S.grep(this,function(e,t){return(t+1)%2}))},odd:function(){return this.pushStack(S.grep(this,function(e,t){return t%2}))},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(0<=n&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:u,sort:t.sort,splice:t.splice},S.extend=S.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||m(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)r=e[t],"__proto__"!==t&&a!==r&&(l&&r&&(S.isPlainObject(r)||(i=Array.isArray(r)))?(n=a[t],o=i&&!Array.isArray(n)?[]:i||S.isPlainObject(n)?n:{},i=!1,a[t]=S.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},S.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==o.call(e))&&(!(t=r(e))||"function"==typeof(n=v.call(t,"constructor")&&t.constructor)&&a.call(n)===l)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e,t,n){b(e,{nonce:t&&t.nonce},n)},each:function(e,t){var n,r=0;if(p(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},makeArray:function(e,t){var n=t||[];return null!=e&&(p(Object(e))?S.merge(n,"string"==typeof e?[e]:e):u.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:i.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r=[],i=0,o=e.length,a=!n;i<o;i++)!t(e[i],i)!==a&&r.push(e[i]);return r},map:function(e,t,n){var r,i,o=0,a=[];if(p(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&a.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&a.push(i);return g(a)},guid:1,support:y}),"function"==typeof Symbol&&(S.fn[Symbol.iterator]=t[Symbol.iterator]),S.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){n["[object "+t+"]"]=t.toLowerCase()});var d=function(n){var e,d,b,o,i,h,f,g,w,u,l,T,C,a,E,v,s,c,y,S="sizzle"+1*new Date,p=n.document,k=0,r=0,m=ue(),x=ue(),A=ue(),N=ue(),D=function(e,t){return e===t&&(l=!0),0},j={}.hasOwnProperty,t=[],q=t.pop,L=t.push,H=t.push,O=t.slice,P=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",I="(?:\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",W="\\["+M+"*("+I+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+I+"))|)"+M+"*\\]",F=":("+I+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+W+")*)|.*)\\)|)",B=new RegExp(M+"+","g"),$=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=new RegExp("^"+M+"*,"+M+"*"),z=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="<a id='"+S+"'></a><select id='"+S+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0<se(t,C,null,[e]).length},se.contains=function(e,t){return(e.ownerDocument||e)!=C&&T(e),y(e,t)},se.attr=function(e,t){(e.ownerDocument||e)!=C&&T(e);var n=b.attrHandle[t.toLowerCase()],r=n&&j.call(b.attrHandle,t.toLowerCase())?n(e,t,!E):void 0;return void 0!==r?r:d.attributes||!E?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},se.escape=function(e){return(e+"").replace(re,ie)},se.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},se.uniqueSort=function(e){var t,n=[],r=0,i=0;if(l=!d.detectDuplicates,u=!d.sortStable&&e.slice(0),e.sort(D),l){while(t=e[i++])t===e[i]&&(r=n.push(i));while(r--)e.splice(n[r],1)}return u=null,e},o=se.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else while(t=e[r++])n+=o(t);return n},(b=se.selectors={cacheLength:50,createPseudo:le,match:G,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1<t.indexOf(i):"$="===r?i&&t.slice(-i.length)===i:"~="===r?-1<(" "+t.replace(B," ")+" ").indexOf(i):"|="===r&&(t===i||t.slice(0,i.length+1)===i+"-"))}},CHILD:function(h,e,t,g,v){var y="nth"!==h.slice(0,3),m="last"!==h.slice(-4),x="of-type"===e;return 1===g&&0===v?function(e){return!!e.parentNode}:function(e,t,n){var r,i,o,a,s,u,l=y!==m?"nextSibling":"previousSibling",c=e.parentNode,f=x&&e.nodeName.toLowerCase(),p=!n&&!x,d=!1;if(c){if(y){while(l){a=e;while(a=a[l])if(x?a.nodeName.toLowerCase()===f:1===a.nodeType)return!1;u=l="only"===h&&!u&&"nextSibling"}return!0}if(u=[m?c.firstChild:c.lastChild],m&&p){d=(s=(r=(i=(o=(a=c)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1])&&r[2],a=s&&c.childNodes[s];while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if(1===a.nodeType&&++d&&a===e){i[h]=[k,s,d];break}}else if(p&&(d=s=(r=(i=(o=(a=e)[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]||[])[0]===k&&r[1]),!1===d)while(a=++s&&a&&a[l]||(d=s=0)||u.pop())if((x?a.nodeName.toLowerCase()===f:1===a.nodeType)&&++d&&(p&&((i=(o=a[S]||(a[S]={}))[a.uniqueID]||(o[a.uniqueID]={}))[h]=[k,d]),a===e))break;return(d-=v)===g||d%g==0&&0<=d/g}}},PSEUDO:function(e,o){var t,a=b.pseudos[e]||b.setFilters[e.toLowerCase()]||se.error("unsupported pseudo: "+e);return a[S]?a(o):1<a.length?(t=[e,e,"",o],b.setFilters.hasOwnProperty(e.toLowerCase())?le(function(e,t){var n,r=a(e,o),i=r.length;while(i--)e[n=P(e,r[i])]=!(t[n]=r[i])}):function(e){return a(e,0,t)}):a}},pseudos:{not:le(function(e){var r=[],i=[],s=f(e.replace($,"$1"));return s[S]?le(function(e,t,n,r){var i,o=s(e,null,r,[]),a=e.length;while(a--)(i=o[a])&&(e[a]=!(t[a]=i))}):function(e,t,n){return r[0]=e,s(r,null,n,i),r[0]=null,!i.pop()}}),has:le(function(t){return function(e){return 0<se(t,e).length}}),contains:le(function(t){return t=t.replace(te,ne),function(e){return-1<(e.textContent||o(e)).indexOf(t)}}),lang:le(function(n){return V.test(n||"")||se.error("unsupported lang: "+n),n=n.replace(te,ne).toLowerCase(),function(e){var t;do{if(t=E?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return(t=t.toLowerCase())===n||0===t.indexOf(n+"-")}while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=n.location&&n.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===a},focus:function(e){return e===C.activeElement&&(!C.hasFocus||C.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:ge(!1),disabled:ge(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!b.pseudos.empty(e)},header:function(e){return J.test(e.nodeName)},input:function(e){return Q.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:ve(function(){return[0]}),last:ve(function(e,t){return[t-1]}),eq:ve(function(e,t,n){return[n<0?n+t:n]}),even:ve(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:ve(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:ve(function(e,t,n){for(var r=n<0?n+t:t<n?t:n;0<=--r;)e.push(r);return e}),gt:ve(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=b.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})b.pseudos[e]=de(e);for(e in{submit:!0,reset:!0})b.pseudos[e]=he(e);function me(){}function xe(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function be(s,e,t){var u=e.dir,l=e.next,c=l||u,f=t&&"parentNode"===c,p=r++;return e.first?function(e,t,n){while(e=e[u])if(1===e.nodeType||f)return s(e,t,n);return!1}:function(e,t,n){var r,i,o,a=[k,p];if(n){while(e=e[u])if((1===e.nodeType||f)&&s(e,t,n))return!0}else while(e=e[u])if(1===e.nodeType||f)if(i=(o=e[S]||(e[S]={}))[e.uniqueID]||(o[e.uniqueID]={}),l&&l===e.nodeName.toLowerCase())e=e[u]||e;else{if((r=i[c])&&r[0]===k&&r[1]===p)return a[2]=r[2];if((i[c]=a)[2]=s(e,t,n))return!0}return!1}}function we(i){return 1<i.length?function(e,t,n){var r=i.length;while(r--)if(!i[r](e,t,n))return!1;return!0}:i[0]}function Te(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Ce(d,h,g,v,y,e){return v&&!v[S]&&(v=Ce(v)),y&&!y[S]&&(y=Ce(y,e)),le(function(e,t,n,r){var i,o,a,s=[],u=[],l=t.length,c=e||function(e,t,n){for(var r=0,i=t.length;r<i;r++)se(e,t[r],n);return n}(h||"*",n.nodeType?[n]:n,[]),f=!d||!e&&h?c:Te(c,s,d,n,r),p=g?y||(e?d:l||v)?[]:t:f;if(g&&g(f,p,n,r),v){i=Te(p,u),v(i,[],n,r),o=i.length;while(o--)(a=i[o])&&(p[u[o]]=!(f[u[o]]=a))}if(e){if(y||d){if(y){i=[],o=p.length;while(o--)(a=p[o])&&i.push(f[o]=a);y(null,p=[],i,r)}o=p.length;while(o--)(a=p[o])&&-1<(i=y?P(e,a):s[o])&&(e[i]=!(t[i]=a))}}else p=Te(p===t?p.splice(l,p.length):p),y?y(null,t,p,r):H.apply(t,p)})}function Ee(e){for(var i,t,n,r=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,u=be(function(e){return e===i},a,!0),l=be(function(e){return-1<P(i,e)},a,!0),c=[function(e,t,n){var r=!o&&(n||t!==w)||((i=t).nodeType?u(e,t,n):l(e,t,n));return i=null,r}];s<r;s++)if(t=b.relative[e[s].type])c=[be(we(c),t)];else{if((t=b.filter[e[s].type].apply(null,e[s].matches))[S]){for(n=++s;n<r;n++)if(b.relative[e[n].type])break;return Ce(1<s&&we(c),1<s&&xe(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace($,"$1"),t,s<n&&Ee(e.slice(s,n)),n<r&&Ee(e=e.slice(n)),n<r&&xe(e))}c.push(t)}return we(c)}return me.prototype=b.filters=b.pseudos,b.setFilters=new me,h=se.tokenize=function(e,t){var n,r,i,o,a,s,u,l=x[e+" "];if(l)return t?0:l.slice(0);a=e,s=[],u=b.preFilter;while(a){for(o in n&&!(r=_.exec(a))||(r&&(a=a.slice(r[0].length)||a),s.push(i=[])),n=!1,(r=z.exec(a))&&(n=r.shift(),i.push({value:n,type:r[0].replace($," ")}),a=a.slice(n.length)),b.filter)!(r=G[o].exec(a))||u[o]&&!(r=u[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?se.error(e):x(e,s).slice(0)},f=se.compile=function(e,t){var n,v,y,m,x,r,i=[],o=[],a=A[e+" "];if(!a){t||(t=h(e)),n=t.length;while(n--)(a=Ee(t[n]))[S]?i.push(a):o.push(a);(a=A(e,(v=o,m=0<(y=i).length,x=0<v.length,r=function(e,t,n,r,i){var o,a,s,u=0,l="0",c=e&&[],f=[],p=w,d=e||x&&b.find.TAG("*",i),h=k+=null==p?1:Math.random()||.1,g=d.length;for(i&&(w=t==C||t||i);l!==g&&null!=(o=d[l]);l++){if(x&&o){a=0,t||o.ownerDocument==C||(T(o),n=!E);while(s=v[a++])if(s(o,t||C,n)){r.push(o);break}i&&(k=h)}m&&((o=!s&&o)&&u--,e&&c.push(o))}if(u+=l,m&&l!==u){a=0;while(s=y[a++])s(c,f,t,n);if(e){if(0<u)while(l--)c[l]||f[l]||(f[l]=q.call(r));f=Te(f)}H.apply(r,f),i&&!e&&0<f.length&&1<u+y.length&&se.uniqueSort(r)}return i&&(k=h,w=p),c},m?le(r):r))).selector=e}return a},g=se.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,c=!r&&h(e=l.selector||e);if(n=n||[],1===c.length){if(2<(o=c[0]=c[0].slice(0)).length&&"ID"===(a=o[0]).type&&9===t.nodeType&&E&&b.relative[o[1].type]){if(!(t=(b.find.ID(a.matches[0].replace(te,ne),t)||[])[0]))return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}i=G.needsContext.test(e)?0:o.length;while(i--){if(a=o[i],b.relative[s=a.type])break;if((u=b.find[s])&&(r=u(a.matches[0].replace(te,ne),ee.test(o[0].type)&&ye(t.parentNode)||t))){if(o.splice(i,1),!(e=r.length&&xe(o)))return H.apply(n,r),n;break}}}return(l||f(e,c))(r,t,!E,n,!t||ee.test(e)&&ye(t.parentNode)||t),n},d.sortStable=S.split("").sort(D).join("")===S,d.detectDuplicates=!!l,T(),d.sortDetached=ce(function(e){return 1&e.compareDocumentPosition(C.createElement("fieldset"))}),ce(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||fe("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),d.attributes&&ce(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||fe("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ce(function(e){return null==e.getAttribute("disabled")})||fe(R,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),se}(C);S.find=d,S.expr=d.selectors,S.expr[":"]=S.expr.pseudos,S.uniqueSort=S.unique=d.uniqueSort,S.text=d.getText,S.isXMLDoc=d.isXML,S.contains=d.contains,S.escapeSelector=d.escape;var h=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&S(e).is(n))break;r.push(e)}return r},T=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},k=S.expr.match.needsContext;function A(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var N=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1<i.call(n,e)!==r}):S.filter(n,e,r)}S.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?S.find.matchesSelector(r,e)?[r]:[]:S.find.matches(e,S.grep(t,function(e){return 1===e.nodeType}))},S.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(S(e).filter(function(){for(t=0;t<r;t++)if(S.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)S.find(e,i[t],n);return 1<r?S.uniqueSort(n):n},filter:function(e){return this.pushStack(D(this,e||[],!1))},not:function(e){return this.pushStack(D(this,e||[],!0))},is:function(e){return!!D(this,"string"==typeof e&&k.test(e)?S(e):e||[],!1).length}});var j,q=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(S.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&S(e);if(!k.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?-1<a.index(n):1===n.nodeType&&S.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(1<o.length?S.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?i.call(S(e),this[0]):i.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(S.uniqueSort(S.merge(this.get(),S(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),S.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t,n){return h(e,"parentNode",n)},next:function(e){return O(e,"nextSibling")},prev:function(e){return O(e,"previousSibling")},nextAll:function(e){return h(e,"nextSibling")},prevAll:function(e){return h(e,"previousSibling")},nextUntil:function(e,t,n){return h(e,"nextSibling",n)},prevUntil:function(e,t,n){return h(e,"previousSibling",n)},siblings:function(e){return T((e.parentNode||{}).firstChild,e)},children:function(e){return T(e.firstChild)},contents:function(e){return null!=e.contentDocument&&r(e.contentDocument)?e.contentDocument:(A(e,"template")&&(e=e.content||e),S.merge([],e.childNodes))}},function(r,i){S.fn[r]=function(e,t){var n=S.map(this,i,e);return"Until"!==r.slice(-5)&&(t=e),t&&"string"==typeof t&&(n=S.filter(t,n)),1<this.length&&(H[r]||S.uniqueSort(n),L.test(r)&&n.reverse()),this.pushStack(n)}});var P=/[^\x20\t\r\n\f]+/g;function R(e){return e}function M(e){throw e}function I(e,t,n,r){var i;try{e&&m(i=e.promise)?i.call(e).done(t).fail(n):e&&m(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}S.Callbacks=function(r){var e,n;r="string"==typeof r?(e=r,n={},S.each(e.match(P)||[],function(e,t){n[t]=!0}),n):S.extend({},r);var i,t,o,a,s=[],u=[],l=-1,c=function(){for(a=a||r.once,o=i=!0;u.length;l=-1){t=u.shift();while(++l<s.length)!1===s[l].apply(t[0],t[1])&&r.stopOnFalse&&(l=s.length,t=!1)}r.memory||(t=!1),i=!1,a&&(s=t?[]:"")},f={add:function(){return s&&(t&&!i&&(l=s.length-1,u.push(t)),function n(e){S.each(e,function(e,t){m(t)?r.unique&&f.has(t)||s.push(t):t&&t.length&&"string"!==w(t)&&n(t)})}(arguments),t&&!i&&c()),this},remove:function(){return S.each(arguments,function(e,t){var n;while(-1<(n=S.inArray(t,s,n)))s.splice(n,1),n<=l&&l--}),this},has:function(e){return e?-1<S.inArray(e,s):0<s.length},empty:function(){return s&&(s=[]),this},disable:function(){return a=u=[],s=t="",this},disabled:function(){return!s},lock:function(){return a=u=[],t||i||(s=t=""),this},locked:function(){return!!a},fireWith:function(e,t){return a||(t=[e,(t=t||[]).slice?t.slice():t],u.push(t),i||c()),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!o}};return f},S.extend({Deferred:function(e){var o=[["notify","progress",S.Callbacks("memory"),S.Callbacks("memory"),2],["resolve","done",S.Callbacks("once memory"),S.Callbacks("once memory"),0,"resolved"],["reject","fail",S.Callbacks("once memory"),S.Callbacks("once memory"),1,"rejected"]],i="pending",a={state:function(){return i},always:function(){return s.done(arguments).fail(arguments),this},"catch":function(e){return a.then(null,e)},pipe:function(){var i=arguments;return S.Deferred(function(r){S.each(o,function(e,t){var n=m(i[t[4]])&&i[t[4]];s[t[1]](function(){var e=n&&n.apply(this,arguments);e&&m(e.promise)?e.promise().progress(r.notify).done(r.resolve).fail(r.reject):r[t[0]+"With"](this,n?[e]:arguments)})}),i=null}).promise()},then:function(t,n,r){var u=0;function l(i,o,a,s){return function(){var n=this,r=arguments,e=function(){var e,t;if(!(i<u)){if((e=a.apply(n,r))===o.promise())throw new TypeError("Thenable self-resolution");t=e&&("object"==typeof e||"function"==typeof e)&&e.then,m(t)?s?t.call(e,l(u,o,R,s),l(u,o,M,s)):(u++,t.call(e,l(u,o,R,s),l(u,o,M,s),l(u,o,R,o.notifyWith))):(a!==R&&(n=void 0,r=[e]),(s||o.resolveWith)(n,r))}},t=s?e:function(){try{e()}catch(e){S.Deferred.exceptionHook&&S.Deferred.exceptionHook(e,t.stackTrace),u<=i+1&&(a!==M&&(n=void 0,r=[e]),o.rejectWith(n,r))}};i?t():(S.Deferred.getStackHook&&(t.stackTrace=S.Deferred.getStackHook()),C.setTimeout(t))}}return S.Deferred(function(e){o[0][3].add(l(0,e,m(r)?r:R,e.notifyWith)),o[1][3].add(l(0,e,m(t)?t:R)),o[2][3].add(l(0,e,m(n)?n:M))}).promise()},promise:function(e){return null!=e?S.extend(e,a):a}},s={};return S.each(o,function(e,t){var n=t[2],r=t[5];a[t[1]]=n.add,r&&n.add(function(){i=r},o[3-e][2].disable,o[3-e][3].disable,o[0][2].lock,o[0][3].lock),n.add(t[3].fire),s[t[0]]=function(){return s[t[0]+"With"](this===s?void 0:this,arguments),this},s[t[0]+"With"]=n.fireWith}),a.promise(s),e&&e.call(s,s),s},when:function(e){var n=arguments.length,t=n,r=Array(t),i=s.call(arguments),o=S.Deferred(),a=function(t){return function(e){r[t]=this,i[t]=1<arguments.length?s.call(arguments):e,--n||o.resolveWith(r,i)}};if(n<=1&&(I(e,o.done(a(t)).resolve,o.reject,!n),"pending"===o.state()||m(i[t]&&i[t].then)))return o.then();while(t--)I(i[t],a(t),o.reject);return o.promise()}});var W=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;S.Deferred.exceptionHook=function(e,t){C.console&&C.console.warn&&e&&W.test(e.name)&&C.console.warn("jQuery.Deferred exception: "+e.message,e.stack,t)},S.readyException=function(e){C.setTimeout(function(){throw e})};var F=S.Deferred();function B(){E.removeEventListener("DOMContentLoaded",B),C.removeEventListener("load",B),S.ready()}S.fn.ready=function(e){return F.then(e)["catch"](function(e){S.readyException(e)}),this},S.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--S.readyWait:S.isReady)||(S.isReady=!0)!==e&&0<--S.readyWait||F.resolveWith(E,[S])}}),S.ready.then=F.then,"complete"===E.readyState||"loading"!==E.readyState&&!E.documentElement.doScroll?C.setTimeout(S.ready):(E.addEventListener("DOMContentLoaded",B),C.addEventListener("load",B));var $=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===w(n))for(s in i=!0,n)$(e,t,s,n[s],!0,o,a);else if(void 0!==r&&(i=!0,m(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(S(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},_=/^-ms-/,z=/-([a-z])/g;function U(e,t){return t.toUpperCase()}function X(e){return e.replace(_,"ms-").replace(z,U)}var V=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function G(){this.expando=S.expando+G.uid++}G.uid=1,G.prototype={cache:function(e){var t=e[this.expando];return t||(t={},V(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[X(t)]=n;else for(r in t)i[X(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][X(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(X):(t=X(t))in r?[t]:t.match(P)||[]).length;while(n--)delete r[t[n]]}(void 0===t||S.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!S.isEmptyObject(t)}};var Y=new G,Q=new G,J=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,K=/[A-Z]/g;function Z(e,t,n){var r,i;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(K,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n="true"===(i=n)||"false"!==i&&("null"===i?null:i===+i+""?+i:J.test(i)?JSON.parse(i):i)}catch(e){}Q.set(e,t,n)}else n=void 0;return n}S.extend({hasData:function(e){return Q.hasData(e)||Y.hasData(e)},data:function(e,t,n){return Q.access(e,t,n)},removeData:function(e,t){Q.remove(e,t)},_data:function(e,t,n){return Y.access(e,t,n)},_removeData:function(e,t){Y.remove(e,t)}}),S.fn.extend({data:function(n,e){var t,r,i,o=this[0],a=o&&o.attributes;if(void 0===n){if(this.length&&(i=Q.get(o),1===o.nodeType&&!Y.get(o,"hasDataAttrs"))){t=a.length;while(t--)a[t]&&0===(r=a[t].name).indexOf("data-")&&(r=X(r.slice(5)),Z(o,r,i[r]));Y.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof n?this.each(function(){Q.set(this,n)}):$(this,function(e){var t;if(o&&void 0===e)return void 0!==(t=Q.get(o,n))?t:void 0!==(t=Z(o,n))?t:void 0;this.each(function(){Q.set(this,n,e)})},null,e,1<arguments.length,null,!0)},removeData:function(e){return this.each(function(){Q.remove(this,e)})}}),S.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Y.get(e,t),n&&(!r||Array.isArray(n)?r=Y.access(e,t,S.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=S.queue(e,t),r=n.length,i=n.shift(),o=S._queueHooks(e,t);"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,function(){S.dequeue(e,t)},o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Y.get(e,n)||Y.access(e,n,{empty:S.Callbacks("once memory").add(function(){Y.remove(e,[t+"queue",n])})})}}),S.fn.extend({queue:function(t,n){var e=2;return"string"!=typeof t&&(n=t,t="fx",e--),arguments.length<e?S.queue(this[0],t):void 0===n?this:this.each(function(){var e=S.queue(this,t,n);S._queueHooks(this,t),"fx"===t&&"inprogress"!==e[0]&&S.dequeue(this,t)})},dequeue:function(e){return this.each(function(){S.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=S.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=Y.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var ee=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,te=new RegExp("^(?:([+-])=|)("+ee+")([a-z%]*)$","i"),ne=["Top","Right","Bottom","Left"],re=E.documentElement,ie=function(e){return S.contains(e.ownerDocument,e)},oe={composed:!0};re.getRootNode&&(ie=function(e){return S.contains(e.ownerDocument,e)||e.getRootNode(oe)===e.ownerDocument});var ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&ie(e)&&"none"===S.css(e,"display")};function se(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return S.css(e,t,"")},u=s(),l=n&&n[3]||(S.cssNumber[t]?"":"px"),c=e.nodeType&&(S.cssNumber[t]||"px"!==l&&+u)&&te.exec(S.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)S.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,S.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var ue={};function le(e,t){for(var n,r,i,o,a,s,u,l=[],c=0,f=e.length;c<f;c++)(r=e[c]).style&&(n=r.style.display,t?("none"===n&&(l[c]=Y.get(r,"display")||null,l[c]||(r.style.display="")),""===r.style.display&&ae(r)&&(l[c]=(u=a=o=void 0,a=(i=r).ownerDocument,s=i.nodeName,(u=ue[s])||(o=a.body.appendChild(a.createElement(s)),u=S.css(o,"display"),o.parentNode.removeChild(o),"none"===u&&(u="block"),ue[s]=u)))):"none"!==n&&(l[c]="none",Y.set(r,"display",n)));for(c=0;c<f;c++)null!=l[c]&&(e[c].style.display=l[c]);return e}S.fn.extend({show:function(){return le(this,!0)},hide:function(){return le(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?S(this).show():S(this).hide()})}});var ce,fe,pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="<textarea>x</textarea>",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="<option></option>",y.option=!!ce.lastChild;var ge={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n<r;n++)Y.set(e[n],"globalEval",!t||Y.get(t[n],"globalEval"))}ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td,y.option||(ge.optgroup=ge.option=[1,"<select multiple='multiple'>","</select>"]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===w(o))S.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+S.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;S.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&-1<S.inArray(o,r))i&&i.push(o);else if(l=ie(o),a=ve(f.appendChild(o),"script"),l&&ye(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}var be=/^key/,we=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Te=/^([^.]*)(?:\.(.+)|)/;function Ce(){return!0}function Ee(){return!1}function Se(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function ke(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)ke(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Ee;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return S().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=S.guid++)),e.each(function(){S.event.add(this,t,i,r,n)})}function Ae(e,i,o){o?(Y.set(e,i,!1),S.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Y.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(S.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Y.set(this,i,r),t=o(this,i),this[i](),r!==(n=Y.get(this,i))||t?Y.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Y.set(this,i,{value:S.event.trigger(S.extend(r[0],S.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Y.get(e,i)&&S.event.add(e,i,Ce)}S.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.get(t);if(V(t)){n.handler&&(n=(o=n).handler,i=o.selector),i&&S.find.matchesSelector(re,i),n.guid||(n.guid=S.guid++),(u=v.events)||(u=v.events=Object.create(null)),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof S&&S.event.triggered!==e.type?S.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(P)||[""]).length;while(l--)d=g=(s=Te.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=S.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=S.event.special[d]||{},c=S.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&S.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),S.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Y.hasData(e)&&Y.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(P)||[""]).length;while(l--)if(d=g=(s=Te.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=S.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||S.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)S.event.remove(e,d+t[l],n,r,!0);S.isEmptyObject(u)&&Y.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=new Array(arguments.length),u=S.event.fix(e),l=(Y.get(this,"events")||Object.create(null))[u.type]||[],c=S.event.special[u.type]||{};for(s[0]=u,t=1;t<arguments.length;t++)s[t]=arguments[t];if(u.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,u)){a=S.event.handlers.call(this,u,l),t=0;while((i=a[t++])&&!u.isPropagationStopped()){u.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!u.isImmediatePropagationStopped())u.rnamespace&&!1!==o.namespace&&!u.rnamespace.test(o.namespace)||(u.handleObj=o,u.data=o.data,void 0!==(r=((S.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s))&&!1===(u.result=r)&&(u.preventDefault(),u.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,u),u.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&1<=e.button))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?-1<S(i,this).index(l):S.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(t,e){Object.defineProperty(S.Event.prototype,t,{enumerable:!0,configurable:!0,get:m(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t]},set:function(e){Object.defineProperty(this,t,{enumerable:!0,configurable:!0,writable:!0,value:e})}})},fix:function(e){return e[S.expando]?e:new S.Event(e)},special:{load:{noBubble:!0},click:{setup:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click",Ce),!1},trigger:function(e){var t=this||e;return pe.test(t.type)&&t.click&&A(t,"input")&&Ae(t,"click"),!0},_default:function(e){var t=e.target;return pe.test(t.type)&&t.click&&A(t,"input")&&Y.get(t,"click")||A(t,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},S.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},S.Event=function(e,t){if(!(this instanceof S.Event))return new S.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ce:Ee,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&S.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[S.expando]=!0},S.Event.prototype={constructor:S.Event,isDefaultPrevented:Ee,isPropagationStopped:Ee,isImmediatePropagationStopped:Ee,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ce,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ce,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ce,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},S.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&be.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&we.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},S.event.addProp),S.each({focus:"focusin",blur:"focusout"},function(e,t){S.event.special[e]={setup:function(){return Ae(this,e,Se),!1},trigger:function(){return Ae(this,e),!0},delegateType:t}}),S.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,i){S.event.special[e]={delegateType:i,bindType:i,handle:function(e){var t,n=e.relatedTarget,r=e.handleObj;return n&&(n===this||S.contains(this,n))||(e.type=r.origType,t=r.handler.apply(this,arguments),e.type=i),t}}}),S.fn.extend({on:function(e,t,n,r){return ke(this,e,t,n,r)},one:function(e,t,n,r){return ke(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,S(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=Ee),this.each(function(){S.event.remove(this,e,n,t)})}});var Ne=/<script|<style|<link/i,De=/checked\s*(?:[^=]|=\s*.checked.)/i,je=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n<r;n++)S.event.add(t,i,s[i][n]);Q.hasData(e)&&(o=Q.access(e),a=S.extend({},o),Q.set(t,a))}}function Pe(n,r,i,o){r=g(r);var e,t,a,s,u,l,c=0,f=n.length,p=f-1,d=r[0],h=m(d);if(h||1<f&&"string"==typeof d&&!y.checkClone&&De.test(d))return n.each(function(e){var t=n.eq(e);h&&(r[0]=d.call(this,e,t.html())),Pe(t,r,i,o)});if(f&&(t=(e=xe(r,n[0].ownerDocument,!1,n,o)).firstChild,1===e.childNodes.length&&(e=t),t||o)){for(s=(a=S.map(ve(e,"script"),Le)).length;c<f;c++)u=e,c!==p&&(u=S.clone(u,!0,!0),s&&S.merge(a,ve(u,"script"))),i.call(n[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,S.map(a,He),c=0;c<s;c++)u=a[c],he.test(u.type||"")&&!Y.access(u,"globalEval")&&S.contains(l,u)&&(u.src&&"module"!==(u.type||"").toLowerCase()?S._evalUrl&&!u.noModule&&S._evalUrl(u.src,{nonce:u.nonce||u.getAttribute("nonce")},l):b(u.textContent.replace(je,""),u,l))}return n}function Re(e,t,n){for(var r,i=t?S.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||S.cleanData(ve(r)),r.parentNode&&(n&&ie(r)&&ye(ve(r,"script")),r.parentNode.removeChild(r));return e}S.extend({htmlPrefilter:function(e){return e},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=ie(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||S.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r<i;r++)s=o[r],u=a[r],void 0,"input"===(l=u.nodeName.toLowerCase())&&pe.test(s.type)?u.checked=s.checked:"input"!==l&&"textarea"!==l||(u.defaultValue=s.defaultValue);if(t)if(n)for(o=o||ve(e),a=a||ve(c),r=0,i=o.length;r<i;r++)Oe(o[r],a[r]);else Oe(e,c);return 0<(a=ve(c,"script")).length&&ye(a,!f&&ve(e,"script")),c},cleanData:function(e){for(var t,n,r,i=S.event.special,o=0;void 0!==(n=e[o]);o++)if(V(n)){if(t=n[Y.expando]){if(t.events)for(r in t.events)i[r]?S.event.remove(n,r):S.removeEvent(n,r,t.handle);n[Y.expando]=void 0}n[Q.expando]&&(n[Q.expando]=void 0)}}}),S.fn.extend({detach:function(e){return Re(this,e,!0)},remove:function(e){return Re(this,e)},text:function(e){return $(this,function(e){return void 0===e?S.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Pe(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||qe(this,e).appendChild(e)})},prepend:function(){return Pe(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=qe(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Pe(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(S.cleanData(ve(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return S.clone(this,e,t)})},html:function(e){return $(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ne.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=S.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(S.cleanData(ve(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var n=[];return Pe(this,arguments,function(e){var t=this.parentNode;S.inArray(this,n)<0&&(S.cleanData(ve(this)),t&&t.replaceChild(e,this))},n)}}),S.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,a){S.fn[e]=function(e){for(var t,n=[],r=S(e),i=r.length-1,o=0;o<=i;o++)t=o===i?this:this.clone(!0),S(r[o])[a](t),u.apply(n,t.get());return this.pushStack(n)}});var Me=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),Ie=function(e){var t=e.ownerDocument.defaultView;return t&&t.opener||(t=C),t.getComputedStyle(e)},We=function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];for(i in r=n.call(e),t)e.style[i]=o[i];return r},Fe=new RegExp(ne.join("|"),"i");function Be(e,t,n){var r,i,o,a,s=e.style;return(n=n||Ie(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||ie(e)||(a=S.style(e,t)),!y.pixelBoxStyles()&&Me.test(a)&&Fe.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function $e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}!function(){function e(){if(l){u.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",re.appendChild(u).appendChild(l);var e=C.getComputedStyle(l);n="1%"!==e.top,s=12===t(e.marginLeft),l.style.right="60%",o=36===t(e.right),r=36===t(e.width),l.style.position="absolute",i=12===t(l.offsetWidth/3),re.removeChild(u),l=null}}function t(e){return Math.round(parseFloat(e))}var n,r,i,o,a,s,u=E.createElement("div"),l=E.createElement("div");l.style&&(l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",y.clearCloneStyle="content-box"===l.style.backgroundClip,S.extend(y,{boxSizingReliable:function(){return e(),r},pixelBoxStyles:function(){return e(),o},pixelPosition:function(){return e(),n},reliableMarginLeft:function(){return e(),s},scrollboxSize:function(){return e(),i},reliableTrDimensions:function(){var e,t,n,r;return null==a&&(e=E.createElement("table"),t=E.createElement("tr"),n=E.createElement("div"),e.style.cssText="position:absolute;left:-11111px",t.style.height="1px",n.style.height="9px",re.appendChild(e).appendChild(t).appendChild(n),r=C.getComputedStyle(t),a=3<parseInt(r.height),re.removeChild(e)),a}}))}();var _e=["Webkit","Moz","ms"],ze=E.createElement("div").style,Ue={};function Xe(e){var t=S.cssProps[e]||Ue[e];return t||(e in ze?e:Ue[e]=function(e){var t=e[0].toUpperCase()+e.slice(1),n=_e.length;while(n--)if((e=_e[n]+t)in ze)return e}(e)||e)}var Ve=/^(none|table(?!-c[ea]).+)/,Ge=/^--/,Ye={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:"0",fontWeight:"400"};function Je(e,t,n){var r=te.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ke(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=S.css(e,n+ne[a],!0,i)),r?("content"===n&&(u-=S.css(e,"padding"+ne[a],!0,i)),"margin"!==n&&(u-=S.css(e,"border"+ne[a]+"Width",!0,i))):(u+=S.css(e,"padding"+ne[a],!0,i),"padding"!==n?u+=S.css(e,"border"+ne[a]+"Width",!0,i):s+=S.css(e,"border"+ne[a]+"Width",!0,i));return!r&&0<=o&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))||0),u}function Ze(e,t,n){var r=Ie(e),i=(!y.boxSizingReliable()||n)&&"border-box"===S.css(e,"boxSizing",!1,r),o=i,a=Be(e,t,r),s="offset"+t[0].toUpperCase()+t.slice(1);if(Me.test(a)){if(!n)return a;a="auto"}return(!y.boxSizingReliable()&&i||!y.reliableTrDimensions()&&A(e,"tr")||"auto"===a||!parseFloat(a)&&"inline"===S.css(e,"display",!1,r))&&e.getClientRects().length&&(i="border-box"===S.css(e,"boxSizing",!1,r),(o=s in e)&&(a=e[s])),(a=parseFloat(a)||0)+Ke(e,t,n||(i?"border":"content"),o,r,a)+"px"}function et(e,t,n,r,i){return new et.prototype.init(e,t,n,r,i)}S.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Be(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=X(t),u=Ge.test(t),l=e.style;if(u||(t=Xe(s)),a=S.cssHooks[t]||S.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"===(o=typeof n)&&(i=te.exec(n))&&i[1]&&(n=se(e,t,i),o="number"),null!=n&&n==n&&("number"!==o||u||(n+=i&&i[3]||(S.cssNumber[s]?"":"px")),y.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=X(t);return Ge.test(t)||(t=Xe(s)),(a=S.cssHooks[t]||S.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Be(e,t,r)),"normal"===i&&t in Qe&&(i=Qe[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),S.each(["height","width"],function(e,u){S.cssHooks[u]={get:function(e,t,n){if(t)return!Ve.test(S.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?Ze(e,u,n):We(e,Ye,function(){return Ze(e,u,n)})},set:function(e,t,n){var r,i=Ie(e),o=!y.scrollboxSize()&&"absolute"===i.position,a=(o||n)&&"border-box"===S.css(e,"boxSizing",!1,i),s=n?Ke(e,u,n,a,i):0;return a&&o&&(s-=Math.ceil(e["offset"+u[0].toUpperCase()+u.slice(1)]-parseFloat(i[u])-Ke(e,u,"border",!1,i)-.5)),s&&(r=te.exec(t))&&"px"!==(r[3]||"px")&&(e.style[u]=t,t=S.css(e,u)),Je(0,t,s)}}}),S.cssHooks.marginLeft=$e(y.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Be(e,"marginLeft"))||e.getBoundingClientRect().left-We(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),S.each({margin:"",padding:"",border:"Width"},function(i,o){S.cssHooks[i+o]={expand:function(e){for(var t=0,n={},r="string"==typeof e?e.split(" "):[e];t<4;t++)n[i+ne[t]+o]=r[t]||r[t-2]||r[0];return n}},"margin"!==i&&(S.cssHooks[i+o].set=Je)}),S.fn.extend({css:function(e,t){return $(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=Ie(e),i=t.length;a<i;a++)o[t[a]]=S.css(e,t[a],!1,r);return o}return void 0!==n?S.style(e,t,n):S.css(e,t)},e,t,1<arguments.length)}}),((S.Tween=et).prototype={constructor:et,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||S.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(S.cssNumber[n]?"":"px")},cur:function(){var e=et.propHooks[this.prop];return e&&e.get?e.get(this):et.propHooks._default.get(this)},run:function(e){var t,n=et.propHooks[this.prop];return this.options.duration?this.pos=t=S.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):et.propHooks._default.set(this),this}}).init.prototype=et.prototype,(et.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=S.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){S.fx.step[e.prop]?S.fx.step[e.prop](e):1!==e.elem.nodeType||!S.cssHooks[e.prop]&&null==e.elem.style[Xe(e.prop)]?e.elem[e.prop]=e.now:S.style(e.elem,e.prop,e.now+e.unit)}}}).scrollTop=et.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},S.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},S.fx=et.prototype.init,S.fx.step={};var tt,nt,rt,it,ot=/^(?:toggle|show|hide)$/,at=/queueHooks$/;function st(){nt&&(!1===E.hidden&&C.requestAnimationFrame?C.requestAnimationFrame(st):C.setTimeout(st,S.fx.interval),S.fx.tick())}function ut(){return C.setTimeout(function(){tt=void 0}),tt=Date.now()}function lt(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=ne[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function ct(e,t,n){for(var r,i=(ft.tweeners[t]||[]).concat(ft.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ft(o,e,t){var n,a,r=0,i=ft.prefilters.length,s=S.Deferred().always(function(){delete u.elem}),u=function(){if(a)return!1;for(var e=tt||ut(),t=Math.max(0,l.startTime+l.duration-e),n=1-(t/l.duration||0),r=0,i=l.tweens.length;r<i;r++)l.tweens[r].run(n);return s.notifyWith(o,[l,n,t]),n<1&&i?t:(i||s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l]),!1)},l=s.promise({elem:o,props:S.extend({},e),opts:S.extend(!0,{specialEasing:{},easing:S.easing._default},t),originalProperties:e,originalOptions:t,startTime:tt||ut(),duration:t.duration,tweens:[],createTween:function(e,t){var n=S.Tween(o,l.opts,e,t,l.opts.specialEasing[e]||l.opts.easing);return l.tweens.push(n),n},stop:function(e){var t=0,n=e?l.tweens.length:0;if(a)return this;for(a=!0;t<n;t++)l.tweens[t].run(1);return e?(s.notifyWith(o,[l,1,0]),s.resolveWith(o,[l,e])):s.rejectWith(o,[l,e]),this}}),c=l.props;for(!function(e,t){var n,r,i,o,a;for(n in e)if(i=t[r=X(n)],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=S.cssHooks[r])&&"expand"in a)for(n in o=a.expand(o),delete e[r],o)n in e||(e[n]=o[n],t[n]=i);else t[r]=i}(c,l.opts.specialEasing);r<i;r++)if(n=ft.prefilters[r].call(l,o,c,l.opts))return m(n.stop)&&(S._queueHooks(l.elem,l.opts.queue).stop=n.stop.bind(n)),n;return S.map(c,ct,l),m(l.opts.start)&&l.opts.start.call(o,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),S.fx.timer(S.extend(u,{elem:o,anim:l,queue:l.opts.queue})),l}S.Animation=S.extend(ft,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return se(n.elem,e,te.exec(t),n),n}]},tweener:function(e,t){m(e)?(t=e,e=["*"]):e=e.match(P);for(var n,r=0,i=e.length;r<i;r++)n=e[r],ft.tweeners[n]=ft.tweeners[n]||[],ft.tweeners[n].unshift(t)},prefilters:[function(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),v=Y.get(e,"fxshow");for(r in n.queue||(null==(a=S._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,S.queue(e,"fx").length||a.empty.fire()})})),t)if(i=t[r],ot.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!v||void 0===v[r])continue;g=!0}d[r]=v&&v[r]||S.style(e,r)}if((u=!S.isEmptyObject(t))||!S.isEmptyObject(d))for(r in f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=v&&v.display)&&(l=Y.get(e,"display")),"none"===(c=S.css(e,"display"))&&(l?c=l:(le([e],!0),l=e.style.display||l,c=S.css(e,"display"),le([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===S.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1,d)u||(v?"hidden"in v&&(g=v.hidden):v=Y.access(e,"fxshow",{display:l}),o&&(v.hidden=!g),g&&le([e],!0),p.done(function(){for(r in g||le([e]),Y.remove(e,"fxshow"),d)S.style(e,r,d[r])})),u=ct(g?v[r]:0,r,p),r in v||(v[r]=u.start,g&&(u.end=u.start,u.start=0))}],prefilter:function(e,t){t?ft.prefilters.unshift(e):ft.prefilters.push(e)}}),S.speed=function(e,t,n){var r=e&&"object"==typeof e?S.extend({},e):{complete:n||!n&&t||m(e)&&e,duration:e,easing:n&&t||t&&!m(t)&&t};return S.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in S.fx.speeds?r.duration=S.fx.speeds[r.duration]:r.duration=S.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){m(r.old)&&r.old.call(this),r.queue&&S.dequeue(this,r.queue)},r},S.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(t,e,n,r){var i=S.isEmptyObject(t),o=S.speed(e,n,r),a=function(){var e=ft(this,S.extend({},t),o);(i||Y.get(this,"finish"))&&e.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(i,e,o){var a=function(e){var t=e.stop;delete e.stop,t(o)};return"string"!=typeof i&&(o=e,e=i,i=void 0),e&&this.queue(i||"fx",[]),this.each(function(){var e=!0,t=null!=i&&i+"queueHooks",n=S.timers,r=Y.get(this);if(t)r[t]&&r[t].stop&&a(r[t]);else for(t in r)r[t]&&r[t].stop&&at.test(t)&&a(r[t]);for(t=n.length;t--;)n[t].elem!==this||null!=i&&n[t].queue!==i||(n[t].anim.stop(o),e=!1,n.splice(t,1));!e&&o||S.dequeue(this,i)})},finish:function(a){return!1!==a&&(a=a||"fx"),this.each(function(){var e,t=Y.get(this),n=t[a+"queue"],r=t[a+"queueHooks"],i=S.timers,o=n?n.length:0;for(t.finish=!0,S.queue(this,a,[]),r&&r.stop&&r.stop.call(this,!0),e=i.length;e--;)i[e].elem===this&&i[e].queue===a&&(i[e].anim.stop(!0),i.splice(e,1));for(e=0;e<o;e++)n[e]&&n[e].finish&&n[e].finish.call(this);delete t.finish})}}),S.each(["toggle","show","hide"],function(e,r){var i=S.fn[r];S.fn[r]=function(e,t,n){return null==e||"boolean"==typeof e?i.apply(this,arguments):this.animate(lt(r,!0),e,t,n)}}),S.each({slideDown:lt("show"),slideUp:lt("hide"),slideToggle:lt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,r){S.fn[e]=function(e,t,n){return this.animate(r,e,t,n)}}),S.timers=[],S.fx.tick=function(){var e,t=0,n=S.timers;for(tt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||S.fx.stop(),tt=void 0},S.fx.timer=function(e){S.timers.push(e),S.fx.start()},S.fx.interval=13,S.fx.start=function(){nt||(nt=!0,st())},S.fx.stop=function(){nt=null},S.fx.speeds={slow:600,fast:200,_default:400},S.fn.delay=function(r,e){return r=S.fx&&S.fx.speeds[r]||r,e=e||"fx",this.queue(e,function(e,t){var n=C.setTimeout(e,r);t.stop=function(){C.clearTimeout(n)}})},rt=E.createElement("input"),it=E.createElement("select").appendChild(E.createElement("option")),rt.type="checkbox",y.checkOn=""!==rt.value,y.optSelected=it.selected,(rt=E.createElement("input")).value="t",rt.type="radio",y.radioValue="t"===rt.value;var pt,dt=S.expr.attrHandle;S.fn.extend({attr:function(e,t){return $(this,S.attr,e,t,1<arguments.length)},removeAttr:function(e){return this.each(function(){S.removeAttr(this,e)})}}),S.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?S.prop(e,t,n):(1===o&&S.isXMLDoc(e)||(i=S.attrHooks[t.toLowerCase()]||(S.expr.match.bool.test(t)?pt:void 0)),void 0!==n?null===n?void S.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=S.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!y.radioValue&&"radio"===t&&A(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(P);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),pt={set:function(e,t,n){return!1===t?S.removeAttr(e,n):e.setAttribute(n,n),n}},S.each(S.expr.match.bool.source.match(/\w+/g),function(e,t){var a=dt[t]||S.find.attr;dt[t]=function(e,t,n){var r,i,o=t.toLowerCase();return n||(i=dt[o],dt[o]=r,r=null!=a(e,t,n)?o:null,dt[o]=i),r}});var ht=/^(?:input|select|textarea|button)$/i,gt=/^(?:a|area)$/i;function vt(e){return(e.match(P)||[]).join(" ")}function yt(e){return e.getAttribute&&e.getAttribute("class")||""}function mt(e){return Array.isArray(e)?e:"string"==typeof e&&e.match(P)||[]}S.fn.extend({prop:function(e,t){return $(this,S.prop,e,t,1<arguments.length)},removeProp:function(e){return this.each(function(){delete this[S.propFix[e]||e]})}}),S.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&S.isXMLDoc(e)||(t=S.propFix[t]||t,i=S.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=S.find.attr(e,"tabindex");return t?parseInt(t,10):ht.test(e.nodeName)||gt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),y.optSelected||(S.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),S.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){S.propFix[this.toLowerCase()]=this}),S.fn.extend({addClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).addClass(t.call(this,e,yt(this)))});if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(t){var e,n,r,i,o,a,s,u=0;if(m(t))return this.each(function(e){S(this).removeClass(t.call(this,e,yt(this)))});if(!arguments.length)return this.attr("class","");if((e=mt(t)).length)while(n=this[u++])if(i=yt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=e[a++])while(-1<r.indexOf(" "+o+" "))r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(i,t){var o=typeof i,a="string"===o||Array.isArray(i);return"boolean"==typeof t&&a?t?this.addClass(i):this.removeClass(i):m(i)?this.each(function(e){S(this).toggleClass(i.call(this,e,yt(this),t),t)}):this.each(function(){var e,t,n,r;if(a){t=0,n=S(this),r=mt(i);while(e=r[t++])n.hasClass(e)?n.removeClass(e):n.addClass(e)}else void 0!==i&&"boolean"!==o||((e=yt(this))&&Y.set(this,"__className__",e),this.setAttribute&&this.setAttribute("class",e||!1===i?"":Y.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&-1<(" "+vt(yt(n))+" ").indexOf(t))return!0;return!1}});var xt=/\r/g;S.fn.extend({val:function(n){var r,e,i,t=this[0];return arguments.length?(i=m(n),this.each(function(e){var t;1===this.nodeType&&(null==(t=i?n.call(this,e,S(this).val()):n)?t="":"number"==typeof t?t+="":Array.isArray(t)&&(t=S.map(t,function(e){return null==e?"":e+""})),(r=S.valHooks[this.type]||S.valHooks[this.nodeName.toLowerCase()])&&"set"in r&&void 0!==r.set(this,t,"value")||(this.value=t))})):t?(r=S.valHooks[t.type]||S.valHooks[t.nodeName.toLowerCase()])&&"get"in r&&void 0!==(e=r.get(t,"value"))?e:"string"==typeof(e=t.value)?e.replace(xt,""):null==e?"":e:void 0}}),S.extend({valHooks:{option:{get:function(e){var t=S.find.attr(e,"value");return null!=t?t:vt(S.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!A(n.parentNode,"optgroup"))){if(t=S(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=S.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=-1<S.inArray(S.valHooks.option.get(r),o))&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),S.each(["radio","checkbox"],function(){S.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=-1<S.inArray(S(e).val(),t)}},y.checkOn||(S.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),y.focusin="onfocusin"in C;var bt=/^(?:focusinfocus|focusoutblur)$/,wt=function(e){e.stopPropagation()};S.extend(S.event,{trigger:function(e,t,n,r){var i,o,a,s,u,l,c,f,p=[n||E],d=v.call(e,"type")?e.type:e,h=v.call(e,"namespace")?e.namespace.split("."):[];if(o=f=a=n=n||E,3!==n.nodeType&&8!==n.nodeType&&!bt.test(d+S.event.triggered)&&(-1<d.indexOf(".")&&(d=(h=d.split(".")).shift(),h.sort()),u=d.indexOf(":")<0&&"on"+d,(e=e[S.expando]?e:new S.Event(d,"object"==typeof e&&e)).isTrigger=r?2:3,e.namespace=h.join("."),e.rnamespace=e.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e.result=void 0,e.target||(e.target=n),t=null==t?[e]:S.makeArray(t,[e]),c=S.event.special[d]||{},r||!c.trigger||!1!==c.trigger.apply(n,t))){if(!r&&!c.noBubble&&!x(n)){for(s=c.delegateType||d,bt.test(s+d)||(o=o.parentNode);o;o=o.parentNode)p.push(o),a=o;a===(n.ownerDocument||E)&&p.push(a.defaultView||a.parentWindow||C)}i=0;while((o=p[i++])&&!e.isPropagationStopped())f=o,e.type=1<i?s:c.bindType||d,(l=(Y.get(o,"events")||Object.create(null))[e.type]&&Y.get(o,"handle"))&&l.apply(o,t),(l=u&&o[u])&&l.apply&&V(o)&&(e.result=l.apply(o,t),!1===e.result&&e.preventDefault());return e.type=d,r||e.isDefaultPrevented()||c._default&&!1!==c._default.apply(p.pop(),t)||!V(n)||u&&m(n[d])&&!x(n)&&((a=n[u])&&(n[u]=null),S.event.triggered=d,e.isPropagationStopped()&&f.addEventListener(d,wt),n[d](),e.isPropagationStopped()&&f.removeEventListener(d,wt),S.event.triggered=void 0,a&&(n[u]=a)),e.result}},simulate:function(e,t,n){var r=S.extend(new S.Event,n,{type:e,isSimulated:!0});S.event.trigger(r,null,t)}}),S.fn.extend({trigger:function(e,t){return this.each(function(){S.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return S.event.trigger(e,t,n,!0)}}),y.focusin||S.each({focus:"focusin",blur:"focusout"},function(n,r){var i=function(e){S.event.simulate(r,e.target,S.event.fix(e))};S.event.special[r]={setup:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r);t||e.addEventListener(n,i,!0),Y.access(e,r,(t||0)+1)},teardown:function(){var e=this.ownerDocument||this.document||this,t=Y.access(e,r)-1;t?Y.access(e,r,t):(e.removeEventListener(n,i,!0),Y.remove(e,r))}}});var Tt=C.location,Ct={guid:Date.now()},Et=/\?/;S.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new C.DOMParser).parseFromString(e,"text/xml")}catch(e){t=void 0}return t&&!t.getElementsByTagName("parsererror").length||S.error("Invalid XML: "+e),t};var St=/\[\]$/,kt=/\r?\n/g,At=/^(?:submit|button|image|reset|file)$/i,Nt=/^(?:input|select|textarea|keygen)/i;function Dt(n,e,r,i){var t;if(Array.isArray(e))S.each(e,function(e,t){r||St.test(n)?i(n,t):Dt(n+"["+("object"==typeof t&&null!=t?e:"")+"]",t,r,i)});else if(r||"object"!==w(e))i(n,e);else for(t in e)Dt(n+"["+t+"]",e[t],r,i)}S.param=function(e,t){var n,r=[],i=function(e,t){var n=m(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(null==e)return"";if(Array.isArray(e)||e.jquery&&!S.isPlainObject(e))S.each(e,function(){i(this.name,this.value)});else for(n in e)Dt(n,e[n],t,i);return r.join("&")},S.fn.extend({serialize:function(){return S.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=S.prop(this,"elements");return e?S.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!S(this).is(":disabled")&&Nt.test(this.nodeName)&&!At.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=S(this).val();return null==n?null:Array.isArray(n)?S.map(n,function(e){return{name:t.name,value:e.replace(kt,"\r\n")}}):{name:t.name,value:n.replace(kt,"\r\n")}}).get()}});var jt=/%20/g,qt=/#.*$/,Lt=/([?&])_=[^&]*/,Ht=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ot=/^(?:GET|HEAD)$/,Pt=/^\/\//,Rt={},Mt={},It="*/".concat("*"),Wt=E.createElement("a");function Ft(o){return function(e,t){"string"!=typeof e&&(t=e,e="*");var n,r=0,i=e.toLowerCase().match(P)||[];if(m(t))while(n=i[r++])"+"===n[0]?(n=n.slice(1)||"*",(o[n]=o[n]||[]).unshift(t)):(o[n]=o[n]||[]).push(t)}}function Bt(t,i,o,a){var s={},u=t===Mt;function l(e){var r;return s[e]=!0,S.each(t[e]||[],function(e,t){var n=t(i,o,a);return"string"!=typeof n||u||s[n]?u?!(r=n):void 0:(i.dataTypes.unshift(n),l(n),!1)}),r}return l(i.dataTypes[0])||!s["*"]&&l("*")}function $t(e,t){var n,r,i=S.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&S.extend(!0,e,r),e}Wt.href=Tt.href,S.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Tt.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Tt.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":It,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":S.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?$t($t(e,S.ajaxSettings),t):$t(S.ajaxSettings,e)},ajaxPrefilter:Ft(Rt),ajaxTransport:Ft(Mt),ajax:function(e,t){"object"==typeof e&&(t=e,e=void 0),t=t||{};var c,f,p,n,d,r,h,g,i,o,v=S.ajaxSetup({},t),y=v.context||v,m=v.context&&(y.nodeType||y.jquery)?S(y):S.event,x=S.Deferred(),b=S.Callbacks("once memory"),w=v.statusCode||{},a={},s={},u="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(h){if(!n){n={};while(t=Ht.exec(p))n[t[1].toLowerCase()+" "]=(n[t[1].toLowerCase()+" "]||[]).concat(t[2])}t=n[e.toLowerCase()+" "]}return null==t?null:t.join(", ")},getAllResponseHeaders:function(){return h?p:null},setRequestHeader:function(e,t){return null==h&&(e=s[e.toLowerCase()]=s[e.toLowerCase()]||e,a[e]=t),this},overrideMimeType:function(e){return null==h&&(v.mimeType=e),this},statusCode:function(e){var t;if(e)if(h)T.always(e[T.status]);else for(t in e)w[t]=[w[t],e[t]];return this},abort:function(e){var t=e||u;return c&&c.abort(t),l(0,t),this}};if(x.promise(T),v.url=((e||v.url||Tt.href)+"").replace(Pt,Tt.protocol+"//"),v.type=t.method||t.type||v.method||v.type,v.dataTypes=(v.dataType||"*").toLowerCase().match(P)||[""],null==v.crossDomain){r=E.createElement("a");try{r.href=v.url,r.href=r.href,v.crossDomain=Wt.protocol+"//"+Wt.host!=r.protocol+"//"+r.host}catch(e){v.crossDomain=!0}}if(v.data&&v.processData&&"string"!=typeof v.data&&(v.data=S.param(v.data,v.traditional)),Bt(Rt,v,t,T),h)return T;for(i in(g=S.event&&v.global)&&0==S.active++&&S.event.trigger("ajaxStart"),v.type=v.type.toUpperCase(),v.hasContent=!Ot.test(v.type),f=v.url.replace(qt,""),v.hasContent?v.data&&v.processData&&0===(v.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v.data=v.data.replace(jt,"+")):(o=v.url.slice(f.length),v.data&&(v.processData||"string"==typeof v.data)&&(f+=(Et.test(f)?"&":"?")+v.data,delete v.data),!1===v.cache&&(f=f.replace(Lt,"$1"),o=(Et.test(f)?"&":"?")+"_="+Ct.guid+++o),v.url=f+o),v.ifModified&&(S.lastModified[f]&&T.setRequestHeader("If-Modified-Since",S.lastModified[f]),S.etag[f]&&T.setRequestHeader("If-None-Match",S.etag[f])),(v.data&&v.hasContent&&!1!==v.contentType||t.contentType)&&T.setRequestHeader("Content-Type",v.contentType),T.setRequestHeader("Accept",v.dataTypes[0]&&v.accepts[v.dataTypes[0]]?v.accepts[v.dataTypes[0]]+("*"!==v.dataTypes[0]?", "+It+"; q=0.01":""):v.accepts["*"]),v.headers)T.setRequestHeader(i,v.headers[i]);if(v.beforeSend&&(!1===v.beforeSend.call(y,T,v)||h))return T.abort();if(u="abort",b.add(v.complete),T.done(v.success),T.fail(v.error),c=Bt(Mt,v,t,T)){if(T.readyState=1,g&&m.trigger("ajaxSend",[T,v]),h)return T;v.async&&0<v.timeout&&(d=C.setTimeout(function(){T.abort("timeout")},v.timeout));try{h=!1,c.send(a,l)}catch(e){if(h)throw e;l(-1,e)}}else l(-1,"No Transport");function l(e,t,n,r){var i,o,a,s,u,l=t;h||(h=!0,d&&C.clearTimeout(d),c=void 0,p=r||"",T.readyState=0<e?4:0,i=200<=e&&e<300||304===e,n&&(s=function(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}(v,T,n)),!i&&-1<S.inArray("script",v.dataTypes)&&(v.converters["text script"]=function(){}),s=function(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}(v,s,T,i),i?(v.ifModified&&((u=T.getResponseHeader("Last-Modified"))&&(S.lastModified[f]=u),(u=T.getResponseHeader("etag"))&&(S.etag[f]=u)),204===e||"HEAD"===v.type?l="nocontent":304===e?l="notmodified":(l=s.state,o=s.data,i=!(a=s.error))):(a=l,!e&&l||(l="error",e<0&&(e=0))),T.status=e,T.statusText=(t||l)+"",i?x.resolveWith(y,[o,l,T]):x.rejectWith(y,[T,l,a]),T.statusCode(w),w=void 0,g&&m.trigger(i?"ajaxSuccess":"ajaxError",[T,v,i?o:a]),b.fireWith(y,[T,l]),g&&(m.trigger("ajaxComplete",[T,v]),--S.active||S.event.trigger("ajaxStop")))}return T},getJSON:function(e,t,n){return S.get(e,t,n,"json")},getScript:function(e,t){return S.get(e,void 0,t,"script")}}),S.each(["get","post"],function(e,i){S[i]=function(e,t,n,r){return m(t)&&(r=r||n,n=t,t=void 0),S.ajax(S.extend({url:e,type:i,dataType:r,data:t,success:n},S.isPlainObject(e)&&e))}}),S.ajaxPrefilter(function(e){var t;for(t in e.headers)"content-type"===t.toLowerCase()&&(e.contentType=e.headers[t]||"")}),S._evalUrl=function(e,t,n){return S.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,converters:{"text script":function(){}},dataFilter:function(e){S.globalEval(e,t,n)}})},S.fn.extend({wrapAll:function(e){var t;return this[0]&&(m(e)&&(e=e.call(this[0])),t=S(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(n){return m(n)?this.each(function(e){S(this).wrapInner(n.call(this,e))}):this.each(function(){var e=S(this),t=e.contents();t.length?t.wrapAll(n):e.append(n)})},wrap:function(t){var n=m(t);return this.each(function(e){S(this).wrapAll(n?t.call(this,e):t)})},unwrap:function(e){return this.parent(e).not("body").each(function(){S(this).replaceWith(this.childNodes)}),this}}),S.expr.pseudos.hidden=function(e){return!S.expr.pseudos.visible(e)},S.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},S.ajaxSettings.xhr=function(){try{return new C.XMLHttpRequest}catch(e){}};var _t={0:200,1223:204},zt=S.ajaxSettings.xhr();y.cors=!!zt&&"withCredentials"in zt,y.ajax=zt=!!zt,S.ajaxTransport(function(i){var o,a;if(y.cors||zt&&!i.crossDomain)return{send:function(e,t){var n,r=i.xhr();if(r.open(i.type,i.url,i.async,i.username,i.password),i.xhrFields)for(n in i.xhrFields)r[n]=i.xhrFields[n];for(n in i.mimeType&&r.overrideMimeType&&r.overrideMimeType(i.mimeType),i.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest"),e)r.setRequestHeader(n,e[n]);o=function(e){return function(){o&&(o=a=r.onload=r.onerror=r.onabort=r.ontimeout=r.onreadystatechange=null,"abort"===e?r.abort():"error"===e?"number"!=typeof r.status?t(0,"error"):t(r.status,r.statusText):t(_t[r.status]||r.status,r.statusText,"text"!==(r.responseType||"text")||"string"!=typeof r.responseText?{binary:r.response}:{text:r.responseText},r.getAllResponseHeaders()))}},r.onload=o(),a=r.onerror=r.ontimeout=o("error"),void 0!==r.onabort?r.onabort=a:r.onreadystatechange=function(){4===r.readyState&&C.setTimeout(function(){o&&a()})},o=o("abort");try{r.send(i.hasContent&&i.data||null)}catch(e){if(o)throw e}},abort:function(){o&&o()}}}),S.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),S.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return S.globalEval(e),e}}}),S.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),S.ajaxTransport("script",function(n){var r,i;if(n.crossDomain||n.scriptAttrs)return{send:function(e,t){r=S("<script>").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1<s&&(r=vt(e.slice(s)),e=e.slice(0,s)),m(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),0<a.length&&S.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?S("<div>").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0<arguments.length?this.on(n,null,e,t):this.trigger(n)}});var Gt=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;S.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),m(e))return r=s.call(arguments,2),(i=function(){return e.apply(t||this,r.concat(s.call(arguments)))}).guid=e.guid=e.guid||S.guid++,i},S.holdReady=function(e){e?S.readyWait++:S.ready(!0)},S.isArray=Array.isArray,S.parseJSON=JSON.parse,S.nodeName=A,S.isFunction=m,S.isWindow=x,S.camelCase=X,S.type=w,S.now=Date.now,S.isNumeric=function(e){var t=S.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},S.trim=function(e){return null==e?"":(e+"").replace(Gt,"")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return S});var Yt=C.jQuery,Qt=C.$;return S.noConflict=function(e){return C.$===S&&(C.$=Qt),e&&C.jQuery===S&&(C.jQuery=Yt),S},"undefined"==typeof e&&(C.jQuery=C.$=S),S});
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.css b/target/site/apidocs/script-dir/jquery-ui.min.css
          deleted file mode 100644
          index 6be72f5..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.min.css
          +++ /dev/null
          @@ -1,7 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Includes: core.css, autocomplete.css, menu.css, theme.css
          -* To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=custom-theme&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgImgOpacityContent=75&bgImgOpacityHeader=75&cornerRadiusShadow=8px&offsetLeftShadow=-8px&offsetTopShadow=-8px&thicknessShadow=8px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=%23aaaaaa&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=%23aaaaaa&iconColorError=%23cd0a0a&fcError=%23cd0a0a&borderColorError=%23cd0a0a&bgTextureError=glass&bgColorError=%23fef1ec&iconColorHighlight=%232e83ff&fcHighlight=%23363636&borderColorHighlight=%23fcefa1&bgTextureHighlight=glass&bgColorHighlight=%23fbf9ee&iconColorActive=%23454545&fcActive=%23212121&borderColorActive=%23aaaaaa&bgTextureActive=glass&bgColorActive=%23dadada&iconColorHover=%23454545&fcHover=%23212121&borderColorHover=%23999999&bgTextureHover=glass&bgColorHover=%23dadada&iconColorDefault=%23888888&fcDefault=%23555555&borderColorDefault=%23d3d3d3&bgTextureDefault=glass&bgColorDefault=%23e6e6e6&iconColorContent=%23222222&fcContent=%23222222&borderColorContent=%23aaaaaa&bgTextureContent=flat&bgColorContent=%23ffffff&iconColorHeader=%23222222&fcHeader=%23222222&borderColorHeader=%23aaaaaa&bgTextureHeader=highlight_soft&bgColorHeader=%23cccccc&cornerRadius=4px&fwDefault=normal&fsDefault=1.1em&ffDefault=Verdana%2CArial%2Csans-serif
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #d3d3d3}.ui-widget-content{border:1px solid #aaa;background:#fff;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #d3d3d3;background:#e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #999;background:#dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#212121;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #aaa;background:#dadada url("images/ui-bg_glass_65_dadada_1x400.png") 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-icon-background,.ui-state-active .ui-icon-background{border:#aaa;background-color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;color:#363636}.ui-state-checked{border:1px solid #fcefa1;background:#fbf9ee}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_454545_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_2e83ff_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cd0a0a_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_888888_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{-webkit-box-shadow:-8px -8px 8px #aaa;box-shadow:-8px -8px 8px #aaa}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.min.js b/target/site/apidocs/script-dir/jquery-ui.min.js
          deleted file mode 100644
          index 54d4beb..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.min.js
          +++ /dev/null
          @@ -1,6 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/autocomplete.js, widgets/menu.js
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version="1.12.1";var e=0,i=Array.prototype.slice;t.cleanData=function(e){return function(i){var s,n,o;for(o=0;null!=(n=i[o]);o++)try{s=t._data(n,"events"),s&&s.remove&&t(n).triggerHandler("remove")}catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){var n,o,a,r={},l=e.split(".")[0];e=e.split(".")[1];var h=l+"-"+e;return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply(null,[{}].concat(s))),t.expr[":"][h.toLowerCase()]=function(e){return!!t.data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){return this._createWidget?(arguments.length&&this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){return t.isFunction(s)?(r[e]=function(){function t(){return i.prototype[e].apply(this,arguments)}function n(t){return i.prototype[e].apply(this,t)}return function(){var e,i=this._super,o=this._superApply;return this._super=t,this._superApply=n,e=s.apply(this,arguments),this._super=i,this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){for(var s,n,o=i.call(arguments,1),a=0,r=o.length;r>a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.width<e.element[0].scrollWidth,o="scroll"===s||"auto"===s&&e.height<e.element[0].scrollHeight;return{width:o?t.position.scrollbarWidth():0,height:n?t.position.scrollbarWidth():0}},getWithinInfo:function(e){var i=t(e||window),s=t.isWindow(i[0]),n=!!i[0]&&9===i[0].nodeType,o=!s&&!n;return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left:0,top:0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){if(!n||!n.of)return d.apply(this,arguments);n=t.extend({},n);var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision||"flip").split(" "),k={};return _=s(v),v[0].preventDefault&&(n.at="left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each(["my","at"],function(){var t,e,i=(n[this]||"").split(" ");1===i.length&&(i=r.test(i[0])?i.concat(["center"]):l.test(i[0])?["center"].concat(i):["center","center"]),i[0]=r.test(i[0])?i[0]:"center",i[1]=l.test(i[1])?i[1]:"center",t=h.exec(i[0]),e=h.exec(i[1]),k[this]=[t?t[0]:0,e?e[0]:0],n[this]=[c.exec(i[0])[0],c.exec(i[1])[0]]}),1===w.length&&(w[1]=w[0]),"right"===n.at[0]?m.left+=p:"center"===n.at[0]&&(m.left+=p/2),"bottom"===n.at[1]?m.top+=f:"center"===n.at[1]&&(m.top+=f/2),u=e(k.at,p,f),m.left+=u[0],m.top+=u[1],this.each(function(){var s,r,l=t(this),h=l.outerWidth(),c=l.outerHeight(),d=i(this,"marginLeft"),_=i(this,"marginTop"),x=h+d+i(this,"marginRight")+y.width,C=c+_+i(this,"marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight());"right"===n.my[0]?D.left-=h:"center"===n.my[0]&&(D.left-=h/2),"bottom"===n.my[1]?D.top-=c:"center"===n.my[1]&&(D.top-=c/2),D.left+=T[0],D.top+=T[1],s={marginLeft:d,marginTop:_},t.each(["left","top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[0]+T[0],u[1]+T[1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal:0>i?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("<span>").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(e){this.active=this.active||t(e.target).closest(".ui-menu-item");var i={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(e,!0),this._trigger("select",e,i)},_filterMenuItems:function(e){var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),s=RegExp("^"+i,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return s.test(t.trim(t(this).children(".ui-menu-item-wrapper").text()))})}}),t.widget("ui.autocomplete",{version:"1.12.1",defaultElement:"<input>",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("<ul>").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("<div>").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("<div>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length<this.options.minLength?this.close(e):this._trigger("search",e)!==!1?this._search(t):void 0},_search:function(t){this.pending++,this._addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:t},this._response())},_response:function(){var e=++this.requestIndex;return t.proxy(function(t){e===this.requestIndex&&this.__response(t),this.pending--,this.pending||this._removeClass("ui-autocomplete-loading")},this)},__response:function(t){t&&(t=this._normalize(t)),this._trigger("response",null,{content:t}),!this.options.disabled&&t&&t.length&&!this.cancelSearch?(this._suggest(t),this._trigger("open")):this._close()},close:function(t){this.cancelSearch=!0,this._close(t)},_close:function(t){this._off(this.document,"mousedown"),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",t))},_change:function(t){this.previous!==this._value()&&this._trigger("change",t,{item:this.selectedItem})},_normalize:function(e){return e.length&&e[0].label&&e[0].value?e:t.map(e,function(e){return"string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){var i=this.menu.element.empty();this._renderMenu(i,e),this.isNewMenu=!0,this.menu.refresh(),i.show(),this._resizeMenu(),i.position(t.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(),this._on(this.document,{mousedown:"_closeOnClickOutside"})},_resizeMenu:function(){var t=this.menu.element;t.outerWidth(Math.max(t.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(e,i){var s=this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){return this._renderItem(t,e).data("ui-autocomplete-item",e)},_renderItem:function(e,i){return t("<li>").append(t("<div>").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("<div>").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete});
          \ No newline at end of file
          diff --git a/target/site/apidocs/script-dir/jquery-ui.structure.min.css b/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          deleted file mode 100644
          index e880892..0000000
          --- a/target/site/apidocs/script-dir/jquery-ui.structure.min.css
          +++ /dev/null
          @@ -1,5 +0,0 @@
          -/*! jQuery UI - v1.12.1 - 2018-12-06
          -* http://jqueryui.com
          -* Copyright jQuery Foundation and other contributors; Licensed MIT */
          -
          -.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}
          \ No newline at end of file
          diff --git a/target/site/apidocs/script.js b/target/site/apidocs/script.js
          deleted file mode 100644
          index 864989c..0000000
          --- a/target/site/apidocs/script.js
          +++ /dev/null
          @@ -1,132 +0,0 @@
          -/*
          - * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -var moduleSearchIndex;
          -var packageSearchIndex;
          -var typeSearchIndex;
          -var memberSearchIndex;
          -var tagSearchIndex;
          -function loadScripts(doc, tag) {
          -    createElem(doc, tag, 'search.js');
          -
          -    createElem(doc, tag, 'module-search-index.js');
          -    createElem(doc, tag, 'package-search-index.js');
          -    createElem(doc, tag, 'type-search-index.js');
          -    createElem(doc, tag, 'member-search-index.js');
          -    createElem(doc, tag, 'tag-search-index.js');
          -}
          -
          -function createElem(doc, tag, path) {
          -    var script = doc.createElement(tag);
          -    var scriptElement = doc.getElementsByTagName(tag)[0];
          -    script.src = pathtoroot + path;
          -    scriptElement.parentNode.insertBefore(script, scriptElement);
          -}
          -
          -function show(tableId, selected, columns) {
          -    if (tableId !== selected) {
          -        document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')')
          -            .forEach(function(elem) {
          -                elem.style.display = 'none';
          -            });
          -    }
          -    document.querySelectorAll('div.' + selected)
          -        .forEach(function(elem, index) {
          -            elem.style.display = '';
          -            var isEvenRow = index % (columns * 2) < columns;
          -            elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor);
          -            elem.classList.add(isEvenRow ? evenRowColor : oddRowColor);
          -        });
          -    updateTabs(tableId, selected);
          -}
          -
          -function updateTabs(tableId, selected) {
          -    document.querySelector('div#' + tableId +' .summary-table')
          -        .setAttribute('aria-labelledby', selected);
          -    document.querySelectorAll('button[id^="' + tableId + '"]')
          -        .forEach(function(tab, index) {
          -            if (selected === tab.id || (tableId === selected && index === 0)) {
          -                tab.className = activeTableTab;
          -                tab.setAttribute('aria-selected', true);
          -                tab.setAttribute('tabindex',0);
          -            } else {
          -                tab.className = tableTab;
          -                tab.setAttribute('aria-selected', false);
          -                tab.setAttribute('tabindex',-1);
          -            }
          -        });
          -}
          -
          -function switchTab(e) {
          -    var selected = document.querySelector('[aria-selected=true]');
          -    if (selected) {
          -        if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) {
          -            // left or up arrow key pressed: move focus to previous tab
          -            selected.previousSibling.click();
          -            selected.previousSibling.focus();
          -            e.preventDefault();
          -        } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) {
          -            // right or down arrow key pressed: move focus to next tab
          -            selected.nextSibling.click();
          -            selected.nextSibling.focus();
          -            e.preventDefault();
          -        }
          -    }
          -}
          -
          -var updateSearchResults = function() {};
          -
          -function indexFilesLoaded() {
          -    return moduleSearchIndex
          -        && packageSearchIndex
          -        && typeSearchIndex
          -        && memberSearchIndex
          -        && tagSearchIndex;
          -}
          -
          -// Workaround for scroll position not being included in browser history (8249133)
          -document.addEventListener("DOMContentLoaded", function(e) {
          -    var contentDiv = document.querySelector("div.flex-content");
          -    window.addEventListener("popstate", function(e) {
          -        if (e.state !== null) {
          -            contentDiv.scrollTop = e.state;
          -        }
          -    });
          -    window.addEventListener("hashchange", function(e) {
          -        history.replaceState(contentDiv.scrollTop, document.title);
          -    });
          -    contentDiv.addEventListener("scroll", function(e) {
          -        var timeoutID;
          -        if (!timeoutID) {
          -            timeoutID = setTimeout(function() {
          -                history.replaceState(contentDiv.scrollTop, document.title);
          -                timeoutID = null;
          -            }, 100);
          -        }
          -    });
          -    if (!location.hash) {
          -        history.replaceState(contentDiv.scrollTop, document.title);
          -    }
          -});
          diff --git a/target/site/apidocs/search.js b/target/site/apidocs/search.js
          deleted file mode 100644
          index 2c2ced0..0000000
          --- a/target/site/apidocs/search.js
          +++ /dev/null
          @@ -1,354 +0,0 @@
          -/*
          - * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
          - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
          - *
          - * This code is free software; you can redistribute it and/or modify it
          - * under the terms of the GNU General Public License version 2 only, as
          - * published by the Free Software Foundation.  Oracle designates this
          - * particular file as subject to the "Classpath" exception as provided
          - * by Oracle in the LICENSE file that accompanied this code.
          - *
          - * This code is distributed in the hope that it will be useful, but WITHOUT
          - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
          - * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
          - * version 2 for more details (a copy is included in the LICENSE file that
          - * accompanied this code).
          - *
          - * You should have received a copy of the GNU General Public License version
          - * 2 along with this work; if not, write to the Free Software Foundation,
          - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
          - *
          - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
          - * or visit www.oracle.com if you need additional information or have any
          - * questions.
          - */
          -
          -var noResult = {l: "No results found"};
          -var loading = {l: "Loading search index..."};
          -var catModules = "Modules";
          -var catPackages = "Packages";
          -var catTypes = "Classes and Interfaces";
          -var catMembers = "Members";
          -var catSearchTags = "Search Tags";
          -var highlight = "<span class=\"result-highlight\">$&</span>";
          -var searchPattern = "";
          -var fallbackPattern = "";
          -var RANKING_THRESHOLD = 2;
          -var NO_MATCH = 0xffff;
          -var MIN_RESULTS = 3;
          -var MAX_RESULTS = 500;
          -var UNNAMED = "<Unnamed>";
          -function escapeHtml(str) {
          -    return str.replace(/</g, "&lt;").replace(/>/g, "&gt;");
          -}
          -function getHighlightedText(item, matcher, fallbackMatcher) {
          -    var escapedItem = escapeHtml(item);
          -    var highlighted = escapedItem.replace(matcher, highlight);
          -    if (highlighted === escapedItem) {
          -        highlighted = escapedItem.replace(fallbackMatcher, highlight)
          -    }
          -    return highlighted;
          -}
          -function getURLPrefix(ui) {
          -    var urlPrefix="";
          -    var slash = "/";
          -    if (ui.item.category === catModules) {
          -        return ui.item.l + slash;
          -    } else if (ui.item.category === catPackages && ui.item.m) {
          -        return ui.item.m + slash;
          -    } else if (ui.item.category === catTypes || ui.item.category === catMembers) {
          -        if (ui.item.m) {
          -            urlPrefix = ui.item.m + slash;
          -        } else {
          -            $.each(packageSearchIndex, function(index, item) {
          -                if (item.m && ui.item.p === item.l) {
          -                    urlPrefix = item.m + slash;
          -                }
          -            });
          -        }
          -    }
          -    return urlPrefix;
          -}
          -function createSearchPattern(term) {
          -    var pattern = "";
          -    var isWordToken = false;
          -    term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) {
          -        if (index > 0) {
          -            // whitespace between identifiers is significant
          -            pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*";
          -        }
          -        var tokens = w.split(/(?=[A-Z,.()<>[\/])/);
          -        for (var i = 0; i < tokens.length; i++) {
          -            var s = tokens[i];
          -            if (s === "") {
          -                continue;
          -            }
          -            pattern += $.ui.autocomplete.escapeRegex(s);
          -            isWordToken =  /\w$/.test(s);
          -            if (isWordToken) {
          -                pattern += "([a-z0-9_$<>\\[\\]]*?)";
          -            }
          -        }
          -    });
          -    return pattern;
          -}
          -function createMatcher(pattern, flags) {
          -    var isCamelCase = /[A-Z]/.test(pattern);
          -    return new RegExp(pattern, flags + (isCamelCase ? "" : "i"));
          -}
          -var watermark = 'Search';
          -$(function() {
          -    var search = $("#search");
          -    var reset = $("#reset");
          -    search.val('');
          -    search.prop("disabled", false);
          -    reset.prop("disabled", false);
          -    search.val(watermark).addClass('watermark');
          -    search.blur(function() {
          -        if ($(this).val().length === 0) {
          -            $(this).val(watermark).addClass('watermark');
          -        }
          -    });
          -    search.on('click keydown paste', function() {
          -        if ($(this).val() === watermark) {
          -            $(this).val('').removeClass('watermark');
          -        }
          -    });
          -    reset.click(function() {
          -        search.val('').focus();
          -    });
          -    search.focus()[0].setSelectionRange(0, 0);
          -});
          -$.widget("custom.catcomplete", $.ui.autocomplete, {
          -    _create: function() {
          -        this._super();
          -        this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)");
          -    },
          -    _renderMenu: function(ul, items) {
          -        var rMenu = this;
          -        var currentCategory = "";
          -        rMenu.menu.bindings = $();
          -        $.each(items, function(index, item) {
          -            var li;
          -            if (item.category && item.category !== currentCategory) {
          -                ul.append("<li class=\"ui-autocomplete-category\">" + item.category + "</li>");
          -                currentCategory = item.category;
          -            }
          -            li = rMenu._renderItemData(ul, item);
          -            if (item.category) {
          -                li.attr("aria-label", item.category + " : " + item.l);
          -                li.attr("class", "result-item");
          -            } else {
          -                li.attr("aria-label", item.l);
          -                li.attr("class", "result-item");
          -            }
          -        });
          -    },
          -    _renderItem: function(ul, item) {
          -        var label = "";
          -        var matcher = createMatcher(escapeHtml(searchPattern), "g");
          -        var fallbackMatcher = new RegExp(fallbackPattern, "gi")
          -        if (item.category === catModules) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catPackages) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catTypes) {
          -            label = (item.p && item.p !== UNNAMED)
          -                    ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher)
          -                    : getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catMembers) {
          -            label = (item.p && item.p !== UNNAMED)
          -                    ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher)
          -                    : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher);
          -        } else if (item.category === catSearchTags) {
          -            label = getHighlightedText(item.l, matcher, fallbackMatcher);
          -        } else {
          -            label = item.l;
          -        }
          -        var li = $("<li/>").appendTo(ul);
          -        var div = $("<div/>").appendTo(li);
          -        if (item.category === catSearchTags && item.h) {
          -            if (item.d) {
          -                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span><br><span class=\"search-tag-desc-result\">"
          -                                + item.d + "</span><br>");
          -            } else {
          -                div.html(label + "<span class=\"search-tag-holder-result\"> (" + item.h + ")</span>");
          -            }
          -        } else {
          -            if (item.m) {
          -                div.html(item.m + "/" + label);
          -            } else {
          -                div.html(label);
          -            }
          -        }
          -        return li;
          -    }
          -});
          -function rankMatch(match, category) {
          -    if (!match) {
          -        return NO_MATCH;
          -    }
          -    var index = match.index;
          -    var input = match.input;
          -    var leftBoundaryMatch = 2;
          -    var periferalMatch = 0;
          -    // make sure match is anchored on a left word boundary
          -    if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) {
          -        leftBoundaryMatch = 0;
          -    } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) {
          -        leftBoundaryMatch = 1;
          -    }
          -    var matchEnd = index + match[0].length;
          -    var leftParen = input.indexOf("(");
          -    var endOfName = leftParen > -1 ? leftParen : input.length;
          -    // exclude peripheral matches
          -    if (category !== catModules && category !== catSearchTags) {
          -        var delim = category === catPackages ? "/" : ".";
          -        if (leftParen > -1 && leftParen < index) {
          -            periferalMatch += 2;
          -        } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) {
          -            periferalMatch += 2;
          -        }
          -    }
          -    var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match
          -    for (var i = 1; i < match.length; i++) {
          -        // lower ranking if parts of the name are missing
          -        if (match[i])
          -            delta += match[i].length;
          -    }
          -    if (category === catTypes) {
          -        // lower ranking if a type name contains unmatched camel-case parts
          -        if (/[A-Z]/.test(input.substring(matchEnd)))
          -            delta += 5;
          -        if (/[A-Z]/.test(input.substring(0, index)))
          -            delta += 5;
          -    }
          -    return leftBoundaryMatch + periferalMatch + (delta / 200);
          -
          -}
          -function doSearch(request, response) {
          -    var result = [];
          -    searchPattern = createSearchPattern(request.term);
          -    fallbackPattern = createSearchPattern(request.term.toLowerCase());
          -    if (searchPattern === "") {
          -        return this.close();
          -    }
          -    var camelCaseMatcher = createMatcher(searchPattern, "");
          -    var fallbackMatcher = new RegExp(fallbackPattern, "i");
          -
          -    function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) {
          -        if (indexArray) {
          -            var newResults = [];
          -            $.each(indexArray, function (i, item) {
          -                item.category = category;
          -                var ranking = rankMatch(matcher.exec(nameFunc(item)), category);
          -                if (ranking < RANKING_THRESHOLD) {
          -                    newResults.push({ranking: ranking, item: item});
          -                }
          -                return newResults.length <= MAX_RESULTS;
          -            });
          -            return newResults.sort(function(e1, e2) {
          -                return e1.ranking - e2.ranking;
          -            }).map(function(e) {
          -                return e.item;
          -            });
          -        }
          -        return [];
          -    }
          -    function searchIndex(indexArray, category, nameFunc) {
          -        var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc);
          -        result = result.concat(primaryResults);
          -        if (primaryResults.length <= MIN_RESULTS && camelCaseMatcher.flags.indexOf("i") === -1) {
          -            var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc);
          -            result = result.concat(secondaryResults.filter(function (item) {
          -                return primaryResults.indexOf(item) === -1;
          -            }));
          -        }
          -    }
          -
          -    searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; });
          -    searchIndex(packageSearchIndex, catPackages, function(item) {
          -        return (item.m && request.term.indexOf("/") > -1)
          -            ? (item.m + "/" + item.l) : item.l;
          -    });
          -    searchIndex(typeSearchIndex, catTypes, function(item) {
          -        return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l;
          -    });
          -    searchIndex(memberSearchIndex, catMembers, function(item) {
          -        return request.term.indexOf(".") > -1
          -            ? item.p + "." + item.c + "." + item.l : item.l;
          -    });
          -    searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; });
          -
          -    if (!indexFilesLoaded()) {
          -        updateSearchResults = function() {
          -            doSearch(request, response);
          -        }
          -        result.unshift(loading);
          -    } else {
          -        updateSearchResults = function() {};
          -    }
          -    response(result);
          -}
          -$(function() {
          -    $("#search").catcomplete({
          -        minLength: 1,
          -        delay: 300,
          -        source: doSearch,
          -        response: function(event, ui) {
          -            if (!ui.content.length) {
          -                ui.content.push(noResult);
          -            } else {
          -                $("#search").empty();
          -            }
          -        },
          -        autoFocus: true,
          -        focus: function(event, ui) {
          -            return false;
          -        },
          -        position: {
          -            collision: "flip"
          -        },
          -        select: function(event, ui) {
          -            if (ui.item.category) {
          -                var url = getURLPrefix(ui);
          -                if (ui.item.category === catModules) {
          -                    url += "module-summary.html";
          -                } else if (ui.item.category === catPackages) {
          -                    if (ui.item.u) {
          -                        url = ui.item.u;
          -                    } else {
          -                        url += ui.item.l.replace(/\./g, '/') + "/package-summary.html";
          -                    }
          -                } else if (ui.item.category === catTypes) {
          -                    if (ui.item.u) {
          -                        url = ui.item.u;
          -                    } else if (ui.item.p === UNNAMED) {
          -                        url += ui.item.l + ".html";
          -                    } else {
          -                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html";
          -                    }
          -                } else if (ui.item.category === catMembers) {
          -                    if (ui.item.p === UNNAMED) {
          -                        url += ui.item.c + ".html" + "#";
          -                    } else {
          -                        url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#";
          -                    }
          -                    if (ui.item.u) {
          -                        url += ui.item.u;
          -                    } else {
          -                        url += ui.item.l;
          -                    }
          -                } else if (ui.item.category === catSearchTags) {
          -                    url += ui.item.u;
          -                }
          -                if (top !== window) {
          -                    parent.classFrame.location = pathtoroot + url;
          -                } else {
          -                    window.location.href = pathtoroot + url;
          -                }
          -                $("#search").focus();
          -            }
          -        }
          -    });
          -});
          diff --git a/target/site/apidocs/serialized-form.html b/target/site/apidocs/serialized-form.html
          deleted file mode 100644
          index 781fdeb..0000000
          --- a/target/site/apidocs/serialized-form.html
          +++ /dev/null
          @@ -1,89 +0,0 @@
          -<!DOCTYPE HTML>
          -<!-- NewPage -->
          -<html lang="fr">
          -<head>
          -<!-- Generated by javadoc (16) on Sat Jun 26 22:06:33 CEST 2021 -->
          -<title>Serialized Form (spoteezer 0.1.0 API)</title>
          -<meta name="viewport" content="width=device-width, initial-scale=1">
          -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          -<meta name="dc.created" content="2021-06-26">
          -<meta name="description" content="serialized forms">
          -<meta name="generator" content="javadoc/SerializedFormWriterImpl">
          -<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="script-dir/jquery-ui.min.css" title="Style">
          -<link rel="stylesheet" type="text/css" href="jquery-ui.overrides.css" title="Style">
          -<script type="text/javascript" src="script.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-3.5.1.min.js"></script>
          -<script type="text/javascript" src="script-dir/jquery-ui.min.js"></script>
          -</head>
          -<body class="serialized-form-page">
          -<script type="text/javascript">var pathtoroot = "./";
          -loadScripts(document, 'script');</script>
          -<noscript>
          -<div>JavaScript is disabled on your browser.</div>
          -</noscript>
          -<div class="flex-box">
          -<header role="banner" class="flex-header">
          -<nav role="navigation">
          -<!-- ========= START OF TOP NAVBAR ======= -->
          -<div class="top-nav" id="navbar.top">
          -<div class="skip-nav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
          -<ul id="navbar.top.firstrow" class="nav-list" title="Navigation">
          -<li><a href="index.html">Overview</a></li>
          -<li>Package</li>
          -<li>Class</li>
          -<li>Use</li>
          -<li><a href="overview-tree.html">Tree</a></li>
          -<li><a href="index-all.html">Index</a></li>
          -<li><a href="help-doc.html">Help</a></li>
          -</ul>
          -</div>
          -<div class="sub-nav">
          -<div class="nav-list-search"><label for="search">SEARCH:</label>
          -<input type="text" id="search" value="search" disabled="disabled">
          -<input type="reset" id="reset" value="reset" disabled="disabled">
          -</div>
          -</div>
          -<!-- ========= END OF TOP NAVBAR ========= -->
          -<span class="skip-nav" id="skip.navbar.top">
          -<!--   -->
          -</span></nav>
          -</header>
          -<div class="flex-content">
          -<main role="main">
          -<div class="header">
          -<h1 title="Serialized Form" class="title">Serialized Form</h1>
          -</div>
          -<ul class="block-list">
          -<li>
          -<section class="serialized-package-container">
          -<h2 title="Package">Package&nbsp;musichub.business</h2>
          -<ul class="block-list">
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoAlbumFoundException">
          -<h3>Class <a href="musichub/business/NoAlbumFoundException.html" title="class in musichub.business">musichub.business.NoAlbumFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoElementFoundException">
          -<h3>Class <a href="musichub/business/NoElementFoundException.html" title="class in musichub.business">musichub.business.NoElementFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -<li>
          -<section class="serialized-class-details" id="musichub.business.NoPlayListFoundException">
          -<h3>Class <a href="musichub/business/NoPlayListFoundException.html" title="class in musichub.business">musichub.business.NoPlayListFoundException</a> extends <a href="https://docs.oracle.com/en/java/javase/16/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a> implements Serializable</h3>
          -</section>
          -</li>
          -</ul>
          -</section>
          -</li>
          -</ul>
          -</main>
          -<footer role="contentinfo">
          -<hr>
          -<p class="legal-copy"><small>Copyright &#169; 2021. All rights reserved.</small></p>
          -</footer>
          -</div>
          -</div>
          -</body>
          -</html>
          diff --git a/target/site/apidocs/stylesheet.css b/target/site/apidocs/stylesheet.css
          deleted file mode 100644
          index 932e56c..0000000
          --- a/target/site/apidocs/stylesheet.css
          +++ /dev/null
          @@ -1,827 +0,0 @@
          -/*
          - * Javadoc style sheet
          - */
          -
          -@import url('resources/fonts/dejavu.css');
          -
          -/*
          - * Styles for individual HTML elements.
          - *
          - * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular
          - * HTML element throughout the page.
          - */
          -
          -body {
          -    background-color:#ffffff;
          -    color:#353833;
          -    font-family:'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size:14px;
          -    margin:0;
          -    padding:0;
          -    height:100%;
          -    width:100%;
          -}
          -iframe {
          -    margin:0;
          -    padding:0;
          -    height:100%;
          -    width:100%;
          -    overflow-y:scroll;
          -    border:none;
          -}
          -a:link, a:visited {
          -    text-decoration:none;
          -    color:#4A6782;
          -}
          -a[href]:hover, a[href]:focus {
          -    text-decoration:none;
          -    color:#bb7a2a;
          -}
          -a[name] {
          -    color:#353833;
          -}
          -pre {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -}
          -h1 {
          -    font-size:20px;
          -}
          -h2 {
          -    font-size:18px;
          -}
          -h3 {
          -    font-size:16px;
          -}
          -h4 {
          -    font-size:13px;
          -}
          -h5 {
          -    font-size:12px;
          -}
          -h6 {
          -    font-size:11px;
          -}
          -ul {
          -    list-style-type:disc;
          -}
          -code, tt {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    padding-top:4px;
          -    margin-top:8px;
          -    line-height:1.4em;
          -}
          -dt code {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    padding-top:4px;
          -}
          -.summary-table dt code {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    vertical-align:top;
          -    padding-top:4px;
          -}
          -sup {
          -    font-size:8px;
          -}
          -button {
          -    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size: 14px;
          -}
          -/*
          - * Styles for HTML generated by javadoc.
          - *
          - * These are style classes that are used by the standard doclet to generate HTML documentation.
          - */
          -
          -/*
          - * Styles for document title and copyright.
          - */
          -.clear {
          -    clear:both;
          -    height:0;
          -    overflow:hidden;
          -}
          -.about-language {
          -    float:right;
          -    padding:0 21px 8px 8px;
          -    font-size:11px;
          -    margin-top:-9px;
          -    height:2.9em;
          -}
          -.legal-copy {
          -    margin-left:.5em;
          -}
          -.tab {
          -    background-color:#0066FF;
          -    color:#ffffff;
          -    padding:8px;
          -    width:5em;
          -    font-weight:bold;
          -}
          -/*
          - * Styles for navigation bar.
          - */
          -@media screen {
          -    .flex-box {
          -        position:fixed;
          -        display:flex;
          -        flex-direction:column;
          -        height: 100%;
          -        width: 100%;
          -    }
          -    .flex-header {
          -        flex: 0 0 auto;
          -    }
          -    .flex-content {
          -        flex: 1 1 auto;
          -        overflow-y: auto;
          -    }
          -}
          -.top-nav {
          -    background-color:#4D7A97;
          -    color:#FFFFFF;
          -    float:left;
          -    padding:0;
          -    width:100%;
          -    clear:right;
          -    min-height:2.8em;
          -    padding-top:10px;
          -    overflow:hidden;
          -    font-size:12px;
          -}
          -.sub-nav {
          -    background-color:#dee3e9;
          -    float:left;
          -    width:100%;
          -    overflow:hidden;
          -    font-size:12px;
          -}
          -.sub-nav div {
          -    clear:left;
          -    float:left;
          -    padding:0 0 5px 6px;
          -    text-transform:uppercase;
          -}
          -.sub-nav .nav-list {
          -    padding-top:5px;
          -}
          -ul.nav-list {
          -    display:block;
          -    margin:0 25px 0 0;
          -    padding:0;
          -}
          -ul.sub-nav-list {
          -    float:left;
          -    margin:0 25px 0 0;
          -    padding:0;
          -}
          -ul.nav-list li {
          -    list-style:none;
          -    float:left;
          -    padding: 5px 6px;
          -    text-transform:uppercase;
          -}
          -.sub-nav .nav-list-search {
          -    float:right;
          -    margin:0 0 0 0;
          -    padding:5px 6px;
          -    clear:none;
          -}
          -.nav-list-search label {
          -    position:relative;
          -    right:-16px;
          -}
          -ul.sub-nav-list li {
          -    list-style:none;
          -    float:left;
          -    padding-top:10px;
          -}
          -.top-nav a:link, .top-nav a:active, .top-nav a:visited {
          -    color:#FFFFFF;
          -    text-decoration:none;
          -    text-transform:uppercase;
          -}
          -.top-nav a:hover {
          -    text-decoration:none;
          -    color:#bb7a2a;
          -    text-transform:uppercase;
          -}
          -.nav-bar-cell1-rev {
          -    background-color:#F8981D;
          -    color:#253441;
          -    margin: auto 5px;
          -}
          -.skip-nav {
          -    position:absolute;
          -    top:auto;
          -    left:-9999px;
          -    overflow:hidden;
          -}
          -/*
          - * Hide navigation links and search box in print layout
          - */
          -@media print {
          -    ul.nav-list, div.sub-nav  {
          -        display:none;
          -    }
          -}
          -/*
          - * Styles for page header and footer.
          - */
          -.title {
          -    color:#2c4557;
          -    margin:10px 0;
          -}
          -.sub-title {
          -    margin:5px 0 0 0;
          -}
          -.header ul {
          -    margin:0 0 15px 0;
          -    padding:0;
          -}
          -.header ul li, .footer ul li {
          -    list-style:none;
          -    font-size:13px;
          -}
          -/*
          - * Styles for headings.
          - */
          -body.class-declaration-page .summary h2,
          -body.class-declaration-page .details h2,
          -body.class-use-page  h2,
          -body.module-declaration-page  .block-list h2 {
          -    font-style: italic;
          -    padding:0;
          -    margin:15px 0;
          -}
          -body.class-declaration-page .summary h3,
          -body.class-declaration-page .details h3,
          -body.class-declaration-page .summary .inherited-list h2 {
          -    background-color:#dee3e9;
          -    border:1px solid #d0d9e0;
          -    margin:0 0 6px -8px;
          -    padding:7px 5px;
          -}
          -/*
          - * Styles for page layout containers.
          - */
          -main {
          -    clear:both;
          -    padding:10px 20px;
          -    position:relative;
          -}
          -dl.notes > dt {
          -    font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif;
          -    font-size:12px;
          -    font-weight:bold;
          -    margin:10px 0 0 0;
          -    color:#4E4E4E;
          -}
          -dl.notes > dd {
          -    margin:5px 0 10px 0;
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -}
          -dl.name-value > dt {
          -    margin-left:1px;
          -    font-size:1.1em;
          -    display:inline;
          -    font-weight:bold;
          -}
          -dl.name-value > dd {
          -    margin:0 0 0 1px;
          -    font-size:1.1em;
          -    display:inline;
          -}
          -/*
          - * Styles for lists.
          - */
          -li.circle {
          -    list-style:circle;
          -}
          -ul.horizontal li {
          -    display:inline;
          -    font-size:0.9em;
          -}
          -div.inheritance {
          -    margin:0;
          -    padding:0;
          -}
          -div.inheritance div.inheritance {
          -    margin-left:2em;
          -}
          -ul.block-list,
          -ul.details-list,
          -ul.member-list,
          -ul.summary-list {
          -    margin:10px 0 10px 0;
          -    padding:0;
          -}
          -ul.block-list > li,
          -ul.details-list > li,
          -ul.member-list > li,
          -ul.summary-list > li {
          -    list-style:none;
          -    margin-bottom:15px;
          -    line-height:1.4;
          -}
          -.summary-table dl, .summary-table dl dt, .summary-table dl dd {
          -    margin-top:0;
          -    margin-bottom:1px;
          -}
          -/*
          - * Styles for tables.
          - */
          -.summary-table {
          -    width:100%;
          -    border-spacing:0;
          -    border-left:1px solid #EEE;
          -    border-right:1px solid #EEE;
          -    border-bottom:1px solid #EEE;
          -}
          -.summary-table {
          -    padding:0;
          -}
          -.caption {
          -    position:relative;
          -    text-align:left;
          -    background-repeat:no-repeat;
          -    color:#253441;
          -    font-weight:bold;
          -    clear:none;
          -    overflow:hidden;
          -    padding:0px;
          -    padding-top:10px;
          -    padding-left:1px;
          -    margin:0px;
          -    white-space:pre;
          -}
          -.caption a:link, .caption a:visited {
          -    color:#1f389c;
          -}
          -.caption a:hover,
          -.caption a:active {
          -    color:#FFFFFF;
          -}
          -.caption span {
          -    white-space:nowrap;
          -    padding-top:5px;
          -    padding-left:12px;
          -    padding-right:12px;
          -    padding-bottom:7px;
          -    display:inline-block;
          -    float:left;
          -    background-color:#F8981D;
          -    border: none;
          -    height:16px;
          -}
          -
          -div.table-tabs > button {
          -   border: none;
          -   cursor: pointer;
          -   padding: 5px 12px 7px 12px;
          -   font-weight: bold;
          -   margin-right: 3px;
          -}
          -div.table-tabs > button.active-table-tab {
          -   background: #F8981D;
          -   color: #253441;
          -}
          -div.table-tabs > button.table-tab {
          -   background: #4D7A97;
          -   color: #FFFFFF;
          -}
          -.two-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          -}
          -.three-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto);
          -}
          -.four-column-summary {
          -    display: grid;
          -    grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto);
          -}
          -@media screen and (max-width: 600px) {
          -    .two-column-summary {
          -        display: grid;
          -        grid-template-columns: 1fr;
          -    }
          -}
          -@media screen and (max-width: 800px) {
          -    .three-column-summary {
          -        display: grid;
          -        grid-template-columns: minmax(10%, max-content) minmax(25%, auto);
          -    }
          -    .three-column-summary .col-last {
          -        grid-column-end: span 2;
          -    }
          -}
          -@media screen and (max-width: 1000px) {
          -    .four-column-summary {
          -        display: grid;
          -        grid-template-columns: minmax(15%, max-content) minmax(15%, auto);
          -    }
          -}
          -.summary-table > div {
          -    text-align:left;
          -    padding: 8px 3px 3px 7px;
          -}
          -.col-first, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name {
          -    vertical-align:top;
          -    padding-right:0;
          -    padding-top:8px;
          -    padding-bottom:3px;
          -}
          -.table-header {
          -    background:#dee3e9;
          -    font-weight: bold;
          -}
          -.col-first, .col-first {
          -    font-size:13px;
          -}
          -.col-second, .col-second, .col-last, .col-constructor-name, .col-deprecated-item-name, .col-last {
          -    font-size:13px;
          -}
          -.col-first, .col-second, .col-constructor-name {
          -    vertical-align:top;
          -    overflow: auto;
          -}
          -.col-last {
          -    white-space:normal;
          -}
          -.col-first a:link, .col-first a:visited,
          -.col-second a:link, .col-second a:visited,
          -.col-first a:link, .col-first a:visited,
          -.col-second a:link, .col-second a:visited,
          -.col-constructor-name a:link, .col-constructor-name a:visited,
          -.col-deprecated-item-name a:link, .col-deprecated-item-name a:visited,
          -.constant-values-container a:link, .constant-values-container a:visited,
          -.all-classes-container a:link, .all-classes-container a:visited,
          -.all-packages-container a:link, .all-packages-container a:visited {
          -    font-weight:bold;
          -}
          -.table-sub-heading-color {
          -    background-color:#EEEEFF;
          -}
          -.even-row-color, .even-row-color .table-header {
          -    background-color:#FFFFFF;
          -}
          -.odd-row-color, .odd-row-color .table-header {
          -    background-color:#EEEEEF;
          -}
          -/*
          - * Styles for contents.
          - */
          -.deprecated-content {
          -    margin:0;
          -    padding:10px 0;
          -}
          -div.block {
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -}
          -.col-last div {
          -    padding-top:0;
          -}
          -.col-last a {
          -    padding-bottom:3px;
          -}
          -.module-signature,
          -.package-signature,
          -.type-signature,
          -.member-signature {
          -    font-family:'DejaVu Sans Mono', monospace;
          -    font-size:14px;
          -    margin:14px 0;
          -    white-space: pre-wrap;
          -}
          -.module-signature,
          -.package-signature,
          -.type-signature {
          -    margin-top: 0;
          -}
          -.member-signature .type-parameters-long,
          -.member-signature .parameters,
          -.member-signature .exceptions {
          -    display: inline-block;
          -    vertical-align: top;
          -    white-space: pre;
          -}
          -.member-signature .type-parameters {
          -    white-space: normal;
          -}
          -/*
          - * Styles for formatting effect.
          - */
          -.source-line-no {
          -    color:green;
          -    padding:0 30px 0 0;
          -}
          -h1.hidden {
          -    visibility:hidden;
          -    overflow:hidden;
          -    font-size:10px;
          -}
          -.block {
          -    display:block;
          -    margin:0 10px 5px 0;
          -    color:#474747;
          -}
          -.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link,
          -.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type,
          -.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link {
          -    font-weight:bold;
          -}
          -.deprecation-comment, .help-footnote, .interface-name {
          -    font-style:italic;
          -}
          -.deprecation-block {
          -    font-size:14px;
          -    font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif;
          -    border-style:solid;
          -    border-width:thin;
          -    border-radius:10px;
          -    padding:10px;
          -    margin-bottom:10px;
          -    margin-right:10px;
          -    display:inline-block;
          -}
          -div.block div.deprecation-comment, div.block div.block span.emphasized-phrase,
          -div.block div.block span.interface-name {
          -    font-style:normal;
          -}
          -/*
          - * Styles specific to HTML5 elements.
          - */
          -main, nav, header, footer, section {
          -    display:block;
          -}
          -/*
          - * Styles for javadoc search.
          - */
          -.ui-autocomplete-category {
          -    font-weight:bold;
          -    font-size:15px;
          -    padding:7px 0 7px 3px;
          -    background-color:#4D7A97;
          -    color:#FFFFFF;
          -}
          -.result-item {
          -    font-size:13px;
          -}
          -.ui-autocomplete {
          -    max-height:85%;
          -    max-width:65%;
          -    overflow-y:scroll;
          -    overflow-x:scroll;
          -    white-space:nowrap;
          -    box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23);
          -}
          -ul.ui-autocomplete {
          -    position:fixed;
          -    z-index:999999;
          -}
          -ul.ui-autocomplete  li {
          -    float:left;
          -    clear:both;
          -    width:100%;
          -}
          -.result-highlight {
          -    font-weight:bold;
          -}
          -#search {
          -    background-image:url('resources/glass.png');
          -    background-size:13px;
          -    background-repeat:no-repeat;
          -    background-position:2px 3px;
          -    padding-left:20px;
          -    position:relative;
          -    right:-18px;
          -    width:400px;
          -}
          -#reset {
          -    background-color: rgb(255,255,255);
          -    background-image:url('resources/x.png');
          -    background-position:center;
          -    background-repeat:no-repeat;
          -    background-size:12px;
          -    border:0 none;
          -    width:16px;
          -    height:16px;
          -    position:relative;
          -    left:-4px;
          -    top:-4px;
          -    font-size:0px;
          -}
          -.watermark {
          -    color:#545454;
          -}
          -.search-tag-desc-result {
          -    font-style:italic;
          -    font-size:11px;
          -}
          -.search-tag-holder-result {
          -    font-style:italic;
          -    font-size:12px;
          -}
          -.search-tag-result:target {
          -    background-color:yellow;
          -}
          -.module-graph span {
          -    display:none;
          -    position:absolute;
          -}
          -.module-graph:hover span {
          -    display:block;
          -    margin: -100px 0 0 100px;
          -    z-index: 1;
          -}
          -.inherited-list {
          -    margin: 10px 0 10px 0;
          -}
          -section.description {
          -    line-height: 1.4;
          -}
          -.summary section[class$="-summary"], .details section[class$="-details"],
          -.class-uses .detail, .serialized-class-details {
          -    padding: 0px 20px 5px 10px;
          -    border: 1px solid #ededed;
          -    background-color: #f8f8f8;
          -}
          -.inherited-list, section[class$="-details"] .detail {
          -    padding:0 0 5px 8px;
          -    background-color:#ffffff;
          -    border:none;
          -}
          -.vertical-separator {
          -    padding: 0 5px;
          -}
          -ul.help-section-list {
          -    margin: 0;
          -}
          -/*
          - * Indicator icon for external links.
          - */
          -main a[href*="://"]::after {
          -    content:"";
          -    display:inline-block;
          -    background-image:url('data:image/svg+xml; utf8, \
          -      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          -        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          -        132-240 240 120 120 240-240 132 132V0z" fill="%234a6782"/>\
          -      </svg>');
          -    background-size:100% 100%;
          -    width:7px;
          -    height:7px;
          -    margin-left:2px;
          -    margin-bottom:4px;
          -}
          -main a[href*="://"]:hover::after,
          -main a[href*="://"]:focus::after {
          -    background-image:url('data:image/svg+xml; utf8, \
          -      <svg xmlns="http://www.w3.org/2000/svg" width="768" height="768">\
          -        <path d="M584 664H104V184h216V80H0v688h688V448H584zM384 0l132 \
          -        132-240 240 120 120 240-240 132 132V0z" fill="%23bb7a2a"/>\
          -      </svg>');
          -}
          -
          -/*
          - * Styles for user-provided tables.
          - *
          - * borderless:
          - *      No borders, vertical margins, styled caption.
          - *      This style is provided for use with existing doc comments.
          - *      In general, borderless tables should not be used for layout purposes.
          - *
          - * plain:
          - *      Plain borders around table and cells, vertical margins, styled caption.
          - *      Best for small tables or for complex tables for tables with cells that span
          - *      rows and columns, when the "striped" style does not work well.
          - *
          - * striped:
          - *      Borders around the table and vertical borders between cells, striped rows,
          - *      vertical margins, styled caption.
          - *      Best for tables that have a header row, and a body containing a series of simple rows.
          - */
          -
          -table.borderless,
          -table.plain,
          -table.striped {
          -    margin-top: 10px;
          -    margin-bottom: 10px;
          -}
          -table.borderless > caption,
          -table.plain > caption,
          -table.striped > caption {
          -    font-weight: bold;
          -    font-size: smaller;
          -}
          -table.borderless th, table.borderless td,
          -table.plain th, table.plain td,
          -table.striped th, table.striped td {
          -    padding: 2px 5px;
          -}
          -table.borderless,
          -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th,
          -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td {
          -    border: none;
          -}
          -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr {
          -    background-color: transparent;
          -}
          -table.plain {
          -    border-collapse: collapse;
          -    border: 1px solid black;
          -}
          -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr {
          -    background-color: transparent;
          -}
          -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th,
          -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td {
          -    border: 1px solid black;
          -}
          -table.striped {
          -    border-collapse: collapse;
          -    border: 1px solid black;
          -}
          -table.striped > thead {
          -    background-color: #E3E3E3;
          -}
          -table.striped > thead > tr > th, table.striped > thead > tr > td {
          -    border: 1px solid black;
          -}
          -table.striped > tbody > tr:nth-child(even) {
          -    background-color: #EEE
          -}
          -table.striped > tbody > tr:nth-child(odd) {
          -    background-color: #FFF
          -}
          -table.striped > tbody > tr > th, table.striped > tbody > tr > td {
          -    border-left: 1px solid black;
          -    border-right: 1px solid black;
          -}
          -table.striped > tbody > tr > th {
          -    font-weight: normal;
          -}
          -/**
          - * Tweak font sizes and paddings for small screens.
          - */
          -@media screen and (max-width: 1050px) {
          -    #search {
          -        width: 300px;
          -    }
          -}
          -@media screen and (max-width: 800px) {
          -    #search {
          -        width: 200px;
          -    }
          -    .top-nav,
          -    .bottom-nav {
          -        font-size: 11px;
          -        padding-top: 6px;
          -    }
          -    .sub-nav {
          -        font-size: 11px;
          -    }
          -    .about-language {
          -        padding-right: 16px;
          -    }
          -    ul.nav-list li,
          -    .sub-nav .nav-list-search {
          -        padding: 6px;
          -    }
          -    ul.sub-nav-list li {
          -        padding-top: 5px;
          -    }
          -    main {
          -        padding: 10px;
          -    }
          -    .summary section[class$="-summary"], .details section[class$="-details"],
          -    .class-uses .detail, .serialized-class-details {
          -        padding: 0 8px 5px 8px;
          -    }
          -    body {
          -        -webkit-text-size-adjust: none;
          -    }
          -}
          -@media screen and (max-width: 500px) {
          -    #search {
          -        width: 150px;
          -    }
          -    .top-nav,
          -    .bottom-nav {
          -        font-size: 10px;
          -    }
          -    .sub-nav {
          -        font-size: 10px;
          -    }
          -    .about-language {
          -        font-size: 10px;
          -        padding-right: 12px;
          -    }
          -}
          diff --git a/target/site/apidocs/tag-search-index.js b/target/site/apidocs/tag-search-index.js
          deleted file mode 100644
          index f38b3cb..0000000
          --- a/target/site/apidocs/tag-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/apidocs/type-search-index.js b/target/site/apidocs/type-search-index.js
          deleted file mode 100644
          index 26dac6f..0000000
          --- a/target/site/apidocs/type-search-index.js
          +++ /dev/null
          @@ -1 +0,0 @@
          -typeSearchIndex = [{"p":"musichub.business","l":"Album"},{"l":"All Classes","u":"allclasses-index.html"},{"p":"musichub.business","l":"AudioBook"},{"p":"musichub.business","l":"AudioElement"},{"p":"musichub.business","l":"Category"},{"p":"musichub.business","l":"Genre"},{"p":"musichub.business","l":"Language"},{"p":"musichub.util","l":"LogHandler"},{"p":"musichub.main","l":"Main"},{"p":"musichub.business","l":"MusicHub"},{"p":"musichub.business","l":"NoAlbumFoundException"},{"p":"musichub.business","l":"NoElementFoundException"},{"p":"musichub.business","l":"NoPlayListFoundException"},{"p":"musichub.util","l":"PathValidation"},{"p":"musichub.business","l":"PlayList"},{"p":"musichub.business","l":"Song"},{"p":"musichub.util","l":"XMLHandler"}];updateSearchResults();
          \ No newline at end of file
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index b800f3f..d0737be 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 740 of 2 803</td><td class="ctr2">2 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">206</td><td class="ctr2">211</td><td class="ctr1">730</td><td class="ctr2">745</td><td class="ctr1">88</td><td class="ctr2">93</td><td class="ctr1">17</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j2">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/><img src="jacoco-resources/greenbar.gif" width="3" height="10" title="63" alt="63"/></td><td class="ctr2" id="c0">46 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">25</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j1">4</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 674 of 2 803</td><td class="ctr2">4 %</td><td class="bar">210 of 210</td><td class="ctr2">0 %</td><td class="ctr1">202</td><td class="ctr2">211</td><td class="ctr1">709</td><td class="ctr2">745</td><td class="ctr1">84</td><td class="ctr2">93</td><td class="ctr1">16</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="2 063" alt="2 063"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="120" height="10" title="169" alt="169"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">172</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">499</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">15</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="7" height="10" title="129" alt="129"/></td><td class="ctr2" id="c0">95 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">9</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">40</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 4058e1f..a018689 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-be4b9e12</span></td><td>26 juin 2021, 22:06:25</td><td>26 juin 2021, 22:06:26</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-4db7b834</span></td><td>26 juin 2021, 22:06:38</td><td>26 juin 2021, 22:06:38</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>727806a24a38b49a</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>d7b83ca1e47cacd7</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>b026f96f38b030a9</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-b17df68a</span></td><td>27 juin 2021, 11:15:44</td><td>27 juin 2021, 11:15:45</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>6f7f85e323011650</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>538d6ca0ac9478ad</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>46821ddd8d6598d1</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 6466855..f93071b 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -1,7 +1,7 @@
           GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED
           spoteezer,musichub.util,PathValidation,0,17,0,0,0,4,0,2,0,2
           spoteezer,musichub.util,LogHandler,0,46,0,0,0,11,0,3,0,3
          -spoteezer,musichub.util,XMLHandler,72,0,0,0,25,0,4,0,4,0
          +spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 2e46b55..9188cdf 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-be4b9e12" start="1624737985817" dump="1624737986228"/><sessioninfo id="DESKTOP-M4INQND-4db7b834" start="1624737998088" dump="1624737998495"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="37"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="56"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="23" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="22" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="37" mi="0" ci="5" mb="0" cb="0"/><line nr="40" mi="0" ci="5" mb="0" cb="0"/><line nr="43" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="10" mb="0" cb="0"/><line nr="49" mi="0" ci="1" mb="0" cb="0"/><line nr="56" mi="0" ci="5" mb="0" cb="0"/><line nr="59" mi="0" ci="3" mb="0" cb="0"/><line nr="62" mi="0" ci="4" mb="0" cb="0"/><line nr="64" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="2" ci="0" mb="0" cb="0"/><line nr="28" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="5" ci="0" mb="0" cb="0"/><line nr="30" mi="3" ci="0" mb="0" cb="0"/><line nr="31" mi="5" ci="0" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="49" mi="5" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="2" ci="0" mb="0" cb="0"/><line nr="63" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="68" mi="2" ci="0" mb="0" cb="0"/><line nr="69" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="72" covered="0"/><counter type="LINE" missed="25" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="4" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="72" covered="63"/><counter type="LINE" missed="25" covered="15"/><counter type="COMPLEXITY" missed="4" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="1" covered="2"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2740" covered="63"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="730" covered="15"/><counter type="COMPLEXITY" missed="206" covered="5"/><counter type="METHOD" missed="88" covered="5"/><counter type="CLASS" missed="17" covered="2"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-b17df68a" start="1624785344991" dump="1624785345580"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="5" mb="0" cb="0"/><line nr="36" mi="0" ci="5" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="17"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="2"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="129"/><counter type="LINE" missed="4" covered="36"/><counter type="COMPLEXITY" missed="0" covered="9"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="11" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="12" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="8" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="88" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="23" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="75" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="18" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="63" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="10" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="2" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="22" mi="2" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="5" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="28" mi="2" ci="0" mb="0" cb="0"/><line nr="30" mi="8" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="7" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="38" mi="5" ci="0" mb="4" cb="0"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="43" mi="6" ci="0" mb="0" cb="0"/><line nr="44" mi="3" ci="0" mb="0" cb="0"/><line nr="45" mi="3" ci="0" mb="2" cb="0"/><line nr="47" mi="5" ci="0" mb="0" cb="0"/><line nr="50" mi="8" ci="0" mb="2" cb="0"/><line nr="51" mi="6" ci="0" mb="2" cb="0"/><line nr="52" mi="5" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="2" cb="0"/><line nr="55" mi="5" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="63" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="5" ci="0" mb="0" cb="0"/><line nr="67" mi="1" ci="0" mb="0" cb="0"/><line nr="70" mi="3" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="82" mi="7" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="86" mi="8" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="90" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="11" ci="0" mb="2" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="4" ci="0" mb="0" cb="0"/><line nr="98" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="202" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="53" covered="0"/><counter type="COMPLEXITY" missed="14" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="42" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="56" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="2" ci="0" mb="0" cb="0"/><line nr="25" mi="3" ci="0" mb="0" cb="0"/><line nr="26" mi="3" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="4" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="30" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="2" ci="0" mb="0" cb="0"/><line nr="33" mi="3" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="2" ci="0" mb="0" cb="0"/><line nr="42" mi="8" ci="0" mb="0" cb="0"/><line nr="43" mi="8" ci="0" mb="0" cb="0"/><line nr="44" mi="9" ci="0" mb="0" cb="0"/><line nr="45" mi="8" ci="0" mb="0" cb="0"/><line nr="46" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="7" ci="0" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="5" ci="0" mb="4" cb="0"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="10" ci="0" mb="0" cb="0"/><line nr="75" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="7" ci="0" mb="0" cb="0"/><line nr="77" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="4" ci="0" mb="0" cb="0"/><line nr="80" mi="7" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="83" mi="4" ci="0" mb="0" cb="0"/><line nr="84" mi="9" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="87" mi="4" ci="0" mb="0" cb="0"/><line nr="88" mi="8" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="91" mi="4" ci="0" mb="0" cb="0"/><line nr="92" mi="7" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="95" mi="1" ci="0" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="266" covered="0"/><counter type="BRANCH" missed="11" covered="0"/><counter type="LINE" missed="72" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="1" ci="0" mb="0" cb="0"/><line nr="16" mi="6" ci="0" mb="0" cb="0"/><line nr="17" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="1" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="22" mi="8" ci="0" mb="0" cb="0"/><line nr="23" mi="1" ci="0" mb="0" cb="0"/><line nr="26" mi="4" ci="0" mb="0" cb="0"/><line nr="30" mi="9" ci="0" mb="6" cb="0"/><line nr="31" mi="4" ci="0" mb="0" cb="0"/><line nr="32" mi="4" ci="0" mb="0" cb="0"/><line nr="33" mi="4" ci="0" mb="0" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="1" ci="0" mb="0" cb="0"/><line nr="41" mi="6" ci="0" mb="0" cb="0"/><line nr="46" mi="4" ci="0" mb="0" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="4" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="105" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="12" covered="0"/><counter type="METHOD" missed="7" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="2063" covered="0"/><counter type="BRANCH" missed="169" covered="0"/><counter type="LINE" missed="499" covered="0"/><counter type="COMPLEXITY" missed="172" covered="0"/><counter type="METHOD" missed="81" covered="0"/><counter type="CLASS" missed="15" covered="0"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2674" covered="129"/><counter type="BRANCH" missed="210" covered="0"/><counter type="LINE" missed="709" covered="36"/><counter type="COMPLEXITY" missed="202" covered="9"/><counter type="METHOD" missed="84" covered="9"/><counter type="CLASS" missed="16" covered="3"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.html b/target/site/jacoco/musichub.util/XMLHandler.html
          index 7aff8c8..a99c1d8 100644
          --- a/target/site/jacoco/musichub.util/XMLHandler.html
          +++ b/target/site/jacoco/musichub.util/XMLHandler.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="23" alt="23"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>XMLHandler</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.util</a> &gt; <span class="el_class">XMLHandler</span></div><h1>XMLHandler</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 72</td><td class="ctr2">91 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">4</td><td class="ctr1">4</td><td class="ctr2">25</td><td class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="XMLHandler.java.html#L26" class="el_method">XMLHandler()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="104" height="10" title="20" alt="20"/></td><td class="ctr2" id="c2">86 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="XMLHandler.java.html#L41" class="el_method">createXMLFile(Document, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="104" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">86 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="XMLHandler.java.html#L61" class="el_method">parseXMLFile(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="114" height="10" title="22" alt="22"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="XMLHandler.java.html#L57" class="el_method">createXMLDocument()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/XMLHandler.java.html b/target/site/jacoco/musichub.util/XMLHandler.java.html
          index b8ee27a..7d6e751 100644
          --- a/target/site/jacoco/musichub.util/XMLHandler.java.html
          +++ b/target/site/jacoco/musichub.util/XMLHandler.java.html
          @@ -23,51 +23,51 @@ public class XMLHandler {
               DocumentBuilderFactory documentFactory;
               DocumentBuilder documentBuilder;
           
          -<span class="nc" id="L26">    public XMLHandler() {</span>
          +<span class="fc" id="L26">    public XMLHandler() {</span>
                   try {
          -<span class="nc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          -<span class="nc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          -<span class="nc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          -<span class="nc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
          +<span class="fc" id="L28">            transformerFactory = TransformerFactory.newInstance();</span>
          +<span class="fc" id="L29">            transformer = transformerFactory.newTransformer();</span>
          +<span class="fc" id="L30">            documentFactory = DocumentBuilderFactory.newInstance();</span>
          +<span class="fc" id="L31">            documentBuilder = documentFactory.newDocumentBuilder();</span>
           <span class="nc" id="L32">        } catch (TransformerException | ParserConfigurationException tfe) {</span>
           <span class="nc" id="L33">            tfe.printStackTrace();</span>
          -<span class="nc" id="L34">        }</span>
          -<span class="nc" id="L35">    }</span>
          +<span class="fc" id="L34">        }</span>
          +<span class="fc" id="L35">    }</span>
           
               public void createXMLFile(Document document, String filePath) {
                   try {
                       // create the xml file
                       //transform the DOM Object to an XML File
          -<span class="nc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          -<span class="nc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
          +<span class="fc" id="L41">            DOMSource domSource = new DOMSource(document);</span>
          +<span class="fc" id="L42">            StreamResult streamResult = new StreamResult(new File(filePath));</span>
           
                       // If you use
                       // StreamResult result = new StreamResult(System.out);
                       // the output will be pushed to the standard output ...
                       // You can use that for debugging
           
          -<span class="nc" id="L49">            transformer.transform(domSource, streamResult);</span>
          +<span class="fc" id="L49">            transformer.transform(domSource, streamResult);</span>
           
           <span class="nc" id="L51">        } catch (TransformerException tfe) {</span>
           <span class="nc" id="L52">            tfe.printStackTrace();</span>
          -<span class="nc" id="L53">        }</span>
          -<span class="nc" id="L54">    }</span>
          +<span class="fc" id="L53">        }</span>
          +<span class="fc" id="L54">    }</span>
           
               public Document createXMLDocument() {
          -<span class="nc" id="L57">        return documentBuilder.newDocument();</span>
          +<span class="fc" id="L57">        return documentBuilder.newDocument();</span>
               }
           
               public NodeList parseXMLFile(String filePath) {
          -<span class="nc" id="L61">        NodeList elementNodes = null;</span>
          +<span class="fc" id="L61">        NodeList elementNodes = null;</span>
                   try {
          -<span class="nc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          -<span class="nc" id="L64">            Element root = document.getDocumentElement();</span>
          +<span class="fc" id="L63">            Document document = documentBuilder.parse(new File(filePath));</span>
          +<span class="fc" id="L64">            Element root = document.getDocumentElement();</span>
           
          -<span class="nc" id="L66">            elementNodes = root.getChildNodes();</span>
          -<span class="nc" id="L67">        } catch (SAXException | IOException e) {</span>
          -<span class="nc" id="L68">            e.printStackTrace();</span>
          -<span class="nc" id="L69">        }</span>
          -<span class="nc" id="L70">        return elementNodes;</span>
          +<span class="fc" id="L66">            elementNodes = root.getChildNodes();</span>
          +<span class="fc" id="L67">        } catch (SAXException | IOException e) {</span>
          +<span class="fc" id="L68">            e.printStackTrace();</span>
          +<span class="fc" id="L69">        }</span>
          +<span class="fc" id="L70">        return elementNodes;</span>
               }
           
           
          diff --git a/target/site/jacoco/musichub.util/index.html b/target/site/jacoco/musichub.util/index.html
          index 20f0d2b..8091491 100644
          --- a/target/site/jacoco/musichub.util/index.html
          +++ b/target/site/jacoco/musichub.util/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.html" class="el_class">XMLHandler</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.html" class="el_class">LogHandler</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.html" class="el_class">PathValidation</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/index.source.html b/target/site/jacoco/musichub.util/index.source.html
          index f8bbd4e..ce29c52 100644
          --- a/target/site/jacoco/musichub.util/index.source.html
          +++ b/target/site/jacoco/musichub.util/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 135</td><td class="ctr2">46 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">25</td><td class="ctr2">40</td><td class="ctr1">4</td><td class="ctr2">9</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="72" alt="72"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.util</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.util</span></div><h1>musichub.util</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 135</td><td class="ctr2">95 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">40</td><td class="ctr1">0</td><td class="ctr2">9</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="XMLHandler.java.html" class="el_source">XMLHandler.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="110" height="10" title="66" alt="66"/></td><td class="ctr2" id="c2">91 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">4</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="LogHandler.java.html" class="el_source">LogHandler.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="76" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">3</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="PathValidation.java.html" class="el_source">PathValidation.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="28" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">2</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          deleted file mode 100644
          index ea96baa..0000000
          Binary files a/target/spoteezer-0.1.0.jar and /dev/null differ
          -- 
          cgit v1.2.3
          
          
          From 948ff415cd3571c9f418765b30f1547dd16e84bf Mon Sep 17 00:00:00 2001
          From: Clyhtsuriva <aimeric@adjutor.xyz>
          Date: Sun, 27 Jun 2021 18:59:41 +0200
          Subject: Latest maven, jacoco and javadoc files
          
          ---
           log/spoteezer.log                                  |   4 +-
           target/classes/musichub/util/LogHandler.class      | Bin 0 -> 2161 bytes
           target/classes/musichub/util/PathValidation.class  | Bin 0 -> 1150 bytes
           target/jacoco.exec                                 | Bin 15166 -> 30542 bytes
           .../javadoc-options-javadoc-resources.xml          |  10 +
           target/maven-archiver/pom.properties               |   5 +
           target/maven-javadoc-plugin-stale-data.txt         |  66 +++
           .../default-testCompile/createdFiles.lst           |   6 +-
           target/original-spoteezer-0.1.0.jar                | Bin 0 -> 33454 bytes
           target/site/jacoco/index.html                      |   2 +-
           target/site/jacoco/jacoco-sessions.html            |   2 +-
           target/site/jacoco/jacoco.csv                      |   6 +-
           target/site/jacoco/jacoco.xml                      |   2 +-
           .../site/jacoco/musichub.business/AudioBook.html   |   2 +-
           .../jacoco/musichub.business/AudioBook.java.html   |  24 +-
           target/site/jacoco/musichub.business/Category.html |   2 +-
           .../jacoco/musichub.business/Category.java.html    |  10 +-
           target/site/jacoco/musichub.business/Language.html |   2 +-
           .../jacoco/musichub.business/Language.java.html    |  10 +-
           .../jacoco/musichub.business/MusicHub.java.html    |  21 +
           target/site/jacoco/musichub.business/index.html    |   2 +-
           .../jacoco/musichub.business/index.source.html     |   2 +-
           target/site/jacoco/musichub.main/Main.java.html    | 487 +++++++++++----------
           .../jacoco/musichub.util/PathValidation.java.html  |   8 +-
           target/spoteezer-0.1.0-shaded.jar                  | Bin 0 -> 369356 bytes
           target/spoteezer-0.1.0.jar                         | Bin 0 -> 369356 bytes
           .../TEST-musichub.business.CategoryTest.xml        |  59 +++
           .../TEST-musichub.business.LanguageTest.xml        |  67 +--
           .../TEST-musichub.business.PlayListTest.xml        |  63 +++
           .../TEST-musichub.business.SongTest.xml            |  64 +++
           .../TEST-musichub.util.LogHandlerTest.xml          |  61 +++
           .../TEST-musichub.util.PathValidationTest.xml      |  60 +++
           .../TEST-musichub.util.XMLHandlerTest.xml          |  60 +++
           .../musichub.business.CategoryTest.txt             |   4 +
           .../musichub.business.LanguageTest.txt             |   4 +
           .../musichub.business.PlayListTest.txt             |   4 +
           .../musichub.business.SongTest.txt                 |   4 +
           .../musichub.util.LogHandlerTest.txt               |   4 +
           .../musichub.util.PathValidationTest.txt           |   4 +
           .../musichub.util.XMLHandlerTest.txt               |   4 +
           .../musichub/business/CategoryTest.class           | Bin 0 -> 1648 bytes
           .../musichub/business/LanguageTest.class           | Bin 0 -> 1649 bytes
           .../musichub/business/PlayListTest.class           | Bin 0 -> 3108 bytes
           .../test-classes/musichub/business/SongTest.class  | Bin 0 -> 3889 bytes
           .../musichub/util/LogHandlerTest.class             | Bin 0 -> 1336 bytes
           .../musichub/util/PathValidationTest.class         | Bin 0 -> 1215 bytes
           .../musichub/util/XMLHandlerTest.class             | Bin 0 -> 1756 bytes
           47 files changed, 822 insertions(+), 313 deletions(-)
           create mode 100644 target/classes/musichub/util/LogHandler.class
           create mode 100644 target/classes/musichub/util/PathValidation.class
           create mode 100644 target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
           create mode 100644 target/maven-archiver/pom.properties
           create mode 100644 target/maven-javadoc-plugin-stale-data.txt
           create mode 100644 target/original-spoteezer-0.1.0.jar
           create mode 100644 target/spoteezer-0.1.0-shaded.jar
           create mode 100644 target/spoteezer-0.1.0.jar
           create mode 100644 target/surefire-reports/TEST-musichub.business.CategoryTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.business.PlayListTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.business.SongTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
           create mode 100644 target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
           create mode 100644 target/surefire-reports/musichub.business.CategoryTest.txt
           create mode 100644 target/surefire-reports/musichub.business.LanguageTest.txt
           create mode 100644 target/surefire-reports/musichub.business.PlayListTest.txt
           create mode 100644 target/surefire-reports/musichub.business.SongTest.txt
           create mode 100644 target/surefire-reports/musichub.util.LogHandlerTest.txt
           create mode 100644 target/surefire-reports/musichub.util.PathValidationTest.txt
           create mode 100644 target/surefire-reports/musichub.util.XMLHandlerTest.txt
           create mode 100644 target/test-classes/musichub/business/CategoryTest.class
           create mode 100644 target/test-classes/musichub/business/LanguageTest.class
           create mode 100644 target/test-classes/musichub/business/PlayListTest.class
           create mode 100644 target/test-classes/musichub/business/SongTest.class
           create mode 100644 target/test-classes/musichub/util/LogHandlerTest.class
           create mode 100644 target/test-classes/musichub/util/PathValidationTest.class
           create mode 100644 target/test-classes/musichub/util/XMLHandlerTest.class
          
          (limited to 'target/maven-archiver/pom.properties')
          
          diff --git a/log/spoteezer.log b/log/spoteezer.log
          index b4799c9..7f2fbd4 100644
          --- a/log/spoteezer.log
          +++ b/log/spoteezer.log
          @@ -1,3 +1,5 @@
           [yyyy-MM-dd HH:mm:ss.SSS] TYPE: Message
           [2021-06-27 13:23:02.181] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          -[2021-06-27 13:23:40.286] TEST: JUnit test
          \ No newline at end of file
          +[2021-06-27 13:23:40.286] TEST: JUnit test
          +[2021-06-27 17:01:30.263] WARNING: The music file was not found with the path you've provided or the extension is not .wav
          +[2021-06-27 18:57:02.639] TEST: JUnit test
          \ No newline at end of file
          diff --git a/target/classes/musichub/util/LogHandler.class b/target/classes/musichub/util/LogHandler.class
          new file mode 100644
          index 0000000..40507d1
          Binary files /dev/null and b/target/classes/musichub/util/LogHandler.class differ
          diff --git a/target/classes/musichub/util/PathValidation.class b/target/classes/musichub/util/PathValidation.class
          new file mode 100644
          index 0000000..8c0bfc4
          Binary files /dev/null and b/target/classes/musichub/util/PathValidation.class differ
          diff --git a/target/jacoco.exec b/target/jacoco.exec
          index 029f7db..407278b 100644
          Binary files a/target/jacoco.exec and b/target/jacoco.exec differ
          diff --git a/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          new file mode 100644
          index 0000000..8b89c97
          --- /dev/null
          +++ b/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml
          @@ -0,0 +1,10 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<javadocOptions>
          +  <docletArtifacts>
          +    <docletArtifact />
          +  </docletArtifacts>
          +  <tagletArtifacts>
          +    <tagletArtifact />
          +  </tagletArtifacts>
          +  <javadocResourcesDirectory>src/main/javadoc</javadocResourcesDirectory>
          +</javadocOptions>
          diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties
          new file mode 100644
          index 0000000..ea770d4
          --- /dev/null
          +++ b/target/maven-archiver/pom.properties
          @@ -0,0 +1,5 @@
          +#Generated by Maven
          +#Sun Jun 27 13:23:41 CEST 2021
          +groupId=esiea.softwareengineering
          +artifactId=spoteezer
          +version=0.1.0
          diff --git a/target/maven-javadoc-plugin-stale-data.txt b/target/maven-javadoc-plugin-stale-data.txt
          new file mode 100644
          index 0000000..7723699
          --- /dev/null
          +++ b/target/maven-javadoc-plugin-stale-data.txt
          @@ -0,0 +1,66 @@
          +@options
          +@argfile
          +-classpath
          +'C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar;C:/Users/SoftA/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar'
          +-encoding
          +'Cp1252'
          +-protected
          +--release
          +16
          +-sourcepath
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java'
          +-author
          +-bottom
          +'Copyright &#169; 2021. All rights reserved.'
          +-charset
          +'UTF-8'
          +-d
          +'C:/Users/SoftA/Documents/spoteezer/target/site/apidocs'
          +-docencoding
          +'UTF-8'
          +-doctitle
          +'spoteezer 0.1.0 API'
          +-use
          +-version
          +-windowtitle
          +'spoteezer 0.1.0 API'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Album.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioBook.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/AudioElement.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Category.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Genre.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Language.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/MusicHub.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoAlbumFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoElementFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/NoPlayListFoundException.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/PlayList.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/business/Song.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/main/Main.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/LogHandler.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/PathValidation.java'
          +'C:/Users/SoftA/Documents/spoteezer/src/main/java/musichub/util/XMLHandler.java'
          +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar = 1624015816799
          +C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar = 1624015816785
          +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar = 1624015816770
          +C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar = 1624015816790
          +C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar = 1624015816783
          +C:\Users\SoftA\Documents\spoteezer\src\main\java = 1624708123937
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allclasses-index.html = 1624793029572
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\allpackages-index.html = 1624793029575
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\element-list = 1624793029464
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\help-doc.html = 1624793029599
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index-all.html = 1624793029596
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\index.html = 1624793029553
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\jquery-ui.overrides.css = 1624793029620
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\member-search-index.js = 1624793029579
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\module-search-index.js = 1624793029576
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-summary.html = 1624793029597
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\overview-tree.html = 1624793029548
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\package-search-index.js = 1624793029577
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\script.js = 1624793029602
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\search.js = 1624793029605
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\serialized-form.html = 1624793029489
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\stylesheet.css = 1624793029601
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\tag-search-index.js = 1624793029580
          +C:\Users\SoftA\Documents\spoteezer\target\site\apidocs\type-search-index.js = 1624793029578
          \ No newline at end of file
          diff --git a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          index 7726a1c..1b87d1d 100644
          --- a/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          +++ b/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst
          @@ -1,5 +1,7 @@
          -musichub\util\XMLHandlerTest.class
          -musichub\business\PlayListTest.class
          +musichub\business\CategoryTest.class
           musichub\util\PathValidationTest.class
           musichub\business\SongTest.class
          +musichub\business\LanguageTest.class
          +musichub\util\XMLHandlerTest.class
          +musichub\business\PlayListTest.class
           musichub\util\LogHandlerTest.class
          diff --git a/target/original-spoteezer-0.1.0.jar b/target/original-spoteezer-0.1.0.jar
          new file mode 100644
          index 0000000..49fe805
          Binary files /dev/null and b/target/original-spoteezer-0.1.0.jar differ
          diff --git a/target/site/jacoco/index.html b/target/site/jacoco/index.html
          index b69ecb5..88d1333 100644
          --- a/target/site/jacoco/index.html
          +++ b/target/site/jacoco/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 162 of 2 825</td><td class="ctr2">23 %</td><td class="bar">193 of 214</td><td class="ctr2">9 %</td><td class="ctr1">173</td><td class="ctr2">213</td><td class="ctr1">591</td><td class="ctr2">751</td><td class="ctr1">62</td><td class="ctr2">93</td><td class="ctr1">12</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="90" height="10" title="1 551" alt="1 551"/><img src="jacoco-resources/greenbar.gif" width="29" height="10" title="512" alt="512"/></td><td class="ctr2" id="c1">24 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="107" height="10" title="152" alt="152"/><img src="jacoco-resources/greenbar.gif" width="12" height="10" title="17" alt="17"/></td><td class="ctr2" id="e1">10 %</td><td class="ctr1" id="f0">143</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">381</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">59</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>spoteezer</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">spoteezer</span></div><h1>spoteezer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 023 of 2 825</td><td class="ctr2">28 %</td><td class="bar">191 of 214</td><td class="ctr2">10 %</td><td class="ctr1">164</td><td class="ctr2">213</td><td class="ctr1">569</td><td class="ctr2">751</td><td class="ctr1">53</td><td class="ctr2">93</td><td class="ctr1">9</td><td class="ctr2">19</td></tr></tfoot><tbody><tr><td id="a0"><a href="musichub.business/index.html" class="el_package">musichub.business</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="82" height="10" title="1 412" alt="1 412"/><img src="jacoco-resources/greenbar.gif" width="37" height="10" title="651" alt="651"/></td><td class="ctr2" id="c1">31 %</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="106" height="10" title="150" alt="150"/><img src="jacoco-resources/greenbar.gif" width="13" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">11 %</td><td class="ctr1" id="f0">134</td><td class="ctr2" id="g0">172</td><td class="ctr1" id="h0">359</td><td class="ctr2" id="i0">499</td><td class="ctr1" id="j0">50</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">8</td><td class="ctr2" id="m0">15</td></tr><tr><td id="a1"><a href="musichub.main/index.html" class="el_package">musichub.main</a></td><td class="bar" id="b1"><img src="jacoco-resources/redbar.gif" width="35" height="10" title="605" alt="605"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="jacoco-resources/redbar.gif" width="29" height="10" title="41" alt="41"/></td><td class="ctr2" id="e2">0 %</td><td class="ctr1" id="f1">30</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">206</td><td class="ctr2" id="i1">206</td><td class="ctr1" id="j1">3</td><td class="ctr2" id="k2">3</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="musichub.util/index.html" class="el_package">musichub.util</a></td><td class="bar" id="b2"><img src="jacoco-resources/greenbar.gif" width="8" height="10" title="151" alt="151"/></td><td class="ctr2" id="c0">96 %</td><td class="bar" id="d2"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">11</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">46</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco-sessions.html b/target/site/jacoco/jacoco-sessions.html
          index 9debc99..eb4b943 100644
          --- a/target/site/jacoco/jacoco-sessions.html
          +++ b/target/site/jacoco/jacoco-sessions.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">spoteezer</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">DESKTOP-M4INQND-91a7872b</span></td><td>27 juin 2021, 13:23:39</td><td>27 juin 2021, 13:23:40</td></tr><tr><td><span class="el_session">DESKTOP-M4INQND-11e0a096</span></td><td>27 juin 2021, 18:57:02</td><td>27 juin 2021, 18:57:02</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><span class="el_class">java.sql.Date</span></td><td><code>d25610486aed3f31</code></td></tr><tr><td><span class="el_class">java.sql.Timestamp</span></td><td><code>b848522074600355</code></td></tr><tr><td><a href="musichub.business/AudioBook.html" class="el_class">musichub.business.AudioBook</a></td><td><code>aaa13ef213e0885f</code></td></tr><tr><td><a href="musichub.business/AudioElement.html" class="el_class">musichub.business.AudioElement</a></td><td><code>776d9bc5621fe50f</code></td></tr><tr><td><a href="musichub.business/Category.html" class="el_class">musichub.business.Category</a></td><td><code>f9388aaddff9a152</code></td></tr><tr><td><span class="el_class">musichub.business.CategoryTest</span></td><td><code>8046f4a9dc44152c</code></td></tr><tr><td><a href="musichub.business/Genre.html" class="el_class">musichub.business.Genre</a></td><td><code>b2fbdfedce493822</code></td></tr><tr><td><a href="musichub.business/Language.html" class="el_class">musichub.business.Language</a></td><td><code>d39e77f1c1a0f641</code></td></tr><tr><td><span class="el_class">musichub.business.LanguageTest</span></td><td><code>f53b266ad5abf5d4</code></td></tr><tr><td><a href="musichub.business/PlayList.html" class="el_class">musichub.business.PlayList</a></td><td><code>5513ec76de07c419</code></td></tr><tr><td><span class="el_class">musichub.business.PlayListTest</span></td><td><code>7e7a002919fb95e1</code></td></tr><tr><td><a href="musichub.business/Song.html" class="el_class">musichub.business.Song</a></td><td><code>44a87f7f8335b156</code></td></tr><tr><td><span class="el_class">musichub.business.SongTest</span></td><td><code>88f03b022c5c7270</code></td></tr><tr><td><a href="musichub.util/LogHandler.html" class="el_class">musichub.util.LogHandler</a></td><td><code>09990b742e8d897c</code></td></tr><tr><td><span class="el_class">musichub.util.LogHandlerTest</span></td><td><code>49f271871a8ef7bf</code></td></tr><tr><td><a href="musichub.util/PathValidation.html" class="el_class">musichub.util.PathValidation</a></td><td><code>170ad3c706c07f6b</code></td></tr><tr><td><span class="el_class">musichub.util.PathValidationTest</span></td><td><code>9eabcd97683d6e01</code></td></tr><tr><td><a href="musichub.util/XMLHandler.html" class="el_class">musichub.util.XMLHandler</a></td><td><code>ab2fa919a374fd87</code></td></tr><tr><td><span class="el_class">musichub.util.XMLHandlerTest</span></td><td><code>4852491d32ffd349</code></td></tr><tr><td><span class="el_class">org.apache.maven.plugin.surefire.log.api.NullConsoleLogger</span></td><td><code>80d79e52a7499259</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.AbstractPathConfiguration</span></td><td><code>8182fa1396653f01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BaseProviderFactory</span></td><td><code>82593383b8ea92d6</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BiProperty</span></td><td><code>4945e268841ae2cb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.BooterDeserializer</span></td><td><code>5e68b147d2c4b22f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClassLoaderConfiguration</span></td><td><code>dc8fd5c18ebb0e44</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Classpath</span></td><td><code>6f6b6469b9fdf4dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ClasspathConfiguration</span></td><td><code>4c7a5282c74ba3e2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Command</span></td><td><code>eb1b53eb8cbe7b47</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader</span></td><td><code>0c8d3ca700ec7199</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.1</span></td><td><code>fbfebde20e2b504c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.CommandReader.CommandRunnable</span></td><td><code>ee59ae4d74408619</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.DumpErrorSingleton</span></td><td><code>a3fa02cb87e0e12b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter</span></td><td><code>a5c33895f0d22838</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.1</span></td><td><code>c87487d278c3ea96</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.2</span></td><td><code>31c66931520df8eb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.3</span></td><td><code>95d48141fa4dd03d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.4</span></td><td><code>24dcd1c5bcf0d850</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.5</span></td><td><code>862846325c16cf76</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.6</span></td><td><code>b3ab24d3791d84dd</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.7</span></td><td><code>401437f62a3b16ff</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkedBooter.PingScheduler</span></td><td><code>04bf02021dfc5e9c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingReporterFactory</span></td><td><code>076a6c0176f6238b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ForkingRunListener</span></td><td><code>92d4b034b32ca2c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.MasterProcessCommand</span></td><td><code>da65de332c2de19d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker</span></td><td><code>71b8c658da2ea8d3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.2</span></td><td><code>68d262a2c2ad8f14</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PpidChecker.ProcessInfoConsumer</span></td><td><code>73f319c21fab7e7f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProcessInfo</span></td><td><code>b5b56cd86f3f0b31</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.PropertiesWrapper</span></td><td><code>ae4bf137cc5290c1</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.ProviderConfiguration</span></td><td><code>d19986536a351b50</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.Shutdown</span></td><td><code>ee9c65017e107986</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.StartupConfiguration</span></td><td><code>a8cc10b01ed27439</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.SystemPropertyManager</span></td><td><code>f47497b1dde50d64</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.booter.TypeEncodedValue</span></td><td><code>5ea9766678ac06a2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.cli.CommandLineOption</span></td><td><code>467fc7f51b73863b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.JUnitPlatformProvider</span></td><td><code>89b934b90ec6eb01</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.RunListenerAdapter</span></td><td><code>02cb8e87a6db2057</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.junitplatform.TestPlanScannerFilter</span></td><td><code>622558f718a42827</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.providerapi.AbstractProvider</span></td><td><code>90f3b08fe8a1c87c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture</span></td><td><code>b8ae904ed8536017</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.ForwardingPrintStream</span></td><td><code>f912ea5d2dac308e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ConsoleOutputCapture.NullOutputStream</span></td><td><code>8d05eb67510fd586</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.ReporterConfiguration</span></td><td><code>4281487891f02f69</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.report.SimpleReportEntry</span></td><td><code>ced572f24a462295</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.IOUtils</span></td><td><code>31aed2fcfab3e082</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.io.output.StringBuilderWriter</span></td><td><code>6d33fec8cb3374c0</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.JavaVersion</span></td><td><code>a8452005cb20bb7d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.StringUtils</span></td><td><code>4f785afa8bb3a23f</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.SystemUtils</span></td><td><code>aba69a973b7ba06a</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.commons.lang3.math.NumberUtils</span></td><td><code>d0156407bff7b695</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.shade.org.apache.maven.shared.utils.StringUtils</span></td><td><code>483d14212b21a3ea</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.suite.RunResult</span></td><td><code>f5c7c53a954bcafa</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.DirectoryScannerParameters</span></td><td><code>2b5eeacae469cd1d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.IncludedExcludedPatterns</span></td><td><code>f39908e3b64d7090</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest</span></td><td><code>a598483e424232d4</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.ClassMatcher</span></td><td><code>79be7f2fa77ad8d7</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.MethodMatcher</span></td><td><code>7c71374a51e8e61b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.ResolvedTest.Type</span></td><td><code>90e4214668937845</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.RunOrderParameters</span></td><td><code>b4c06223c3099700</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestArtifactInfo</span></td><td><code>f703953620e80b33</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestListResolver</span></td><td><code>7d372c99b98a147d</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.testset.TestRequest</span></td><td><code>0fa2c0cc34345df2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.CloseableIterator</span></td><td><code>cc15bdebae86d5d2</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultRunOrderCalculator</span></td><td><code>1aeecbcd3bf6e89b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.DefaultScanResult</span></td><td><code>7fefafdf8c793c36</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.ReflectionUtils</span></td><td><code>8d5f4b05d6d77207</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.RunOrder</span></td><td><code>d2292a6beb4b6337</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun</span></td><td><code>a95363e4b4ba2069</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.TestsToRun.ClassesIterator</span></td><td><code>84a139c598502c0b</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory</span></td><td><code>21a589f6dedb169c</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DaemonThreadFactory.NamedThreadFactory</span></td><td><code>682458ca85b067a3</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.DumpFileUtils</span></td><td><code>fff19f49be3d8149</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ImmutableMap</span></td><td><code>72bcae5e55b4fabb</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.ObjectUtils</span></td><td><code>69a2a92649b44645</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils</span></td><td><code>3a7e4daf0a993e1e</code></td></tr><tr><td><span class="el_class">org.apache.maven.surefire.util.internal.StringUtils.EncodedArray</span></td><td><code>477f1d94d78cb50b</code></td></tr><tr><td><span class="el_class">org.apiguardian.api.API.Status</span></td><td><code>0341e8d99fc36573</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertEquals</span></td><td><code>12bfbbf2e4327e63</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertFalse</span></td><td><code>32fea5a28fb6a114</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNotEquals</span></td><td><code>c7953c8abfcb95d0</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertNull</span></td><td><code>85f4114f65559fbd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertTrue</span></td><td><code>612f68f7274dd69c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.AssertionUtils</span></td><td><code>da37ffd9f98016fd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.Assertions</span></td><td><code>041279bcf2826fff</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.TestInstance.Lifecycle</span></td><td><code>0e93858cc703e9fc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ConditionEvaluationResult</span></td><td><code>2f9dc9ea54b57975</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.api.extension.ExtensionContext</span></td><td><code>222e1fc44c4844aa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.DiscoveryFilterApplier</span></td><td><code>ae96a3ff3c2e2bc4</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.JupiterTestEngine</span></td><td><code>c74f725c8cb223be</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.AbstractExtensionContext</span></td><td><code>1f7ed0b87a9f2cca</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassExtensionContext</span></td><td><code>b85422abe06bbadd</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.ClassTestDescriptor</span></td><td><code>61a635a4acc3ee31</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor</span></td><td><code>d025635c09450d0d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext</span></td><td><code>7ae853fe3a80d83c</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.JupiterTestDescriptor</span></td><td><code>606e5ec97816bda5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.LifecycleMethodUtils</span></td><td><code>19c9fba5accef0fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor</span></td><td><code>65654838f58d8b44</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.MethodExtensionContext</span></td><td><code>c098f6d0bb344d56</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtils</span></td><td><code>c42bb138e6a06252</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor</span></td><td><code>54eb6a19bd953962</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.AbstractMethodResolver</span></td><td><code>3934f16bf877b9f5</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.DiscoverySelectorResolver</span></td><td><code>a858789f976fefbc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.JavaElementsResolver</span></td><td><code>32e9ea682e77049d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.MethodFinder</span></td><td><code>5ea468d2eb528361</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.NestedTestsResolver</span></td><td><code>9d92451ae793af41</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestContainerResolver</span></td><td><code>7db010f5e9c7301d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestFactoryMethodResolver</span></td><td><code>59fd27320e375440</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestMethodResolver</span></td><td><code>1417c6356fa4b27f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.TestTemplateMethodResolver</span></td><td><code>47563eb55cd35171</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsInnerClass</span></td><td><code>f7d9846d00228720</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsNestedTestClass</span></td><td><code>e47ff7cd33073803</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer</span></td><td><code>0f8df015b2d5841a</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsScannableTestClass</span></td><td><code>839db992754219f6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests</span></td><td><code>5ab134cc6ef3a81f</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod</span></td><td><code>a2c68978bd6bfbc6</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestMethod</span></td><td><code>8b244977e441886e</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethod</span></td><td><code>0baf1066bf0cbad7</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.discovery.predicates.IsTestableMethod</span></td><td><code>59a0b58a40803fe2</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ConditionEvaluator</span></td><td><code>fba35d945644501d</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExecutableInvoker</span></td><td><code>d64b9ef7a154ea95</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ExtensionValuesStore</span></td><td><code>2517eb7835ca6234</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext</span></td><td><code>65be276e3a954a94</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builder</span></td><td><code>dd69537274ccbffc</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State</span></td><td><code>38616672a2502408</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.execution.ThrowableCollector</span></td><td><code>92102b13561afdcf</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.DisabledCondition</span></td><td><code>a967493a244329fa</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.ExtensionRegistry</span></td><td><code>20b847fc63fd255b</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.RepeatedTestExtension</span></td><td><code>1b7914cc8cf83732</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestInfoParameterResolver</span></td><td><code>1b5b370a56807cae</code></td></tr><tr><td><span class="el_class">org.junit.jupiter.engine.extension.TestReporterParameterResolver</span></td><td><code>839c7c31b3ec6390</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory</span></td><td><code>ca4e1a8773fb9bed</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.logging.LoggerFactory.DelegatingLogger</span></td><td><code>fd74fe2bb4edddd0</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils</span></td><td><code>32499b01efc144e8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.AnnotationUtils.AnnotationCacheKey</span></td><td><code>f04082259bc4a6ab</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassLoaderUtils</span></td><td><code>ebded5f4ecebd9d8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClassUtils</span></td><td><code>4982a89773933a90</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ClasspathScanner</span></td><td><code>8425ab535628f6b9</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.CollectionUtils</span></td><td><code>59532d0e14166bc8</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.Preconditions</span></td><td><code>f9207dc44e9d043d</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils</span></td><td><code>4d39f1033ae8eb12</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode</span></td><td><code>b267f8ac562d551e</code></td></tr><tr><td><span class="el_class">org.junit.platform.commons.util.StringUtils</span></td><td><code>3441f99393e2406b</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter</span></td><td><code>d9d6482243cc9fa3</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.CompositeFilter.1</span></td><td><code>75dffc26c0811b9d</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.ExecutionRequest</span></td><td><code>ed3835cc21e5a048</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.Filter</span></td><td><code>f932423ccd3b54bf</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.FilterResult</span></td><td><code>bf731bc7f64ce694</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor</span></td><td><code>e9574ca206cded64</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestDescriptor.Type</span></td><td><code>eb97fc5a29f3ee3a</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult</span></td><td><code>abbab174d32db912</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.TestExecutionResult.Status</span></td><td><code>da0473a55d05e891</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId</span></td><td><code>d23a178963e86ca7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueId.Segment</span></td><td><code>54a2765f04c8cab7</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.UniqueIdFormat</span></td><td><code>c860ade4b928ce32</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.ClassSelector</span></td><td><code>228aa96d72021db2</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.discovery.DiscoverySelectors</span></td><td><code>8fefc6f1651cc3bd</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.AbstractTestDescriptor</span></td><td><code>2bfbf25c43491443</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.ClassSource</span></td><td><code>9727c5551a632c40</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.EngineDescriptor</span></td><td><code>b7dbf6dfb794516c</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.descriptor.MethodSource</span></td><td><code>0a1b0f0f95f17b77</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.filter.ClasspathScanningSupport</span></td><td><code>8223a02c2b9d8c89</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.ExecutionTracker</span></td><td><code>cbd37bfd76595d62</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine</span></td><td><code>410766a2a07e44b1</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor</span></td><td><code>7b43a475463d740e</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.1</span></td><td><code>197b854565198af0</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node</span></td><td><code>8a5379bd364a5bf6</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.Node.SkipResult</span></td><td><code>d4551dfb7a813206</code></td></tr><tr><td><span class="el_class">org.junit.platform.engine.support.hierarchical.SingleTestExecutor</span></td><td><code>d75bd01628eef7be</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestIdentifier</span></td><td><code>225bb434f8f223e2</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.TestPlan</span></td><td><code>9a2b71b572924cbc</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultDiscoveryRequest</span></td><td><code>7dda3ad9a0e6a666</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.DefaultLauncher</span></td><td><code>1a1f88af87dc6ec1</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ExecutionListenerAdapter</span></td><td><code>52cf3c3c69d4dfba</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherConfigurationParameters</span></td><td><code>ef55cacb5e47a902</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder</span></td><td><code>e78a71b91c159e69</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.LauncherFactory</span></td><td><code>e2bd67b8a72737b5</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.Root</span></td><td><code>32394ca895f9fb9a</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry</span></td><td><code>7c054c4cf76cb0f6</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.ServiceLoaderTestExecutionListenerRegistry</span></td><td><code>2299bac1075a6bf3</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry</span></td><td><code>190f4fb2b0ab865d</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.core.TestExecutionListenerRegistry.CompositeTestExecutionListener</span></td><td><code>7538d2d860e1f9cb</code></td></tr><tr><td><span class="el_class">org.junit.platform.launcher.listeners.LegacyReportingUtils</span></td><td><code>f3c021e100a54063</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.AbstractCharsetProvider</span></td><td><code>9a72c9e39fdac365</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.Big5</span></td><td><code>7f7799a4239d3d01</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_CN</span></td><td><code>daed57327edf3023</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_JP</span></td><td><code>f0c718c92ac0cabc</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_KR</span></td><td><code>3d50c0e84dcd54e6</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.EUC_TW</span></td><td><code>4fbeba8ab3b0661e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ExtendedCharsets</span></td><td><code>7715d4380ab405a8</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM037</span></td><td><code>b9b8c9ec2e056149</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM1047</span></td><td><code>e368b4c70681ed2e</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM277</span></td><td><code>7b5b55809ca60de9</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM278</span></td><td><code>326393dad6851723</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM280</span></td><td><code>9d9334ffd18e4e40</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM284</span></td><td><code>01c4a83f23f1b53d</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM285</span></td><td><code>be059d13431c468f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM297</span></td><td><code>09fd5ed2f7ce33cb</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM420</span></td><td><code>dfa9e617bd0f689b</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM424</span></td><td><code>edd26be1d2ed5a00</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM500</span></td><td><code>58b3c90789d546a5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM860</span></td><td><code>4bc938afb837212f</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM870</span></td><td><code>ad9dcff6cd8f8661</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM871</span></td><td><code>ef144f207fc359f5</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.IBM918</span></td><td><code>a83d0db73f26c654</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022</span></td><td><code>92bf931cea04ba69</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_JP</span></td><td><code>4839eaacbb85c150</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO2022_KR</span></td><td><code>e2e5b9cbb3d44823</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_11</span></td><td><code>cb3ce4182f6717e0</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_3</span></td><td><code>550e89cba9076937</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_6</span></td><td><code>7e467e744bd3ad13</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.ISO_8859_8</span></td><td><code>bb93af1e031c8697</code></td></tr><tr><td><span class="el_class">sun.nio.cs.ext.MacRoman</span></td><td><code>7007321b9dd9c10d</code></td></tr><tr><td><span class="el_class">sun.text.resources.cldr.ext.FormatData_fr</span></td><td><code>cfe4ef8ff7428512</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>888d0e6a76acb845</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.LocaleDataProvider</span></td><td><code>36ca29d59ab35e5c</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/jacoco.csv b/target/site/jacoco/jacoco.csv
          index 558423a..9effb4f 100644
          --- a/target/site/jacoco/jacoco.csv
          +++ b/target/site/jacoco/jacoco.csv
          @@ -5,14 +5,14 @@ spoteezer,musichub.util,XMLHandler,6,66,0,0,4,21,0,4,0,4
           spoteezer,musichub.business,Album,330,0,14,0,84,0,16,0,9,0
           spoteezer,musichub.business,SortByAuthor,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoAlbumFoundException,4,0,0,0,2,0,1,0,1,0
          -spoteezer,musichub.business,Language,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Language,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,SortByDate,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,MusicHub,803,0,114,0,195,0,79,0,22,0
          -spoteezer,musichub.business,Category,49,0,0,0,6,0,3,0,3,0
          +spoteezer,musichub.business,Category,3,46,0,0,1,5,1,2,1,2
           spoteezer,musichub.business,Song,0,105,0,6,0,26,0,12,0,7
           spoteezer,musichub.business,NoPlayListFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,PlayList,32,170,5,9,9,44,5,9,0,7
          -spoteezer,musichub.business,AudioBook,164,0,10,0,39,0,17,0,9,0
          +spoteezer,musichub.business,AudioBook,117,47,8,2,27,12,12,5,4,5
           spoteezer,musichub.business,SortByGenre,9,0,0,0,2,0,2,0,2,0
           spoteezer,musichub.business,NoElementFoundException,4,0,0,0,2,0,1,0,1,0
           spoteezer,musichub.business,Genre,0,56,0,0,0,6,0,3,0,3
          diff --git a/target/site/jacoco/jacoco.xml b/target/site/jacoco/jacoco.xml
          index 1118bc5..2e1332b 100644
          --- a/target/site/jacoco/jacoco.xml
          +++ b/target/site/jacoco/jacoco.xml
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="38" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="BRANCH" missed="5" covered="0"/><counter type="LINE" missed="7" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="3" ci="0" mb="0" cb="0"/><line nr="4" mi="35" ci="0" mb="0" cb="0"/><line nr="7" mi="4" ci="0" mb="0" cb="0"/><line nr="8" mi="3" ci="0" mb="0" cb="0"/><line nr="9" mi="1" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="49" covered="0"/><counter type="LINE" missed="6" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="18" mi="3" ci="0" mb="0" cb="0"/><line nr="19" mi="3" ci="0" mb="0" cb="0"/><line nr="20" mi="1" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="9" ci="0" mb="5" cb="0"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="4" ci="0" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="1" ci="0" mb="0" cb="0"/><line nr="43" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="9" ci="0" mb="5" cb="0"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="4" ci="0" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="164" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="39" covered="0"/><counter type="COMPLEXITY" missed="17" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1551" covered="512"/><counter type="BRANCH" missed="152" covered="17"/><counter type="LINE" missed="381" covered="118"/><counter type="COMPLEXITY" missed="143" covered="29"/><counter type="METHOD" missed="59" covered="22"/><counter type="CLASS" missed="11" covered="4"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2162" covered="663"/><counter type="BRANCH" missed="193" covered="21"/><counter type="LINE" missed="591" covered="160"/><counter type="COMPLEXITY" missed="173" covered="40"/><counter type="METHOD" missed="62" covered="31"/><counter type="CLASS" missed="12" covered="7"/></report>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8" standalone="yes"?><!DOCTYPE report PUBLIC "-//JACOCO//DTD Report 1.1//EN" "report.dtd"><report name="spoteezer"><sessioninfo id="DESKTOP-M4INQND-91a7872b" start="1624793019797" dump="1624793020432"/><sessioninfo id="DESKTOP-M4INQND-11e0a096" start="1624813022092" dump="1624813022803"/><package name="musichub/util"><class name="musichub/util/PathValidation" sourcefilename="PathValidation.java"><method name="&lt;init&gt;" desc="()V" line="23"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="isPathValid" desc="(Ljava/lang/String;)Z" line="35"><counter type="INSTRUCTION" missed="0" covered="32"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/LogHandler" sourcefilename="LogHandler.java"><method name="&lt;init&gt;" desc="()V" line="25"><counter type="INSTRUCTION" missed="0" covered="7"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="write" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="38"><counter type="INSTRUCTION" missed="0" covered="26"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="read" desc="()V" line="58"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/util/XMLHandler" sourcefilename="XMLHandler.java"><method name="&lt;init&gt;" desc="()V" line="26"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLFile" desc="(Lorg/w3c/dom/Document;Ljava/lang/String;)V" line="41"><counter type="INSTRUCTION" missed="3" covered="20"/><counter type="LINE" missed="2" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLDocument" desc="()Lorg/w3c/dom/Document;" line="57"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="parseXMLFile" desc="(Ljava/lang/String;)Lorg/w3c/dom/NodeList;" line="61"><counter type="INSTRUCTION" missed="0" covered="22"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="PathValidation.java"><line nr="23" mi="0" ci="2" mb="0" cb="0"/><line nr="24" mi="0" ci="5" mb="0" cb="0"/><line nr="35" mi="0" ci="2" mb="0" cb="0"/><line nr="37" mi="0" ci="4" mb="0" cb="0"/><line nr="38" mi="0" ci="2" mb="0" cb="2"/><line nr="39" mi="0" ci="6" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="2"/><line nr="41" mi="0" ci="2" mb="0" cb="0"/><line nr="45" mi="0" ci="5" mb="0" cb="0"/><line nr="46" mi="0" ci="7" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="39"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="0" covered="10"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="LogHandler.java"><line nr="25" mi="0" ci="2" mb="0" cb="0"/><line nr="26" mi="0" ci="5" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="44" mi="0" ci="5" mb="0" cb="0"/><line nr="47" mi="0" ci="10" mb="0" cb="0"/><line nr="50" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="0" ci="5" mb="0" cb="0"/><line nr="61" mi="0" ci="3" mb="0" cb="0"/><line nr="64" mi="0" ci="4" mb="0" cb="0"/><line nr="66" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="46"/><counter type="LINE" missed="0" covered="11"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="XMLHandler.java"><line nr="26" mi="0" ci="2" mb="0" cb="0"/><line nr="28" mi="0" ci="3" mb="0" cb="0"/><line nr="29" mi="0" ci="5" mb="0" cb="0"/><line nr="30" mi="0" ci="3" mb="0" cb="0"/><line nr="31" mi="0" ci="5" mb="0" cb="0"/><line nr="32" mi="1" ci="0" mb="0" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="34" mi="0" ci="1" mb="0" cb="0"/><line nr="35" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="5" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="49" mi="0" ci="5" mb="0" cb="0"/><line nr="51" mi="1" ci="0" mb="0" cb="0"/><line nr="52" mi="2" ci="0" mb="0" cb="0"/><line nr="53" mi="0" ci="1" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="57" mi="0" ci="4" mb="0" cb="0"/><line nr="61" mi="0" ci="2" mb="0" cb="0"/><line nr="63" mi="0" ci="8" mb="0" cb="0"/><line nr="64" mi="0" ci="3" mb="0" cb="0"/><line nr="66" mi="0" ci="3" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="68" mi="0" ci="2" mb="0" cb="0"/><line nr="69" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="2" mb="0" cb="0"/><counter type="INSTRUCTION" missed="6" covered="66"/><counter type="LINE" missed="4" covered="21"/><counter type="COMPLEXITY" missed="0" covered="4"/><counter type="METHOD" missed="0" covered="4"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="6" covered="151"/><counter type="BRANCH" missed="0" covered="4"/><counter type="LINE" missed="4" covered="42"/><counter type="COMPLEXITY" missed="0" covered="11"/><counter type="METHOD" missed="0" covered="9"/><counter type="CLASS" missed="0" covered="3"/></package><package name="musichub/business"><class name="musichub/business/Album" sourcefilename="Album.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="21"><counter type="INSTRUCTION" missed="33" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="35"><counter type="INSTRUCTION" missed="34" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="49"><counter type="INSTRUCTION" missed="112" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addSong" desc="(Ljava/util/UUID;)V" line="89"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongs" desc="()Ljava/util/List;" line="94"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getSongsRandomly" desc="()Ljava/util/ArrayList;" line="98"><counter type="INSTRUCTION" missed="7" covered="0"/><counter type="LINE" missed="3" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="104"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getDate" desc="()Ljava/util/Date;" line="108"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="112"><counter type="INSTRUCTION" missed="129" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="26" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/SortByAuthor" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="27"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/AudioElement;Lmusichub/business/AudioElement;)I" line="29"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoAlbumFoundException" sourcefilename="NoAlbumFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Language" sourcefilename="Language.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getLanguage" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByDate" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Album;Lmusichub/business/Album;)I" line="17"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/MusicHub" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="41"><counter type="INSTRUCTION" missed="29" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElement" desc="(Lmusichub/business/AudioElement;)V" line="53"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addAlbum" desc="(Lmusichub/business/Album;)V" line="57"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addPlaylist" desc="(Lmusichub/business/PlayList;)V" line="61"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="deletePlayList" desc="(Ljava/lang/String;)V" line="66"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="albums" desc="()Ljava/util/Iterator;" line="81"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="playlists" desc="()Ljava/util/Iterator;" line="85"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="elements" desc="()Ljava/util/Iterator;" line="89"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumsTitlesSortedByDate" desc="()Ljava/lang/String;" line="93"><counter type="INSTRUCTION" missed="32" covered="0"/><counter type="BRANCH" missed="2" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudiobooksTitlesSortedByAuthor" desc="()Ljava/lang/String;" line="101"><counter type="INSTRUCTION" missed="53" covered="0"/><counter type="BRANCH" missed="6" covered="0"/><counter type="LINE" missed="9" covered="0"/><counter type="COMPLEXITY" missed="4" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongs" desc="(Ljava/lang/String;)Ljava/util/List;" line="113"><counter type="INSTRUCTION" missed="73" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="15" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAlbumSongsSortedByGenre" desc="(Ljava/lang/String;)Ljava/util/List;" line="135"><counter type="INSTRUCTION" missed="79" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="16" covered="0"/><counter type="COMPLEXITY" missed="8" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToAlbum" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="158"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="addElementToPlayList" desc="(Ljava/lang/String;Ljava/lang/String;)V" line="187"><counter type="INSTRUCTION" missed="82" covered="0"/><counter type="BRANCH" missed="12" covered="0"/><counter type="LINE" missed="20" covered="0"/><counter type="COMPLEXITY" missed="7" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadAlbums" desc="()V" line="218"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadPlaylists" desc="()V" line="236"><counter type="INSTRUCTION" missed="44" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="11" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="loadElements" desc="()V" line="254"><counter type="INSTRUCTION" missed="64" covered="0"/><counter type="BRANCH" missed="10" covered="0"/><counter type="LINE" missed="18" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveAlbums" desc="()V" line="282"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="savePlayLists" desc="()V" line="298"><counter type="INSTRUCTION" missed="36" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="saveElements" desc="()V" line="314"><counter type="INSTRUCTION" missed="47" covered="0"/><counter type="BRANCH" missed="8" covered="0"/><counter type="LINE" missed="12" covered="0"/><counter type="COMPLEXITY" missed="5" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getAudioElement" desc="(Ljava/util/List;Ljava/lang/String;)V" line="335"><counter type="INSTRUCTION" missed="19" covered="0"/><counter type="BRANCH" missed="4" covered="0"/><counter type="LINE" missed="5" covered="0"/><counter type="COMPLEXITY" missed="3" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="34"><counter type="INSTRUCTION" missed="13" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="803" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="195" covered="0"/><counter type="COMPLEXITY" missed="79" covered="0"/><counter type="METHOD" missed="22" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Category" sourcefilename="Category.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="38"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/Song" sourcefilename="Song.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="0" covered="11"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="21"><counter type="INSTRUCTION" missed="0" covered="12"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="26"><counter type="INSTRUCTION" missed="0" covered="4"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setGenre" desc="(Ljava/lang/String;)V" line="30"><counter type="INSTRUCTION" missed="0" covered="33"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="8"/><counter type="COMPLEXITY" missed="0" covered="6"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="41"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="46"><counter type="INSTRUCTION" missed="0" covered="29"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/NoPlayListFoundException" sourcefilename="NoPlayListFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/PlayList" sourcefilename="PlayList.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;Ljava/util/ArrayList;)V" line="16"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="22"><counter type="INSTRUCTION" missed="0" covered="14"/><counter type="LINE" missed="0" covered="5"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="28"><counter type="INSTRUCTION" missed="12" covered="76"/><counter type="BRANCH" missed="4" covered="8"/><counter type="LINE" missed="5" covered="18"/><counter type="COMPLEXITY" missed="4" covered="3"/><counter type="METHOD" missed="0" covered="1"/></method><method name="addElement" desc="(Ljava/util/UUID;)V" line="66"><counter type="INSTRUCTION" missed="0" covered="6"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getElements" desc="()Ljava/util/ArrayList;" line="70"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="74"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="78"><counter type="INSTRUCTION" missed="20" covered="55"/><counter type="BRANCH" missed="1" covered="1"/><counter type="LINE" missed="4" covered="12"/><counter type="COMPLEXITY" missed="1" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioBook" sourcefilename="AudioBook.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="11"><counter type="INSTRUCTION" missed="14" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line="17"><counter type="INSTRUCTION" missed="0" covered="13"/><counter type="LINE" missed="0" covered="4"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="23"><counter type="INSTRUCTION" missed="20" covered="0"/><counter type="LINE" missed="4" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getLanguage" desc="()Lmusichub/business/Language;" line="29"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setLanguage" desc="(Ljava/lang/String;)V" line="33"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getCategory" desc="()Lmusichub/business/Category;" line="43"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="setCategory" desc="(Ljava/lang/String;)V" line="47"><counter type="INSTRUCTION" missed="15" covered="14"/><counter type="BRANCH" missed="4" covered="1"/><counter type="LINE" missed="4" covered="3"/><counter type="COMPLEXITY" missed="4" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="toString" desc="()Ljava/lang/String;" line="58"><counter type="INSTRUCTION" missed="8" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="64"><counter type="INSTRUCTION" missed="45" covered="0"/><counter type="LINE" missed="10" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/SortByGenre" sourcefilename="MusicHub.java"><method name="&lt;init&gt;" desc="()V" line="21"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="compare" desc="(Lmusichub/business/Song;Lmusichub/business/Song;)I" line="23"><counter type="INSTRUCTION" missed="6" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="9" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="2" covered="0"/><counter type="METHOD" missed="2" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/NoElementFoundException" sourcefilename="NoElementFoundException.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;)V" line="6"><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><class name="musichub/business/Genre" sourcefilename="Genre.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;ILjava/lang/String;)V" line="7"><counter type="INSTRUCTION" missed="0" covered="8"/><counter type="LINE" missed="0" covered="3"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getGenre" desc="()Ljava/lang/String;" line="12"><counter type="INSTRUCTION" missed="0" covered="3"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;clinit&gt;" desc="()V" line="3"><counter type="INSTRUCTION" missed="0" covered="45"/><counter type="LINE" missed="0" covered="2"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></class><class name="musichub/business/AudioElement" sourcefilename="AudioElement.java"><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V" line="24"><counter type="INSTRUCTION" missed="0" covered="19"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V" line="32"><counter type="INSTRUCTION" missed="0" covered="18"/><counter type="LINE" missed="0" covered="7"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="&lt;init&gt;" desc="(Lorg/w3c/dom/Element;)V" line="40"><counter type="INSTRUCTION" missed="8" covered="55"/><counter type="BRANCH" missed="2" covered="2"/><counter type="LINE" missed="3" covered="11"/><counter type="COMPLEXITY" missed="2" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="getUUID" desc="()Ljava/util/UUID;" line="59"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getArtist" desc="()Ljava/lang/String;" line="63"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="getTitle" desc="()Ljava/lang/String;" line="67"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="toString" desc="()Ljava/lang/String;" line="71"><counter type="INSTRUCTION" missed="0" covered="10"/><counter type="LINE" missed="0" covered="1"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="createXMLElement" desc="(Lorg/w3c/dom/Document;Lorg/w3c/dom/Element;)V" line="75"><counter type="INSTRUCTION" missed="0" covered="79"/><counter type="LINE" missed="0" covered="16"/><counter type="COMPLEXITY" missed="0" covered="1"/><counter type="METHOD" missed="0" covered="1"/></method><method name="manageAudioElement" desc="()V" line="99"><counter type="INSTRUCTION" missed="68" covered="0"/><counter type="BRANCH" missed="7" covered="0"/><counter type="LINE" missed="24" covered="0"/><counter type="COMPLEXITY" missed="6" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></class><sourcefile name="MusicHub.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="17" mi="6" ci="0" mb="0" cb="0"/><line nr="21" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="6" ci="0" mb="0" cb="0"/><line nr="27" mi="3" ci="0" mb="0" cb="0"/><line nr="29" mi="6" ci="0" mb="0" cb="0"/><line nr="34" mi="3" ci="0" mb="0" cb="0"/><line nr="35" mi="3" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="2" ci="0" mb="0" cb="0"/><line nr="44" mi="5" ci="0" mb="0" cb="0"/><line nr="45" mi="5" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="2" ci="0" mb="0" cb="0"/><line nr="48" mi="2" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="50" mi="1" ci="0" mb="0" cb="0"/><line nr="53" mi="5" ci="0" mb="0" cb="0"/><line nr="54" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="5" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="5" ci="0" mb="0" cb="0"/><line nr="62" mi="1" ci="0" mb="0" cb="0"/><line nr="66" mi="2" ci="0" mb="0" cb="0"/><line nr="67" mi="2" ci="0" mb="0" cb="0"/><line nr="68" mi="11" ci="0" mb="2" cb="0"/><line nr="69" mi="5" ci="0" mb="2" cb="0"/><line nr="70" mi="2" ci="0" mb="0" cb="0"/><line nr="71" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="75" mi="2" ci="0" mb="2" cb="0"/><line nr="76" mi="5" ci="0" mb="0" cb="0"/><line nr="77" mi="8" ci="0" mb="2" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="81" mi="4" ci="0" mb="0" cb="0"/><line nr="85" mi="4" ci="0" mb="0" cb="0"/><line nr="89" mi="4" ci="0" mb="0" cb="0"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="6" ci="0" mb="0" cb="0"/><line nr="95" mi="11" ci="0" mb="2" cb="0"/><line nr="96" mi="8" ci="0" mb="0" cb="0"/><line nr="97" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="4" ci="0" mb="0" cb="0"/><line nr="102" mi="4" ci="0" mb="0" cb="0"/><line nr="103" mi="11" ci="0" mb="2" cb="0"/><line nr="104" mi="4" ci="0" mb="2" cb="0"/><line nr="105" mi="4" ci="0" mb="0" cb="0"/><line nr="106" mi="5" ci="0" mb="0" cb="0"/><line nr="107" mi="10" ci="0" mb="2" cb="0"/><line nr="108" mi="8" ci="0" mb="0" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="113" mi="2" ci="0" mb="0" cb="0"/><line nr="114" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="11" ci="0" mb="2" cb="0"/><line nr="116" mi="5" ci="0" mb="2" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="7" ci="0" mb="2" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="10" ci="0" mb="2" cb="0"/><line nr="125" mi="12" ci="0" mb="2" cb="0"/><line nr="126" mi="3" ci="0" mb="2" cb="0"/><line nr="127" mi="9" ci="0" mb="2" cb="0"/><line nr="129" mi="1" ci="0" mb="0" cb="0"/><line nr="130" mi="2" ci="0" mb="0" cb="0"/><line nr="135" mi="2" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="5" ci="0" mb="2" cb="0"/><line nr="139" mi="2" ci="0" mb="0" cb="0"/><line nr="140" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="1" ci="0" mb="0" cb="0"/><line nr="143" mi="7" ci="0" mb="2" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="10" ci="0" mb="2" cb="0"/><line nr="147" mi="12" ci="0" mb="2" cb="0"/><line nr="148" mi="3" ci="0" mb="2" cb="0"/><line nr="149" mi="10" ci="0" mb="2" cb="0"/><line nr="151" mi="1" ci="0" mb="0" cb="0"/><line nr="152" mi="5" ci="0" mb="0" cb="0"/><line nr="153" mi="2" ci="0" mb="0" cb="0"/><line nr="158" mi="2" ci="0" mb="0" cb="0"/><line nr="160" mi="2" ci="0" mb="0" cb="0"/><line nr="161" mi="9" ci="0" mb="2" cb="0"/><line nr="162" mi="9" ci="0" mb="2" cb="0"/><line nr="163" mi="6" ci="0" mb="0" cb="0"/><line nr="164" mi="2" ci="0" mb="0" cb="0"/><line nr="165" mi="1" ci="0" mb="0" cb="0"/><line nr="169" mi="2" ci="0" mb="2" cb="0"/><line nr="170" mi="2" ci="0" mb="0" cb="0"/><line nr="171" mi="11" ci="0" mb="2" cb="0"/><line nr="172" mi="5" ci="0" mb="2" cb="0"/><line nr="173" mi="2" ci="0" mb="0" cb="0"/><line nr="174" mi="1" ci="0" mb="0" cb="0"/><line nr="176" mi="1" ci="0" mb="0" cb="0"/><line nr="177" mi="2" ci="0" mb="2" cb="0"/><line nr="178" mi="4" ci="0" mb="0" cb="0"/><line nr="180" mi="7" ci="0" mb="0" cb="0"/><line nr="181" mi="6" ci="0" mb="0" cb="0"/><line nr="182" mi="7" ci="0" mb="0" cb="0"/><line nr="184" mi="1" ci="0" mb="0" cb="0"/><line nr="187" mi="2" ci="0" mb="0" cb="0"/><line nr="189" mi="2" ci="0" mb="0" cb="0"/><line nr="191" mi="9" ci="0" mb="2" cb="0"/><line nr="192" mi="9" ci="0" mb="2" cb="0"/><line nr="193" mi="6" ci="0" mb="0" cb="0"/><line nr="194" mi="2" ci="0" mb="0" cb="0"/><line nr="195" mi="1" ci="0" mb="0" cb="0"/><line nr="199" mi="2" ci="0" mb="2" cb="0"/><line nr="200" mi="2" ci="0" mb="0" cb="0"/><line nr="201" mi="11" ci="0" mb="2" cb="0"/><line nr="202" mi="5" ci="0" mb="2" cb="0"/><line nr="203" mi="2" ci="0" mb="0" cb="0"/><line nr="204" mi="1" ci="0" mb="0" cb="0"/><line nr="206" mi="1" ci="0" mb="0" cb="0"/><line nr="207" mi="2" ci="0" mb="2" cb="0"/><line nr="208" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="7" ci="0" mb="0" cb="0"/><line nr="211" mi="6" ci="0" mb="0" cb="0"/><line nr="213" mi="7" ci="0" mb="0" cb="0"/><line nr="215" mi="1" ci="0" mb="0" cb="0"/><line nr="218" mi="5" ci="0" mb="0" cb="0"/><line nr="219" mi="3" ci="0" mb="2" cb="0"/><line nr="221" mi="8" ci="0" mb="2" cb="0"/><line nr="222" mi="6" ci="0" mb="2" cb="0"/><line nr="223" mi="5" ci="0" mb="0" cb="0"/><line nr="224" mi="5" ci="0" mb="2" cb="0"/><line nr="226" mi="6" ci="0" mb="0" cb="0"/><line nr="227" mi="1" ci="0" mb="0" cb="0"/><line nr="228" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="1" ci="0" mb="0" cb="0"/><line nr="236" mi="5" ci="0" mb="0" cb="0"/><line nr="237" mi="3" ci="0" mb="2" cb="0"/><line nr="239" mi="8" ci="0" mb="2" cb="0"/><line nr="240" mi="6" ci="0" mb="2" cb="0"/><line nr="241" mi="5" ci="0" mb="0" cb="0"/><line nr="242" mi="5" ci="0" mb="2" cb="0"/><line nr="244" mi="6" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="246" mi="3" ci="0" mb="0" cb="0"/><line nr="247" mi="1" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="5" ci="0" mb="0" cb="0"/><line nr="255" mi="3" ci="0" mb="2" cb="0"/><line nr="257" mi="8" ci="0" mb="2" cb="0"/><line nr="258" mi="6" ci="0" mb="2" cb="0"/><line nr="259" mi="5" ci="0" mb="0" cb="0"/><line nr="260" mi="5" ci="0" mb="2" cb="0"/><line nr="262" mi="5" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="1" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="1" ci="0" mb="0" cb="0"/><line nr="268" mi="5" ci="0" mb="2" cb="0"/><line nr="270" mi="5" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="1" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><line nr="278" mi="1" ci="0" mb="0" cb="0"/><line nr="282" mi="4" ci="0" mb="0" cb="0"/><line nr="283" mi="3" ci="0" mb="2" cb="0"/><line nr="286" mi="4" ci="0" mb="0" cb="0"/><line nr="287" mi="4" ci="0" mb="0" cb="0"/><line nr="290" mi="6" ci="0" mb="2" cb="0"/><line nr="291" mi="4" ci="0" mb="0" cb="0"/><line nr="292" mi="4" ci="0" mb="0" cb="0"/><line nr="293" mi="1" ci="0" mb="0" cb="0"/><line nr="294" mi="5" ci="0" mb="0" cb="0"/><line nr="295" mi="1" ci="0" mb="0" cb="0"/><line nr="298" mi="4" ci="0" mb="0" cb="0"/><line nr="299" mi="3" ci="0" mb="2" cb="0"/><line nr="302" mi="4" ci="0" mb="0" cb="0"/><line nr="303" mi="4" ci="0" mb="0" cb="0"/><line nr="306" mi="6" ci="0" mb="2" cb="0"/><line nr="307" mi="4" ci="0" mb="0" cb="0"/><line nr="308" mi="4" ci="0" mb="0" cb="0"/><line nr="309" mi="1" ci="0" mb="0" cb="0"/><line nr="310" mi="5" ci="0" mb="0" cb="0"/><line nr="311" mi="1" ci="0" mb="0" cb="0"/><line nr="314" mi="4" ci="0" mb="0" cb="0"/><line nr="315" mi="3" ci="0" mb="2" cb="0"/><line nr="318" mi="4" ci="0" mb="0" cb="0"/><line nr="319" mi="4" ci="0" mb="0" cb="0"/><line nr="322" mi="11" ci="0" mb="2" cb="0"/><line nr="324" mi="3" ci="0" mb="2" cb="0"/><line nr="325" mi="4" ci="0" mb="0" cb="0"/><line nr="327" mi="3" ci="0" mb="2" cb="0"/><line nr="328" mi="4" ci="0" mb="0" cb="0"/><line nr="330" mi="1" ci="0" mb="0" cb="0"/><line nr="331" mi="5" ci="0" mb="0" cb="0"/><line nr="332" mi="1" ci="0" mb="0" cb="0"/><line nr="335" mi="10" ci="0" mb="2" cb="0"/><line nr="336" mi="5" ci="0" mb="2" cb="0"/><line nr="337" mi="2" ci="0" mb="0" cb="0"/><line nr="339" mi="1" ci="0" mb="0" cb="0"/><line nr="341" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="830" covered="0"/><counter type="BRANCH" missed="114" covered="0"/><counter type="LINE" missed="201" covered="0"/><counter type="COMPLEXITY" missed="85" covered="0"/><counter type="METHOD" missed="28" covered="0"/><counter type="CLASS" missed="4" covered="0"/></sourcefile><sourcefile name="PlayList.java"><line nr="16" mi="0" ci="2" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="4" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="22" mi="0" ci="2" mb="0" cb="0"/><line nr="23" mi="0" ci="3" mb="0" cb="0"/><line nr="24" mi="0" ci="3" mb="0" cb="0"/><line nr="25" mi="0" ci="5" mb="0" cb="0"/><line nr="26" mi="0" ci="1" mb="0" cb="0"/><line nr="28" mi="0" ci="2" mb="0" cb="0"/><line nr="30" mi="0" ci="8" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="34" mi="0" ci="7" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="0" ci="1" mb="0" cb="0"/><line nr="38" mi="0" ci="5" mb="2" cb="2"/><line nr="39" mi="4" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="4" mb="0" cb="0"/><line nr="43" mi="0" ci="6" mb="0" cb="0"/><line nr="44" mi="0" ci="3" mb="0" cb="0"/><line nr="45" mi="1" ci="2" mb="1" cb="1"/><line nr="47" mi="0" ci="5" mb="0" cb="0"/><line nr="50" mi="0" ci="8" mb="0" cb="2"/><line nr="51" mi="0" ci="6" mb="0" cb="2"/><line nr="52" mi="0" ci="5" mb="0" cb="0"/><line nr="53" mi="0" ci="5" mb="1" cb="1"/><line nr="55" mi="0" ci="5" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="2" ci="0" mb="0" cb="0"/><line nr="58" mi="0" ci="1" mb="0" cb="0"/><line nr="63" mi="0" ci="1" mb="0" cb="0"/><line nr="66" mi="0" ci="5" mb="0" cb="0"/><line nr="67" mi="0" ci="1" mb="0" cb="0"/><line nr="70" mi="0" ci="3" mb="0" cb="0"/><line nr="74" mi="0" ci="3" mb="0" cb="0"/><line nr="78" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="82" mi="0" ci="7" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="86" mi="0" ci="8" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="90" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="4" ci="7" mb="1" cb="1"/><line nr="93" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="7" ci="0" mb="0" cb="0"/><line nr="95" mi="4" ci="0" mb="0" cb="0"/><line nr="96" mi="1" ci="0" mb="0" cb="0"/><line nr="97" mi="0" ci="4" mb="0" cb="0"/><line nr="98" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="32" covered="170"/><counter type="BRANCH" missed="5" covered="9"/><counter type="LINE" missed="9" covered="44"/><counter type="COMPLEXITY" missed="5" covered="9"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoAlbumFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Album.java"><line nr="21" mi="2" ci="0" mb="0" cb="0"/><line nr="22" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="25" mi="4" ci="0" mb="0" cb="0"/><line nr="27" mi="5" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="0" cb="0"/><line nr="29" mi="1" ci="0" mb="0" cb="0"/><line nr="30" mi="2" ci="0" mb="0" cb="0"/><line nr="31" mi="1" ci="0" mb="0" cb="0"/><line nr="32" mi="3" ci="0" mb="0" cb="0"/><line nr="33" mi="1" ci="0" mb="0" cb="0"/><line nr="35" mi="2" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="3" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="39" mi="3" ci="0" mb="0" cb="0"/><line nr="41" mi="5" ci="0" mb="0" cb="0"/><line nr="42" mi="5" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="44" mi="2" ci="0" mb="0" cb="0"/><line nr="45" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="5" ci="0" mb="0" cb="0"/><line nr="47" mi="1" ci="0" mb="0" cb="0"/><line nr="49" mi="2" ci="0" mb="0" cb="0"/><line nr="51" mi="8" ci="0" mb="0" cb="0"/><line nr="52" mi="9" ci="0" mb="0" cb="0"/><line nr="53" mi="2" ci="0" mb="0" cb="0"/><line nr="55" mi="7" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="59" mi="5" ci="0" mb="4" cb="0"/><line nr="60" mi="4" ci="0" mb="0" cb="0"/><line nr="61" mi="4" ci="0" mb="0" cb="0"/><line nr="63" mi="5" ci="0" mb="0" cb="0"/><line nr="64" mi="10" ci="0" mb="0" cb="0"/><line nr="66" mi="6" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="2" cb="0"/><line nr="70" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="8" ci="0" mb="2" cb="0"/><line nr="73" mi="6" ci="0" mb="2" cb="0"/><line nr="74" mi="5" ci="0" mb="0" cb="0"/><line nr="75" mi="5" ci="0" mb="2" cb="0"/><line nr="77" mi="5" ci="0" mb="0" cb="0"/><line nr="78" mi="1" ci="0" mb="0" cb="0"/><line nr="79" mi="2" ci="0" mb="0" cb="0"/><line nr="80" mi="1" ci="0" mb="0" cb="0"/><line nr="85" mi="1" ci="0" mb="0" cb="0"/><line nr="89" mi="5" ci="0" mb="0" cb="0"/><line nr="90" mi="1" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="2" ci="0" mb="0" cb="0"/><line nr="100" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="4" ci="0" mb="0" cb="0"/><line nr="113" mi="4" ci="0" mb="0" cb="0"/><line nr="115" mi="4" ci="0" mb="0" cb="0"/><line nr="116" mi="7" ci="0" mb="0" cb="0"/><line nr="117" mi="4" ci="0" mb="0" cb="0"/><line nr="119" mi="4" ci="0" mb="0" cb="0"/><line nr="120" mi="7" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="123" mi="4" ci="0" mb="0" cb="0"/><line nr="124" mi="9" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="127" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="8" ci="0" mb="0" cb="0"/><line nr="129" mi="4" ci="0" mb="0" cb="0"/><line nr="131" mi="4" ci="0" mb="0" cb="0"/><line nr="132" mi="5" ci="0" mb="0" cb="0"/><line nr="133" mi="9" ci="0" mb="0" cb="0"/><line nr="134" mi="4" ci="0" mb="0" cb="0"/><line nr="136" mi="4" ci="0" mb="0" cb="0"/><line nr="137" mi="11" ci="0" mb="2" cb="0"/><line nr="138" mi="4" ci="0" mb="0" cb="0"/><line nr="139" mi="7" ci="0" mb="0" cb="0"/><line nr="140" mi="4" ci="0" mb="0" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="4" ci="0" mb="0" cb="0"/><line nr="144" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="330" covered="0"/><counter type="BRANCH" missed="14" covered="0"/><counter type="LINE" missed="84" covered="0"/><counter type="COMPLEXITY" missed="16" covered="0"/><counter type="METHOD" missed="9" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Language.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Genre.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="42" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="56"/><counter type="LINE" missed="0" covered="6"/><counter type="COMPLEXITY" missed="0" covered="3"/><counter type="METHOD" missed="0" covered="3"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoPlayListFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="AudioElement.java"><line nr="24" mi="0" ci="2" mb="0" cb="0"/><line nr="25" mi="0" ci="3" mb="0" cb="0"/><line nr="26" mi="0" ci="3" mb="0" cb="0"/><line nr="27" mi="0" ci="3" mb="0" cb="0"/><line nr="28" mi="0" ci="4" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="30" mi="0" ci="1" mb="0" cb="0"/><line nr="32" mi="0" ci="2" mb="0" cb="0"/><line nr="33" mi="0" ci="3" mb="0" cb="0"/><line nr="34" mi="0" ci="3" mb="0" cb="0"/><line nr="35" mi="0" ci="3" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="37" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="40" mi="0" ci="2" mb="0" cb="0"/><line nr="42" mi="0" ci="8" mb="0" cb="0"/><line nr="43" mi="0" ci="8" mb="0" cb="0"/><line nr="44" mi="0" ci="9" mb="0" cb="0"/><line nr="45" mi="0" ci="8" mb="0" cb="0"/><line nr="46" mi="0" ci="2" mb="0" cb="0"/><line nr="48" mi="0" ci="7" mb="0" cb="0"/><line nr="49" mi="1" ci="0" mb="0" cb="0"/><line nr="50" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="0" ci="1" mb="0" cb="0"/><line nr="52" mi="0" ci="5" mb="2" cb="2"/><line nr="53" mi="4" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="56" mi="0" ci="1" mb="0" cb="0"/><line nr="59" mi="3" ci="0" mb="0" cb="0"/><line nr="63" mi="3" ci="0" mb="0" cb="0"/><line nr="67" mi="3" ci="0" mb="0" cb="0"/><line nr="71" mi="0" ci="10" mb="0" cb="0"/><line nr="75" mi="0" ci="4" mb="0" cb="0"/><line nr="76" mi="0" ci="7" mb="0" cb="0"/><line nr="77" mi="0" ci="4" mb="0" cb="0"/><line nr="79" mi="0" ci="4" mb="0" cb="0"/><line nr="80" mi="0" ci="7" mb="0" cb="0"/><line nr="81" mi="0" ci="4" mb="0" cb="0"/><line nr="83" mi="0" ci="4" mb="0" cb="0"/><line nr="84" mi="0" ci="9" mb="0" cb="0"/><line nr="85" mi="0" ci="4" mb="0" cb="0"/><line nr="87" mi="0" ci="4" mb="0" cb="0"/><line nr="88" mi="0" ci="8" mb="0" cb="0"/><line nr="89" mi="0" ci="4" mb="0" cb="0"/><line nr="91" mi="0" ci="4" mb="0" cb="0"/><line nr="92" mi="0" ci="7" mb="0" cb="0"/><line nr="93" mi="0" ci="4" mb="0" cb="0"/><line nr="95" mi="0" ci="1" mb="0" cb="0"/><line nr="99" mi="5" ci="0" mb="0" cb="0"/><line nr="101" mi="6" ci="0" mb="0" cb="0"/><line nr="102" mi="3" ci="0" mb="0" cb="0"/><line nr="103" mi="2" ci="0" mb="0" cb="0"/><line nr="104" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="2" ci="0" mb="0" cb="0"/><line nr="108" mi="4" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="3" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="3" ci="0" mb="0" cb="0"/><line nr="114" mi="8" ci="0" mb="5" cb="0"/><line nr="115" mi="2" ci="0" mb="0" cb="0"/><line nr="116" mi="1" ci="0" mb="0" cb="0"/><line nr="117" mi="2" ci="0" mb="0" cb="0"/><line nr="118" mi="1" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="1" ci="0" mb="0" cb="0"/><line nr="121" mi="2" ci="0" mb="0" cb="0"/><line nr="122" mi="1" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="125" mi="4" ci="0" mb="0" cb="0"/><line nr="128" mi="2" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="85" covered="181"/><counter type="BRANCH" missed="9" covered="2"/><counter type="LINE" missed="30" covered="42"/><counter type="COMPLEXITY" missed="11" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="NoElementFoundException.java"><line nr="6" mi="3" ci="0" mb="0" cb="0"/><line nr="7" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="4" covered="0"/><counter type="LINE" missed="2" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><sourcefile name="Category.java"><line nr="3" mi="0" ci="3" mb="0" cb="0"/><line nr="4" mi="0" ci="35" mb="0" cb="0"/><line nr="7" mi="0" ci="4" mb="0" cb="0"/><line nr="8" mi="0" ci="3" mb="0" cb="0"/><line nr="9" mi="0" ci="1" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="3" covered="46"/><counter type="LINE" missed="1" covered="5"/><counter type="COMPLEXITY" missed="1" covered="2"/><counter type="METHOD" missed="1" covered="2"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="AudioBook.java"><line nr="11" mi="7" ci="0" mb="0" cb="0"/><line nr="12" mi="3" ci="0" mb="0" cb="0"/><line nr="13" mi="3" ci="0" mb="0" cb="0"/><line nr="14" mi="1" ci="0" mb="0" cb="0"/><line nr="17" mi="0" ci="6" mb="0" cb="0"/><line nr="18" mi="0" ci="3" mb="0" cb="0"/><line nr="19" mi="0" ci="3" mb="0" cb="0"/><line nr="20" mi="0" ci="1" mb="0" cb="0"/><line nr="23" mi="3" ci="0" mb="0" cb="0"/><line nr="24" mi="8" ci="0" mb="0" cb="0"/><line nr="25" mi="8" ci="0" mb="0" cb="0"/><line nr="26" mi="1" ci="0" mb="0" cb="0"/><line nr="29" mi="0" ci="3" mb="0" cb="0"/><line nr="33" mi="0" ci="9" mb="4" cb="1"/><line nr="34" mi="4" ci="0" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="4" ci="0" mb="0" cb="0"/><line nr="37" mi="4" ci="0" mb="0" cb="0"/><line nr="38" mi="3" ci="0" mb="0" cb="0"/><line nr="40" mi="0" ci="1" mb="0" cb="0"/><line nr="43" mi="0" ci="3" mb="0" cb="0"/><line nr="47" mi="0" ci="9" mb="4" cb="1"/><line nr="48" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="4" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="54" mi="0" ci="1" mb="0" cb="0"/><line nr="58" mi="8" ci="0" mb="0" cb="0"/><line nr="64" mi="4" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="68" mi="4" ci="0" mb="0" cb="0"/><line nr="69" mi="8" ci="0" mb="0" cb="0"/><line nr="70" mi="4" ci="0" mb="0" cb="0"/><line nr="72" mi="4" ci="0" mb="0" cb="0"/><line nr="73" mi="8" ci="0" mb="0" cb="0"/><line nr="74" mi="4" ci="0" mb="0" cb="0"/><line nr="76" mi="4" ci="0" mb="0" cb="0"/><line nr="77" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="117" covered="47"/><counter type="BRANCH" missed="8" covered="2"/><counter type="LINE" missed="27" covered="12"/><counter type="COMPLEXITY" missed="12" covered="5"/><counter type="METHOD" missed="4" covered="5"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><sourcefile name="Song.java"><line nr="11" mi="0" ci="7" mb="0" cb="0"/><line nr="12" mi="0" ci="3" mb="0" cb="0"/><line nr="13" mi="0" ci="1" mb="0" cb="0"/><line nr="16" mi="0" ci="6" mb="0" cb="0"/><line nr="17" mi="0" ci="3" mb="0" cb="0"/><line nr="18" mi="0" ci="1" mb="0" cb="0"/><line nr="21" mi="0" ci="3" mb="0" cb="0"/><line nr="22" mi="0" ci="8" mb="0" cb="0"/><line nr="23" mi="0" ci="1" mb="0" cb="0"/><line nr="26" mi="0" ci="4" mb="0" cb="0"/><line nr="30" mi="0" ci="9" mb="0" cb="6"/><line nr="31" mi="0" ci="4" mb="0" cb="0"/><line nr="32" mi="0" ci="4" mb="0" cb="0"/><line nr="33" mi="0" ci="4" mb="0" cb="0"/><line nr="34" mi="0" ci="4" mb="0" cb="0"/><line nr="35" mi="0" ci="4" mb="0" cb="0"/><line nr="36" mi="0" ci="3" mb="0" cb="0"/><line nr="38" mi="0" ci="1" mb="0" cb="0"/><line nr="41" mi="0" ci="6" mb="0" cb="0"/><line nr="46" mi="0" ci="4" mb="0" cb="0"/><line nr="48" mi="0" ci="4" mb="0" cb="0"/><line nr="50" mi="0" ci="4" mb="0" cb="0"/><line nr="51" mi="0" ci="8" mb="0" cb="0"/><line nr="52" mi="0" ci="4" mb="0" cb="0"/><line nr="54" mi="0" ci="4" mb="0" cb="0"/><line nr="55" mi="0" ci="1" mb="0" cb="0"/><counter type="INSTRUCTION" missed="0" covered="105"/><counter type="BRANCH" missed="0" covered="6"/><counter type="LINE" missed="0" covered="26"/><counter type="COMPLEXITY" missed="0" covered="12"/><counter type="METHOD" missed="0" covered="7"/><counter type="CLASS" missed="0" covered="1"/></sourcefile><counter type="INSTRUCTION" missed="1412" covered="651"/><counter type="BRANCH" missed="150" covered="19"/><counter type="LINE" missed="359" covered="140"/><counter type="COMPLEXITY" missed="134" covered="38"/><counter type="METHOD" missed="50" covered="31"/><counter type="CLASS" missed="8" covered="7"/></package><package name="musichub/main"><class name="musichub/main/Main" sourcefilename="Main.java"><method name="&lt;init&gt;" desc="()V" line="15"><counter type="INSTRUCTION" missed="3" covered="0"/><counter type="LINE" missed="1" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="main" desc="([Ljava/lang/String;)V" line="18"><counter type="INSTRUCTION" missed="562" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="191" covered="0"/><counter type="COMPLEXITY" missed="28" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><method name="printAvailableCommands" desc="()V" line="261"><counter type="INSTRUCTION" missed="40" covered="0"/><counter type="LINE" missed="14" covered="0"/><counter type="COMPLEXITY" missed="1" covered="0"/><counter type="METHOD" missed="1" covered="0"/></method><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></class><sourcefile name="Main.java"><line nr="15" mi="3" ci="0" mb="0" cb="0"/><line nr="18" mi="4" ci="0" mb="0" cb="0"/><line nr="20" mi="3" ci="0" mb="0" cb="0"/><line nr="23" mi="5" ci="0" mb="0" cb="0"/><line nr="24" mi="3" ci="0" mb="0" cb="0"/><line nr="28" mi="5" ci="0" mb="2" cb="0"/><line nr="30" mi="4" ci="0" mb="2" cb="0"/><line nr="31" mi="4" ci="0" mb="15" cb="0"/><line nr="33" mi="2" ci="0" mb="0" cb="0"/><line nr="35" mi="1" ci="0" mb="0" cb="0"/><line nr="36" mi="3" ci="0" mb="0" cb="0"/><line nr="37" mi="1" ci="0" mb="0" cb="0"/><line nr="40" mi="4" ci="0" mb="0" cb="0"/><line nr="41" mi="1" ci="0" mb="0" cb="0"/><line nr="42" mi="3" ci="0" mb="0" cb="0"/><line nr="43" mi="1" ci="0" mb="0" cb="0"/><line nr="46" mi="3" ci="0" mb="0" cb="0"/><line nr="47" mi="4" ci="0" mb="0" cb="0"/><line nr="49" mi="3" ci="0" mb="0" cb="0"/><line nr="51" mi="4" ci="0" mb="0" cb="0"/><line nr="52" mi="3" ci="0" mb="0" cb="0"/><line nr="53" mi="1" ci="0" mb="0" cb="0"/><line nr="54" mi="5" ci="0" mb="0" cb="0"/><line nr="55" mi="1" ci="0" mb="0" cb="0"/><line nr="56" mi="1" ci="0" mb="0" cb="0"/><line nr="57" mi="3" ci="0" mb="0" cb="0"/><line nr="58" mi="1" ci="0" mb="0" cb="0"/><line nr="61" mi="3" ci="0" mb="0" cb="0"/><line nr="62" mi="4" ci="0" mb="0" cb="0"/><line nr="64" mi="3" ci="0" mb="0" cb="0"/><line nr="66" mi="4" ci="0" mb="0" cb="0"/><line nr="67" mi="5" ci="0" mb="0" cb="0"/><line nr="68" mi="3" ci="0" mb="0" cb="0"/><line nr="69" mi="4" ci="0" mb="0" cb="0"/><line nr="70" mi="1" ci="0" mb="0" cb="0"/><line nr="71" mi="5" ci="0" mb="0" cb="0"/><line nr="72" mi="1" ci="0" mb="0" cb="0"/><line nr="73" mi="1" ci="0" mb="0" cb="0"/><line nr="74" mi="3" ci="0" mb="0" cb="0"/><line nr="75" mi="1" ci="0" mb="0" cb="0"/><line nr="78" mi="4" ci="0" mb="0" cb="0"/><line nr="79" mi="1" ci="0" mb="0" cb="0"/><line nr="80" mi="3" ci="0" mb="0" cb="0"/><line nr="81" mi="1" ci="0" mb="0" cb="0"/><line nr="84" mi="3" ci="0" mb="0" cb="0"/><line nr="85" mi="3" ci="0" mb="0" cb="0"/><line nr="86" mi="3" ci="0" mb="0" cb="0"/><line nr="87" mi="3" ci="0" mb="0" cb="0"/><line nr="88" mi="3" ci="0" mb="0" cb="0"/><line nr="89" mi="3" ci="0" mb="0" cb="0"/><line nr="90" mi="3" ci="0" mb="0" cb="0"/><line nr="91" mi="3" ci="0" mb="0" cb="0"/><line nr="92" mi="4" ci="0" mb="0" cb="0"/><line nr="94" mi="3" ci="0" mb="0" cb="0"/><line nr="95" mi="3" ci="0" mb="0" cb="0"/><line nr="96" mi="3" ci="0" mb="2" cb="0"/><line nr="97" mi="2" ci="0" mb="0" cb="0"/><line nr="98" mi="3" ci="0" mb="0" cb="0"/><line nr="99" mi="4" ci="0" mb="0" cb="0"/><line nr="100" mi="3" ci="0" mb="0" cb="0"/><line nr="101" mi="1" ci="0" mb="0" cb="0"/><line nr="104" mi="9" ci="0" mb="0" cb="0"/><line nr="105" mi="3" ci="0" mb="0" cb="0"/><line nr="106" mi="3" ci="0" mb="0" cb="0"/><line nr="107" mi="3" ci="0" mb="0" cb="0"/><line nr="108" mi="10" ci="0" mb="2" cb="0"/><line nr="109" mi="3" ci="0" mb="0" cb="0"/><line nr="110" mi="1" ci="0" mb="0" cb="0"/><line nr="111" mi="3" ci="0" mb="0" cb="0"/><line nr="112" mi="1" ci="0" mb="0" cb="0"/><line nr="115" mi="3" ci="0" mb="0" cb="0"/><line nr="116" mi="3" ci="0" mb="0" cb="0"/><line nr="117" mi="3" ci="0" mb="0" cb="0"/><line nr="118" mi="3" ci="0" mb="0" cb="0"/><line nr="119" mi="3" ci="0" mb="0" cb="0"/><line nr="120" mi="3" ci="0" mb="0" cb="0"/><line nr="121" mi="4" ci="0" mb="0" cb="0"/><line nr="122" mi="3" ci="0" mb="0" cb="0"/><line nr="123" mi="3" ci="0" mb="0" cb="0"/><line nr="124" mi="8" ci="0" mb="0" cb="0"/><line nr="125" mi="3" ci="0" mb="0" cb="0"/><line nr="126" mi="3" ci="0" mb="0" cb="0"/><line nr="127" mi="3" ci="0" mb="0" cb="0"/><line nr="128" mi="10" ci="0" mb="2" cb="0"/><line nr="129" mi="3" ci="0" mb="0" cb="0"/><line nr="130" mi="1" ci="0" mb="0" cb="0"/><line nr="131" mi="3" ci="0" mb="0" cb="0"/><line nr="132" mi="1" ci="0" mb="0" cb="0"/><line nr="135" mi="3" ci="0" mb="0" cb="0"/><line nr="136" mi="3" ci="0" mb="0" cb="0"/><line nr="137" mi="3" ci="0" mb="0" cb="0"/><line nr="138" mi="3" ci="0" mb="2" cb="0"/><line nr="139" mi="4" ci="0" mb="0" cb="0"/><line nr="140" mi="7" ci="0" mb="2" cb="0"/><line nr="141" mi="1" ci="0" mb="0" cb="0"/><line nr="142" mi="3" ci="0" mb="0" cb="0"/><line nr="144" mi="3" ci="0" mb="0" cb="0"/><line nr="145" mi="3" ci="0" mb="0" cb="0"/><line nr="146" mi="3" ci="0" mb="2" cb="0"/><line nr="147" mi="4" ci="0" mb="0" cb="0"/><line nr="148" mi="4" ci="0" mb="0" cb="0"/><line nr="149" mi="1" ci="0" mb="0" cb="0"/><line nr="150" mi="3" ci="0" mb="0" cb="0"/><line nr="152" mi="4" ci="0" mb="0" cb="0"/><line nr="153" mi="1" ci="0" mb="0" cb="0"/><line nr="154" mi="4" ci="0" mb="0" cb="0"/><line nr="155" mi="1" ci="0" mb="0" cb="0"/><line nr="156" mi="3" ci="0" mb="0" cb="0"/><line nr="157" mi="1" ci="0" mb="0" cb="0"/><line nr="158" mi="3" ci="0" mb="0" cb="0"/><line nr="159" mi="1" ci="0" mb="0" cb="0"/><line nr="162" mi="3" ci="0" mb="0" cb="0"/><line nr="163" mi="3" ci="0" mb="0" cb="0"/><line nr="164" mi="3" ci="0" mb="0" cb="0"/><line nr="165" mi="3" ci="0" mb="0" cb="0"/><line nr="166" mi="3" ci="0" mb="0" cb="0"/><line nr="167" mi="3" ci="0" mb="0" cb="0"/><line nr="168" mi="3" ci="0" mb="0" cb="0"/><line nr="169" mi="3" ci="0" mb="0" cb="0"/><line nr="170" mi="4" ci="0" mb="0" cb="0"/><line nr="171" mi="3" ci="0" mb="0" cb="0"/><line nr="172" mi="3" ci="0" mb="0" cb="0"/><line nr="173" mi="3" ci="0" mb="0" cb="0"/><line nr="174" mi="3" ci="0" mb="0" cb="0"/><line nr="175" mi="10" ci="0" mb="0" cb="0"/><line nr="176" mi="3" ci="0" mb="0" cb="0"/><line nr="177" mi="3" ci="0" mb="0" cb="0"/><line nr="178" mi="3" ci="0" mb="0" cb="0"/><line nr="179" mi="10" ci="0" mb="2" cb="0"/><line nr="180" mi="1" ci="0" mb="0" cb="0"/><line nr="181" mi="3" ci="0" mb="0" cb="0"/><line nr="182" mi="1" ci="0" mb="0" cb="0"/><line nr="185" mi="3" ci="0" mb="0" cb="0"/><line nr="186" mi="3" ci="0" mb="0" cb="0"/><line nr="187" mi="3" ci="0" mb="0" cb="0"/><line nr="188" mi="3" ci="0" mb="2" cb="0"/><line nr="189" mi="4" ci="0" mb="0" cb="0"/><line nr="190" mi="4" ci="0" mb="0" cb="0"/><line nr="191" mi="1" ci="0" mb="0" cb="0"/><line nr="192" mi="3" ci="0" mb="0" cb="0"/><line nr="193" mi="3" ci="0" mb="0" cb="0"/><line nr="194" mi="5" ci="0" mb="0" cb="0"/><line nr="195" mi="3" ci="0" mb="0" cb="0"/><line nr="196" mi="3" ci="0" mb="0" cb="0"/><line nr="198" mi="3" ci="0" mb="0" cb="0"/><line nr="199" mi="3" ci="0" mb="2" cb="0"/><line nr="200" mi="4" ci="0" mb="0" cb="0"/><line nr="201" mi="4" ci="0" mb="0" cb="0"/><line nr="202" mi="1" ci="0" mb="0" cb="0"/><line nr="203" mi="5" ci="0" mb="2" cb="0"/><line nr="204" mi="3" ci="0" mb="0" cb="0"/><line nr="205" mi="3" ci="0" mb="0" cb="0"/><line nr="207" mi="4" ci="0" mb="0" cb="0"/><line nr="208" mi="1" ci="0" mb="0" cb="0"/><line nr="209" mi="4" ci="0" mb="0" cb="0"/><line nr="210" mi="1" ci="0" mb="0" cb="0"/><line nr="212" mi="3" ci="0" mb="0" cb="0"/><line nr="213" mi="3" ci="0" mb="0" cb="0"/><line nr="214" mi="1" ci="0" mb="0" cb="0"/><line nr="215" mi="3" ci="0" mb="0" cb="0"/><line nr="216" mi="1" ci="0" mb="0" cb="0"/><line nr="217" mi="3" ci="0" mb="0" cb="0"/><line nr="218" mi="1" ci="0" mb="0" cb="0"/><line nr="221" mi="3" ci="0" mb="0" cb="0"/><line nr="222" mi="3" ci="0" mb="0" cb="0"/><line nr="223" mi="3" ci="0" mb="2" cb="0"/><line nr="224" mi="4" ci="0" mb="0" cb="0"/><line nr="225" mi="4" ci="0" mb="0" cb="0"/><line nr="226" mi="1" ci="0" mb="0" cb="0"/><line nr="227" mi="3" ci="0" mb="0" cb="0"/><line nr="229" mi="3" ci="0" mb="0" cb="0"/><line nr="230" mi="1" ci="0" mb="0" cb="0"/><line nr="231" mi="4" ci="0" mb="0" cb="0"/><line nr="232" mi="1" ci="0" mb="0" cb="0"/><line nr="233" mi="3" ci="0" mb="0" cb="0"/><line nr="234" mi="1" ci="0" mb="0" cb="0"/><line nr="235" mi="3" ci="0" mb="0" cb="0"/><line nr="236" mi="1" ci="0" mb="0" cb="0"/><line nr="239" mi="2" ci="0" mb="0" cb="0"/><line nr="240" mi="2" ci="0" mb="0" cb="0"/><line nr="241" mi="2" ci="0" mb="0" cb="0"/><line nr="242" mi="3" ci="0" mb="0" cb="0"/><line nr="243" mi="1" ci="0" mb="0" cb="0"/><line nr="244" mi="3" ci="0" mb="0" cb="0"/><line nr="245" mi="1" ci="0" mb="0" cb="0"/><line nr="248" mi="1" ci="0" mb="0" cb="0"/><line nr="249" mi="3" ci="0" mb="0" cb="0"/><line nr="250" mi="3" ci="0" mb="0" cb="0"/><line nr="251" mi="1" ci="0" mb="0" cb="0"/><line nr="254" mi="1" ci="0" mb="0" cb="0"/><line nr="257" mi="2" ci="0" mb="0" cb="0"/><line nr="258" mi="1" ci="0" mb="0" cb="0"/><line nr="261" mi="3" ci="0" mb="0" cb="0"/><line nr="262" mi="3" ci="0" mb="0" cb="0"/><line nr="263" mi="3" ci="0" mb="0" cb="0"/><line nr="264" mi="3" ci="0" mb="0" cb="0"/><line nr="265" mi="3" ci="0" mb="0" cb="0"/><line nr="266" mi="3" ci="0" mb="0" cb="0"/><line nr="267" mi="3" ci="0" mb="0" cb="0"/><line nr="268" mi="3" ci="0" mb="0" cb="0"/><line nr="269" mi="3" ci="0" mb="0" cb="0"/><line nr="270" mi="3" ci="0" mb="0" cb="0"/><line nr="271" mi="3" ci="0" mb="0" cb="0"/><line nr="272" mi="3" ci="0" mb="0" cb="0"/><line nr="273" mi="3" ci="0" mb="0" cb="0"/><line nr="274" mi="1" ci="0" mb="0" cb="0"/><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></sourcefile><counter type="INSTRUCTION" missed="605" covered="0"/><counter type="BRANCH" missed="41" covered="0"/><counter type="LINE" missed="206" covered="0"/><counter type="COMPLEXITY" missed="30" covered="0"/><counter type="METHOD" missed="3" covered="0"/><counter type="CLASS" missed="1" covered="0"/></package><counter type="INSTRUCTION" missed="2023" covered="802"/><counter type="BRANCH" missed="191" covered="23"/><counter type="LINE" missed="569" covered="182"/><counter type="COMPLEXITY" missed="164" covered="49"/><counter type="METHOD" missed="53" covered="40"/><counter type="CLASS" missed="9" covered="10"/></report>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.html b/target/site/jacoco/musichub.business/AudioBook.html
          index aec1e56..78809c1 100644
          --- a/target/site/jacoco/musichub.business/AudioBook.html
          +++ b/target/site/jacoco/musichub.business/AudioBook.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 164</td><td class="ctr2">0 %</td><td class="bar">10 of 10</td><td class="ctr2">0 %</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">39</td><td class="ctr2">39</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0 %</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="29" alt="29"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e1">0 %</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>AudioBook</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">AudioBook</span></div><h1>AudioBook</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">117 of 164</td><td class="ctr2">28 %</td><td class="bar">8 of 10</td><td class="ctr2">20 %</td><td class="ctr1">12</td><td class="ctr2">17</td><td class="ctr1">27</td><td class="ctr2">39</td><td class="ctr1">4</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a3"><a href="AudioBook.java.html#L64" class="el_method">createXMLElement(Document, Element)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="45" alt="45"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="AudioBook.java.html#L23" class="el_method">AudioBook(Element)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="20" alt="20"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="AudioBook.java.html#L33" class="el_method">setLanguage(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c3">48 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="e0">20 %</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="AudioBook.java.html#L47" class="el_method">setCategory(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="15" alt="15"/><img src="../jacoco-resources/greenbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">48 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="e1">20 %</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="AudioBook.java.html#L11" class="el_method">AudioBook(String, String, int, String, String, String, String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="14" alt="14"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="AudioBook.java.html#L58" class="el_method">toString()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="8" alt="8"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html#L17" class="el_method">AudioBook(String, String, int, String, String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="34" height="10" title="13" alt="13"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="AudioBook.java.html#L29" class="el_method">getLanguage()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="AudioBook.java.html#L43" class="el_method">getCategory()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/AudioBook.java.html b/target/site/jacoco/musichub.business/AudioBook.java.html
          index 33a7924..d8fc192 100644
          --- a/target/site/jacoco/musichub.business/AudioBook.java.html
          +++ b/target/site/jacoco/musichub.business/AudioBook.java.html
          @@ -14,10 +14,10 @@ public class AudioBook extends AudioElement {
           <span class="nc" id="L14">    }</span>
           
               public AudioBook(String title, String artist, int lengthInSeconds, String content, String language, String category) {
          -<span class="nc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          -<span class="nc" id="L18">        this.setLanguage(language);</span>
          -<span class="nc" id="L19">        this.setCategory(category);</span>
          -<span class="nc" id="L20">    }</span>
          +<span class="fc" id="L17">        super(title, artist, lengthInSeconds, content);</span>
          +<span class="fc" id="L18">        this.setLanguage(language);</span>
          +<span class="fc" id="L19">        this.setCategory(category);</span>
          +<span class="fc" id="L20">    }</span>
           
               public AudioBook(Element xmlElement) {
           <span class="nc" id="L23">        super(xmlElement);</span>
          @@ -26,32 +26,32 @@ public class AudioBook extends AudioElement {
           <span class="nc" id="L26">    }</span>
           
               public Language getLanguage() {
          -<span class="nc" id="L29">        return this.language;</span>
          +<span class="fc" id="L29">        return this.language;</span>
               }
           
               public void setLanguage(String language) {
          -<span class="nc bnc" id="L33" title="All 5 branches missed.">        switch (language.toLowerCase()) {</span>
          +<span class="pc bpc" id="L33" title="4 of 5 branches missed.">        switch (language.toLowerCase()) {</span>
           <span class="nc" id="L34">            default -&gt; this.language = Language.ENGLISH;</span>
          -<span class="nc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
          +<span class="fc" id="L35">            case &quot;french&quot; -&gt; this.language = Language.FRENCH;</span>
           <span class="nc" id="L36">            case &quot;german&quot; -&gt; this.language = Language.GERMAN;</span>
           <span class="nc" id="L37">            case &quot;spanish&quot; -&gt; this.language = Language.SPANISH;</span>
           <span class="nc" id="L38">            case &quot;italian&quot; -&gt; this.language = Language.ITALIAN;</span>
                   }
          -<span class="nc" id="L40">    }</span>
          +<span class="fc" id="L40">    }</span>
           
               public Category getCategory() {
          -<span class="nc" id="L43">        return this.category;</span>
          +<span class="fc" id="L43">        return this.category;</span>
               }
           
               public void setCategory(String category) {
          -<span class="nc bnc" id="L47" title="All 5 branches missed.">        switch (category.toLowerCase()) {</span>
          +<span class="pc bpc" id="L47" title="4 of 5 branches missed.">        switch (category.toLowerCase()) {</span>
           <span class="nc" id="L48">            default -&gt; this.category = Category.YOUTH;</span>
          -<span class="nc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
          +<span class="fc" id="L49">            case &quot;novel&quot; -&gt; this.category = Category.NOVEL;</span>
           <span class="nc" id="L50">            case &quot;theater&quot; -&gt; this.category = Category.THEATER;</span>
           <span class="nc" id="L51">            case &quot;documentary&quot; -&gt; this.category = Category.DOCUMENTARY;</span>
           <span class="nc" id="L52">            case &quot;speech&quot; -&gt; this.category = Category.SPEECH;</span>
                   }
          -<span class="nc" id="L54">    }</span>
          +<span class="fc" id="L54">    }</span>
           
           
               public String toString() {
          diff --git a/target/site/jacoco/musichub.business/Category.html b/target/site/jacoco/musichub.business/Category.html
          index d7e4df0..690ad21 100644
          --- a/target/site/jacoco/musichub.business/Category.html
          +++ b/target/site/jacoco/musichub.business/Category.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Category</span></div><h1>Category</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">3 of 49</td><td class="ctr2">93 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Category.java.html#L12" class="el_method">getCategory()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Category.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Category.java.html#L7" class="el_method">Category(String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Category.java.html b/target/site/jacoco/musichub.business/Category.java.html
          index cdef51f..1d815b6 100644
          --- a/target/site/jacoco/musichub.business/Category.java.html
          +++ b/target/site/jacoco/musichub.business/Category.java.html
          @@ -1,12 +1,12 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Category.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Category.java</span></div><h1>Category.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          -<span class="nc" id="L3">public enum Category {</span>
          -<span class="nc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
          +<span class="fc" id="L3">public enum Category {</span>
          +<span class="fc" id="L4">    YOUTH(&quot;youth&quot;), NOVEL(&quot;novel&quot;), THEATER(&quot;theater&quot;), DOCUMENTARY(&quot;documentary&quot;), SPEECH(&quot;speech&quot;);</span>
               private final String category;
           
          -<span class="nc" id="L7">    Category(String category) {</span>
          -<span class="nc" id="L8">        this.category = category;</span>
          -<span class="nc" id="L9">    }</span>
          +<span class="fc" id="L7">    Category(String category) {</span>
          +<span class="fc" id="L8">        this.category = category;</span>
          +<span class="fc" id="L9">    }</span>
           
               public String getCategory() {
           <span class="nc" id="L12">        return category;</span>
          diff --git a/target/site/jacoco/musichub.business/Language.html b/target/site/jacoco/musichub.business/Language.html
          index 604af85..72d4236 100644
          --- a/target/site/jacoco/musichub.business/Language.html
          +++ b/target/site/jacoco/musichub.business/Language.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">49 of 49</td><td class="ctr2">0 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.html" class="el_package">musichub.business</a> &gt; <span class="el_class">Language</span></div><h1>Language</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">3 of 49</td><td class="ctr2">93 %</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">6</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="Language.java.html#L12" class="el_method">getLanguage()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0 %</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Language.java.html#L3" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Language.java.html#L7" class="el_method">Language(String, int, String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/Language.java.html b/target/site/jacoco/musichub.business/Language.java.html
          index f974811..4c55c9d 100644
          --- a/target/site/jacoco/musichub.business/Language.java.html
          +++ b/target/site/jacoco/musichub.business/Language.java.html
          @@ -1,12 +1,12 @@
           <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Language.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <a href="index.source.html" class="el_package">musichub.business</a> &gt; <span class="el_source">Language.java</span></div><h1>Language.java</h1><pre class="source lang-java linenums">package musichub.business;
           
          -<span class="nc" id="L3">public enum Language {</span>
          -<span class="nc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
          +<span class="fc" id="L3">public enum Language {</span>
          +<span class="fc" id="L4">    FRENCH(&quot;french&quot;), ENGLISH(&quot;english&quot;), ITALIAN(&quot;italian&quot;), SPANISH(&quot;spanish&quot;), GERMAN(&quot;german&quot;);</span>
               private final String language;
           
          -<span class="nc" id="L7">    Language(String language) {</span>
          -<span class="nc" id="L8">        this.language = language;</span>
          -<span class="nc" id="L9">    }</span>
          +<span class="fc" id="L7">    Language(String language) {</span>
          +<span class="fc" id="L8">        this.language = language;</span>
          +<span class="fc" id="L9">    }</span>
           
               public String getLanguage() {
           <span class="nc" id="L12">        return language;</span>
          diff --git a/target/site/jacoco/musichub.business/MusicHub.java.html b/target/site/jacoco/musichub.business/MusicHub.java.html
          index b9dfd09..d150675 100644
          --- a/target/site/jacoco/musichub.business/MusicHub.java.html
          +++ b/target/site/jacoco/musichub.business/MusicHub.java.html
          @@ -339,5 +339,26 @@ public class MusicHub {
           <span class="nc" id="L339">        }</span>
           
           <span class="nc" id="L341">    }</span>
          +
          +    public void searchAudioElement() throws UnsupportedAudioFileException, NoAlbumFoundException, LineUnavailableException, IOException {
          +        Scanner scanner = new Scanner(System.in);
          +        System.out.println(&quot;Entrez le titre ou l'artiste de la musique que vous souhaitez chercher dans la base de données&quot;);
          +        String word = scanner.next().toLowerCase(Locale.ROOT);
          +        List&lt;AudioElement&gt; searchResult = new ArrayList&lt;&gt;();
          +        for(AudioElement el : elements){
          +            if(el.getTitle().toLowerCase(Locale.ROOT).contains(word) || el.getArtist().toLowerCase(Locale.ROOT).contains(word)){
          +                searchResult.add(el);
          +                System.out.println(el);
          +            }
          +        }
          +
          +        if(searchResult.isEmpty()){
          +            System.err.println(&quot;Aucun résultat pour votre recherche&quot;);
          +        }
          +        if (searchResult.size()==1){
          +            this.getAudioElement(searchResult, searchResult.get(0).getTitle());
          +        }
          +    }
          +
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.html b/target/site/jacoco/musichub.business/index.html
          index 3178b04..359d516 100644
          --- a/target/site/jacoco/musichub.business/index.html
          +++ b/target/site/jacoco/musichub.business/index.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b11"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b12"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.html" class="el_class">MusicHub</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="803" alt="803"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">79</td><td class="ctr2" id="g0">79</td><td class="ctr1" id="h0">195</td><td class="ctr2" id="i0">195</td><td class="ctr1" id="j0">22</td><td class="ctr2" id="k0">22</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a href="Album.html" class="el_class">Album</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.html" class="el_class">AudioBook</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.html" class="el_class">AudioElement</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.html" class="el_class">PlayList</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="25" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j12">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a12"><a href="SortByAuthor.html" class="el_class">SortByAuthor</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">2</td><td class="ctr2" id="k9">2</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a13"><a href="SortByDate.html" class="el_class">SortByDate</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">2</td><td class="ctr2" id="k10">2</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a14"><a href="SortByGenre.html" class="el_class">SortByGenre</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">2</td><td class="ctr2" id="k11">2</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.html" class="el_class">NoAlbumFoundException</a></td><td class="bar" id="b8"/><td class="ctr2" id="c12">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k12">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.html" class="el_class">NoPlayListFoundException</a></td><td class="bar" id="b9"/><td class="ctr2" id="c13">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k13">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.html" class="el_class">NoElementFoundException</a></td><td class="bar" id="b10"/><td class="ctr2" id="c14">0 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k14">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a5"><a href="Language.html" class="el_class">Language</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a3"><a href="Category.html" class="el_class">Category</a></td><td class="bar" id="b12"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l12">0</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a11"><a href="Song.html" class="el_class">Song</a></td><td class="bar" id="b13"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f13">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h13">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j13">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l13">0</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a4"><a href="Genre.html" class="el_class">Genre</a></td><td class="bar" id="b14"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h14">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j14">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l14">0</td><td class="ctr2" id="m14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.business/index.source.html b/target/site/jacoco/musichub.business/index.source.html
          index 967ff25..21f0bb6 100644
          --- a/target/site/jacoco/musichub.business/index.source.html
          +++ b/target/site/jacoco/musichub.business/index.source.html
          @@ -1 +1 @@
          -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 551 of 2 063</td><td class="ctr2">24 %</td><td class="bar">152 of 169</td><td class="ctr2">10 %</td><td class="ctr1">143</td><td class="ctr2">172</td><td class="ctr1">381</td><td class="ctr2">499</td><td class="ctr1">59</td><td class="ctr2">81</td><td class="ctr1">11</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c4">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e3">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c5">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f2">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="164" alt="164"/></td><td class="ctr2" id="c6">0 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">17</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h2">39</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">9</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c3">68 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h3">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j4">3</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="49" alt="49"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">3</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c2">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b8"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b9"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="fr"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>musichub.business</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">spoteezer</a> &gt; <span class="el_package">musichub.business</span></div><h1>musichub.business</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1 412 of 2 063</td><td class="ctr2">31 %</td><td class="bar">150 of 169</td><td class="ctr2">11 %</td><td class="ctr1">134</td><td class="ctr2">172</td><td class="ctr1">359</td><td class="ctr2">499</td><td class="ctr1">50</td><td class="ctr2">81</td><td class="ctr1">8</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a6"><a href="MusicHub.java.html" class="el_source">MusicHub.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="830" alt="830"/></td><td class="ctr2" id="c7">0 %</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="114" alt="114"/></td><td class="ctr2" id="e4">0 %</td><td class="ctr1" id="f0">85</td><td class="ctr2" id="g0">85</td><td class="ctr1" id="h0">201</td><td class="ctr2" id="i0">201</td><td class="ctr1" id="j0">28</td><td class="ctr2" id="k0">28</td><td class="ctr1" id="l0">4</td><td class="ctr2" id="m0">4</td></tr><tr><td id="a0"><a href="Album.java.html" class="el_source">Album.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="330" alt="330"/></td><td class="ctr2" id="c8">0 %</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="14" alt="14"/></td><td class="ctr2" id="e5">0 %</td><td class="ctr1" id="f1">16</td><td class="ctr2" id="g2">16</td><td class="ctr1" id="h1">84</td><td class="ctr2" id="i1">84</td><td class="ctr1" id="j1">9</td><td class="ctr2" id="k1">9</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="AudioBook.java.html" class="el_source">AudioBook.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="117" alt="117"/><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="47" alt="47"/></td><td class="ctr2" id="c6">28 %</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">20 %</td><td class="ctr1" id="f2">12</td><td class="ctr2" id="g1">17</td><td class="ctr1" id="h3">27</td><td class="ctr2" id="i4">39</td><td class="ctr1" id="j2">4</td><td class="ctr2" id="k2">9</td><td class="ctr1" id="l5">0</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a2"><a href="AudioElement.java.html" class="el_source">AudioElement.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="85" alt="85"/><img src="../jacoco-resources/greenbar.gif" width="26" height="10" title="181" alt="181"/></td><td class="ctr2" id="c5">68 %</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="9" alt="9"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">18 %</td><td class="ctr1" id="f3">11</td><td class="ctr2" id="g3">16</td><td class="ctr1" id="h2">30</td><td class="ctr2" id="i2">72</td><td class="ctr1" id="j3">4</td><td class="ctr2" id="k3">9</td><td class="ctr1" id="l6">0</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a10"><a href="PlayList.java.html" class="el_source">PlayList.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="32" alt="32"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="170" alt="170"/></td><td class="ctr2" id="c4">84 %</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="9" alt="9"/></td><td class="ctr2" id="e1">64 %</td><td class="ctr1" id="f4">5</td><td class="ctr2" id="g4">14</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i3">53</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k4">7</td><td class="ctr1" id="l7">0</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a7"><a href="NoAlbumFoundException.java.html" class="el_source">NoAlbumFoundException.java</a></td><td class="bar" id="b5"/><td class="ctr2" id="c9">0 %</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k9">1</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a9"><a href="NoPlayListFoundException.java.html" class="el_source">NoPlayListFoundException.java</a></td><td class="bar" id="b6"/><td class="ctr2" id="c10">0 %</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k10">1</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a8"><a href="NoElementFoundException.java.html" class="el_source">NoElementFoundException.java</a></td><td class="bar" id="b7"/><td class="ctr2" id="c11">0 %</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k11">1</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a5"><a href="Language.java.html" class="el_source">Language.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c2">93 %</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k6">3</td><td class="ctr1" id="l8">0</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a3"><a href="Category.java.html" class="el_source">Category.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">93 %</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k7">3</td><td class="ctr1" id="l9">0</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a11"><a href="Song.java.html" class="el_source">Song.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="105" alt="105"/></td><td class="ctr2" id="c0">100 %</td><td class="bar" id="d5"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">100 %</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g5">12</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i5">26</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k5">7</td><td class="ctr1" id="l10">0</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a4"><a href="Genre.java.html" class="el_source">Genre.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="56" alt="56"/></td><td class="ctr2" id="c1">100 %</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">0</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h11">0</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j11">0</td><td class="ctr2" id="k8">3</td><td class="ctr1" id="l11">0</td><td class="ctr2" id="m11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
          index d86f303..bee2491 100644
          --- a/target/site/jacoco/musichub.main/Main.java.html
          +++ b/target/site/jacoco/musichub.main/Main.java.html
          @@ -13,264 +13,271 @@ import java.util.Scanner;
           import static musichub.util.PathValidation.isPathValid;
           
           <span class="nc" id="L15">public class Main {</span>
          -    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
          +    public static void main(String[] args) throws UnsupportedAudioFileException, IOException, LineUnavailableException, NoAlbumFoundException {
           
          -<span class="nc" id="L18">        MusicHub theHub = new MusicHub();</span>
          +<span class="nc" id="L18"></span>
          +        MusicHub theHub = new MusicHub();
          +<span class="nc" id="L20"></span>
          +        System.out.println(&quot;Type h for available commands&quot;);
           
          -<span class="nc" id="L20">        System.out.println(&quot;Type h for available commands&quot;);</span>
          -
          -
          -<span class="nc" id="L23">        Scanner scan = new Scanner(System.in);</span>
          -<span class="nc" id="L24">        String choice = scan.nextLine();</span>
          +<span class="nc" id="L23"></span>
          +<span class="nc" id="L24">        Scanner scan = new Scanner(System.in);</span>
          +        String choice = scan.nextLine();
           
                   String albumTitle;
          -
          -<span class="nc bnc" id="L28" title="All 2 branches missed.">        if (choice.length() == 0) System.exit(0);</span>
          -
          -<span class="nc bnc" id="L30" title="All 2 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          -<span class="nc bnc" id="L31" title="All 15 branches missed.">            switch (choice.charAt(0)) {</span>
          -                case 'q': //added the option directly in the switch instead of the loop
          -<span class="nc" id="L33">                    System.exit(0);</span>
          -                case 'h':
          -<span class="nc" id="L35">                    printAvailableCommands();</span>
          -<span class="nc" id="L36">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L37">                    break;</span>
          +<span class="nc bnc" id="L28" title="All 2 branches missed."></span>
          +        if (choice.length() == 0) System.exit(0);
          +<span class="nc bnc" id="L30" title="All 2 branches missed."></span>
          +<span class="nc bnc" id="L31" title="All 15 branches missed.">        while (!choice.equals(&quot;&quot;)) { //if the user puts nothing, quit the loop/system</span>
          +            switch (choice.charAt(0)) {
          +<span class="nc" id="L33">                case 'q': //added the option directly in the switch instead of the loop</span>
          +                    System.exit(0);
          +<span class="nc" id="L35">                case 'h':</span>
          +<span class="nc" id="L36">                    printAvailableCommands();</span>
          +<span class="nc" id="L37">                    choice = scan.nextLine();</span>
          +                    break;
                           case 't':
          -                    //album titles, ordered by date
          -<span class="nc" id="L40">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -<span class="nc" id="L41">                    printAvailableCommands();</span>
          -<span class="nc" id="L42">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L43">                    break;</span>
          +<span class="nc" id="L40">                    //album titles, ordered by date</span>
          +<span class="nc" id="L41">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          +<span class="nc" id="L42">                    printAvailableCommands();</span>
          +<span class="nc" id="L43">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'g':
          -                    //songs of an album, sorted by genre
          -<span class="nc" id="L46">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L47">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -
          -<span class="nc" id="L49">                    albumTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L51">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          -<span class="nc" id="L52">                        System.out.println(songs);</span>
          -<span class="nc" id="L53">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L54">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L55">                    }</span>
          -<span class="nc" id="L56">                    printAvailableCommands();</span>
          -<span class="nc" id="L57">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L58">                    break;</span>
          +<span class="nc" id="L46">                    //songs of an album, sorted by genre</span>
          +<span class="nc" id="L47">                    System.out.println(&quot;Songs of an album sorted by genre will be displayed; enter the album name, available albums are:&quot;);</span>
          +                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          +<span class="nc" id="L49"></span>
          +                    albumTitle = scan.nextLine();
          +<span class="nc" id="L51">                    try {</span>
          +<span class="nc" id="L52">                    	List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
          +<span class="nc" id="L53">                        System.out.println(songs);</span>
          +<span class="nc" id="L54">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L55">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L56">                    }</span>
          +<span class="nc" id="L57">                    printAvailableCommands();</span>
          +<span class="nc" id="L58">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'd':
          -                    //songs of an album
          -<span class="nc" id="L61">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          -<span class="nc" id="L62">                    System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
          -
          -<span class="nc" id="L64">                    albumTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L66">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          -<span class="nc" id="L67">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          -<span class="nc" id="L68">                        String song = scan.nextLine();</span>
          -<span class="nc" id="L69">                        theHub.getAudioElement(songs, song);</span>
          -<span class="nc" id="L70">                    } catch (NoAlbumFoundException ex) {</span>
          -<span class="nc" id="L71">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          -<span class="nc" id="L72">                    }</span>
          -<span class="nc" id="L73">                    printAvailableCommands();</span>
          -<span class="nc" id="L74">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L75">                    break;</span>
          +<span class="nc" id="L61">                    //songs of an album</span>
          +<span class="nc" id="L62">                    System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
          +                    System.out.println(theHub.getAlbumsTitlesSortedByDate());
          +<span class="nc" id="L64"></span>
          +                    albumTitle = scan.nextLine();
          +<span class="nc" id="L66">                    try {</span>
          +<span class="nc" id="L67">                    	List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
          +<span class="nc" id="L68">                        System.out.println(theHub.getAlbumSongs(albumTitle));</span>
          +<span class="nc" id="L69">                        String song = scan.nextLine();</span>
          +<span class="nc" id="L70">                        theHub.getAudioElement(songs, song);</span>
          +<span class="nc" id="L71">                    } catch (NoAlbumFoundException ex) {</span>
          +<span class="nc" id="L72">                        System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
          +<span class="nc" id="L73">                    }</span>
          +<span class="nc" id="L74">                    printAvailableCommands();</span>
          +<span class="nc" id="L75">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'u':
          -                    //audiobooks ordered by author
          -<span class="nc" id="L78">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          -<span class="nc" id="L79">                    printAvailableCommands();</span>
          -<span class="nc" id="L80">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L81">                    break;</span>
          +<span class="nc" id="L78">                    //audiobooks ordered by author</span>
          +<span class="nc" id="L79">                    System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
          +<span class="nc" id="L80">                    printAvailableCommands();</span>
          +<span class="nc" id="L81">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'c':
          -                    // add a new song
          -<span class="nc" id="L84">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          -<span class="nc" id="L85">                    System.out.println(&quot;Song title: &quot;);</span>
          -<span class="nc" id="L86">                    String title = scan.nextLine();</span>
          -<span class="nc" id="L87">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          -<span class="nc" id="L88">                    String genre = scan.nextLine();</span>
          -<span class="nc" id="L89">                    System.out.println(&quot;Song artist: &quot;);</span>
          -<span class="nc" id="L90">                    String artist = scan.nextLine();</span>
          -<span class="nc" id="L91">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          -<span class="nc" id="L92">                    int length = Integer.parseInt(scan.nextLine());</span>
          -
          -<span class="nc" id="L94">                    System.out.println(&quot;Song content: &quot;);</span>
          -<span class="nc" id="L95">                    String content = scan.nextLine();</span>
          -<span class="nc bnc" id="L96" title="All 2 branches missed.">                    if (!isPathValid(content)) {</span>
          -<span class="nc" id="L97">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          -<span class="nc" id="L98">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          -<span class="nc" id="L99">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          -<span class="nc" id="L100">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L101">                        break;</span>
          +<span class="nc" id="L84">                    // add a new song</span>
          +<span class="nc" id="L85">                    System.out.println(&quot;Enter a new song: &quot;);</span>
          +<span class="nc" id="L86">                    System.out.println(&quot;Song title: &quot;);</span>
          +<span class="nc" id="L87">                    String title = scan.nextLine();</span>
          +<span class="nc" id="L88">                    System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
          +<span class="nc" id="L89">                    String genre = scan.nextLine();</span>
          +<span class="nc" id="L90">                    System.out.println(&quot;Song artist: &quot;);</span>
          +<span class="nc" id="L91">                    String artist = scan.nextLine();</span>
          +<span class="nc" id="L92">                    System.out.println(&quot;Song length in seconds: &quot;);</span>
          +                    int length = Integer.parseInt(scan.nextLine());
          +<span class="nc" id="L94"></span>
          +<span class="nc" id="L95">                    System.out.println(&quot;Song content: &quot;);</span>
          +<span class="nc bnc" id="L96" title="All 2 branches missed.">                    String content = scan.nextLine();</span>
          +<span class="nc" id="L97">                    if (!isPathValid(content)) {</span>
          +<span class="nc" id="L98">                        String logMsg = &quot;The music file was not found with the path you've provided or the extension is not .wav&quot;;</span>
          +<span class="nc" id="L99">                        LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
          +<span class="nc" id="L100">                        System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
          +<span class="nc" id="L101">                        choice = scan.nextLine();</span>
          +                        break;
                               }
          -
          -<span class="nc" id="L104">                    Song s = new Song(title, artist, length, content, genre);</span>
          -<span class="nc" id="L105">                    theHub.addElement(s);</span>
          -<span class="nc" id="L106">                    System.out.println(&quot;New element list: &quot;);</span>
          -<span class="nc" id="L107">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          -<span class="nc bnc" id="L108" title="All 2 branches missed.">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          -<span class="nc" id="L109">                    System.out.println(&quot;Song created!&quot;);</span>
          -<span class="nc" id="L110">                    printAvailableCommands();</span>
          -<span class="nc" id="L111">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L112">                    break;</span>
          +<span class="nc" id="L104"></span>
          +<span class="nc" id="L105">                    Song s = new Song(title, artist, length, content, genre);</span>
          +<span class="nc" id="L106">                    theHub.addElement(s);</span>
          +<span class="nc" id="L107">                    System.out.println(&quot;New element list: &quot;);</span>
          +<span class="nc bnc" id="L108" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
          +<span class="nc" id="L109">                    while (it.hasNext()) System.out.println(it.next().getTitle());</span>
          +<span class="nc" id="L110">                    System.out.println(&quot;Song created!&quot;);</span>
          +<span class="nc" id="L111">                    printAvailableCommands();</span>
          +<span class="nc" id="L112">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'a':
          -                    // add a new album
          -<span class="nc" id="L115">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          -<span class="nc" id="L116">                    System.out.println(&quot;Album title: &quot;);</span>
          -<span class="nc" id="L117">                    String aTitle = scan.nextLine();</span>
          -<span class="nc" id="L118">                    System.out.println(&quot;Album artist: &quot;);</span>
          -<span class="nc" id="L119">                    String aArtist = scan.nextLine();</span>
          -<span class="nc" id="L120">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          -<span class="nc" id="L121">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L122">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          -<span class="nc" id="L123">                    String aDate = scan.nextLine();</span>
          -<span class="nc" id="L124">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          -<span class="nc" id="L125">                    theHub.addAlbum(a);</span>
          -<span class="nc" id="L126">                    System.out.println(&quot;New list of albums: &quot;);</span>
          -<span class="nc" id="L127">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          -<span class="nc bnc" id="L128" title="All 2 branches missed.">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          -<span class="nc" id="L129">                    System.out.println(&quot;Album created!&quot;);</span>
          -<span class="nc" id="L130">                    printAvailableCommands();</span>
          -<span class="nc" id="L131">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L132">                    break;</span>
          +<span class="nc" id="L115">                    // add a new album</span>
          +<span class="nc" id="L116">                    System.out.println(&quot;Enter a new album: &quot;);</span>
          +<span class="nc" id="L117">                    System.out.println(&quot;Album title: &quot;);</span>
          +<span class="nc" id="L118">                    String aTitle = scan.nextLine();</span>
          +<span class="nc" id="L119">                    System.out.println(&quot;Album artist: &quot;);</span>
          +<span class="nc" id="L120">                    String aArtist = scan.nextLine();</span>
          +<span class="nc" id="L121">                    System.out.println(&quot;Album length in seconds: &quot;);</span>
          +<span class="nc" id="L122">                    int aLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L123">                    System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
          +<span class="nc" id="L124">                    String aDate = scan.nextLine();</span>
          +<span class="nc" id="L125">                    Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
          +<span class="nc" id="L126">                    theHub.addAlbum(a);</span>
          +<span class="nc" id="L127">                    System.out.println(&quot;New list of albums: &quot;);</span>
          +<span class="nc bnc" id="L128" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ita = theHub.albums();</span>
          +<span class="nc" id="L129">                    while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
          +<span class="nc" id="L130">                    System.out.println(&quot;Album created!&quot;);</span>
          +<span class="nc" id="L131">                    printAvailableCommands();</span>
          +<span class="nc" id="L132">                    choice = scan.nextLine();</span>
          +                    break;
                           case '+':
          -                    //add a song to an album:
          -<span class="nc" id="L135">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          -<span class="nc" id="L136">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          -<span class="nc" id="L137">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          -<span class="nc bnc" id="L138" title="All 2 branches missed.">                    while (itae.hasNext()) {</span>
          -<span class="nc" id="L139">                        AudioElement ae = itae.next();</span>
          -<span class="nc bnc" id="L140" title="All 2 branches missed.">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L141">                    }</span>
          -<span class="nc" id="L142">                    String songTitle = scan.nextLine();</span>
          -
          -<span class="nc" id="L144">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          -<span class="nc" id="L145">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          -<span class="nc bnc" id="L146" title="All 2 branches missed.">                    while (ait.hasNext()) {</span>
          -<span class="nc" id="L147">                        Album al = ait.next();</span>
          -<span class="nc" id="L148">                        System.out.println(al.getTitle());</span>
          -<span class="nc" id="L149">                    }</span>
          -<span class="nc" id="L150">                    String titleAlbum = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L152">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          -<span class="nc" id="L153">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L154">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L155">                    }</span>
          -<span class="nc" id="L156">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          -<span class="nc" id="L157">                    printAvailableCommands();</span>
          -<span class="nc" id="L158">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L159">                    break;</span>
          +<span class="nc" id="L135">                    //add a song to an album:</span>
          +<span class="nc" id="L136">                    System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
          +<span class="nc" id="L137">                    System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
          +<span class="nc bnc" id="L138" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
          +<span class="nc" id="L139">                    while (itae.hasNext()) {</span>
          +<span class="nc bnc" id="L140" title="All 2 branches missed.">                        AudioElement ae = itae.next();</span>
          +<span class="nc" id="L141">                        if (ae instanceof Song) System.out.println(ae.getTitle());</span>
          +<span class="nc" id="L142">                    }</span>
          +                    String songTitle = scan.nextLine();
          +<span class="nc" id="L144"></span>
          +<span class="nc" id="L145">                    System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
          +<span class="nc bnc" id="L146" title="All 2 branches missed.">                    Iterator&lt;Album&gt; ait = theHub.albums();</span>
          +<span class="nc" id="L147">                    while (ait.hasNext()) {</span>
          +<span class="nc" id="L148">                        Album al = ait.next();</span>
          +<span class="nc" id="L149">                        System.out.println(al.getTitle());</span>
          +<span class="nc" id="L150">                    }</span>
          +                    String titleAlbum = scan.nextLine();
          +<span class="nc" id="L152">                    try {</span>
          +<span class="nc" id="L153">                        theHub.addElementToAlbum(songTitle, titleAlbum);</span>
          +<span class="nc" id="L154">                    } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L155">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L156">                    }</span>
          +<span class="nc" id="L157">                    System.out.println(&quot;Song added to the album!&quot;);</span>
          +<span class="nc" id="L158">                    printAvailableCommands();</span>
          +<span class="nc" id="L159">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'l':
          -                    // add a new audiobook
          -<span class="nc" id="L162">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          -<span class="nc" id="L163">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          -<span class="nc" id="L164">                    String bTitle = scan.nextLine();</span>
          -<span class="nc" id="L165">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          -<span class="nc" id="L166">                    String bCategory = scan.nextLine();</span>
          -<span class="nc" id="L167">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          -<span class="nc" id="L168">                    String bArtist = scan.nextLine();</span>
          -<span class="nc" id="L169">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          -<span class="nc" id="L170">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          -<span class="nc" id="L171">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          -<span class="nc" id="L172">                    String bContent = scan.nextLine();</span>
          -<span class="nc" id="L173">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          -<span class="nc" id="L174">                    String bLanguage = scan.nextLine();</span>
          -<span class="nc" id="L175">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          -<span class="nc" id="L176">                    theHub.addElement(b);</span>
          -<span class="nc" id="L177">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          -<span class="nc" id="L178">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          -<span class="nc bnc" id="L179" title="All 2 branches missed.">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          -<span class="nc" id="L180">                    printAvailableCommands();</span>
          -<span class="nc" id="L181">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L182">                    break;</span>
          +<span class="nc" id="L162">                    // add a new audiobook</span>
          +<span class="nc" id="L163">                    System.out.println(&quot;Enter a new audiobook: &quot;);</span>
          +<span class="nc" id="L164">                    System.out.println(&quot;AudioBook title: &quot;);</span>
          +<span class="nc" id="L165">                    String bTitle = scan.nextLine();</span>
          +<span class="nc" id="L166">                    System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
          +<span class="nc" id="L167">                    String bCategory = scan.nextLine();</span>
          +<span class="nc" id="L168">                    System.out.println(&quot;AudioBook artist: &quot;);</span>
          +<span class="nc" id="L169">                    String bArtist = scan.nextLine();</span>
          +<span class="nc" id="L170">                    System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
          +<span class="nc" id="L171">                    int bLength = Integer.parseInt(scan.nextLine());</span>
          +<span class="nc" id="L172">                    System.out.println(&quot;AudioBook content: &quot;);</span>
          +<span class="nc" id="L173">                    String bContent = scan.nextLine();</span>
          +<span class="nc" id="L174">                    System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
          +<span class="nc" id="L175">                    String bLanguage = scan.nextLine();</span>
          +<span class="nc" id="L176">                    AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
          +<span class="nc" id="L177">                    theHub.addElement(b);</span>
          +<span class="nc" id="L178">                    System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
          +<span class="nc bnc" id="L179" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
          +<span class="nc" id="L180">                    while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
          +<span class="nc" id="L181">                    printAvailableCommands();</span>
          +<span class="nc" id="L182">                    choice = scan.nextLine();</span>
          +                    break;
                           case 'p':
          -                    //create a new playlist from existing elements
          -<span class="nc" id="L185">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          -<span class="nc" id="L186">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          -<span class="nc" id="L187">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          -<span class="nc bnc" id="L188" title="All 2 branches missed.">                    while (itpl.hasNext()) {</span>
          -<span class="nc" id="L189">                        PlayList pl = itpl.next();</span>
          -<span class="nc" id="L190">                        System.out.println(pl.getTitle());</span>
          -<span class="nc" id="L191">                    }</span>
          -<span class="nc" id="L192">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          -<span class="nc" id="L193">                    String playListTitle = scan.nextLine();</span>
          -<span class="nc" id="L194">                    PlayList pl = new PlayList(playListTitle);</span>
          -<span class="nc" id="L195">                    theHub.addPlaylist(pl);</span>
          -<span class="nc" id="L196">                    System.out.println(&quot;Available elements: &quot;);</span>
          -
          -<span class="nc" id="L198">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          -<span class="nc bnc" id="L199" title="All 2 branches missed.">                    while (itael.hasNext()) {</span>
          -<span class="nc" id="L200">                        AudioElement ae = itael.next();</span>
          -<span class="nc" id="L201">                        System.out.println(ae.getTitle());</span>
          -<span class="nc" id="L202">                    }</span>
          -<span class="nc bnc" id="L203" title="All 2 branches missed.">                    while (choice.charAt(0) != 'n') {</span>
          -<span class="nc" id="L204">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          -<span class="nc" id="L205">                        String elementTitle = scan.nextLine();</span>
          -                        try {
          -<span class="nc" id="L207">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          -<span class="nc" id="L208">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          -<span class="nc" id="L209">                            System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L210">                        }</span>
          -
          -<span class="nc" id="L212">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          -<span class="nc" id="L213">                        choice = scan.nextLine();</span>
          -<span class="nc" id="L214">                    }</span>
          -<span class="nc" id="L215">                    System.out.println(&quot;Playlist created!&quot;);</span>
          -<span class="nc" id="L216">                    printAvailableCommands();</span>
          -<span class="nc" id="L217">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L218">                    break;</span>
          +<span class="nc" id="L185">                    //create a new playlist from existing elements</span>
          +<span class="nc" id="L186">                    System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
          +<span class="nc" id="L187">                    System.out.println(&quot;Existing playlists:&quot;);</span>
          +<span class="nc bnc" id="L188" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
          +<span class="nc" id="L189">                    while (itpl.hasNext()) {</span>
          +<span class="nc" id="L190">                        PlayList pl = itpl.next();</span>
          +<span class="nc" id="L191">                        System.out.println(pl.getTitle());</span>
          +<span class="nc" id="L192">                    }</span>
          +<span class="nc" id="L193">                    System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
          +<span class="nc" id="L194">                    String playListTitle = scan.nextLine();</span>
          +<span class="nc" id="L195">                    PlayList pl = new PlayList(playListTitle);</span>
          +<span class="nc" id="L196">                    theHub.addPlaylist(pl);</span>
          +                    System.out.println(&quot;Available elements: &quot;);
          +<span class="nc" id="L198"></span>
          +<span class="nc bnc" id="L199" title="All 2 branches missed.">                    Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
          +<span class="nc" id="L200">                    while (itael.hasNext()) {</span>
          +<span class="nc" id="L201">                        AudioElement ae = itael.next();</span>
          +<span class="nc" id="L202">                        System.out.println(ae.getTitle());</span>
          +<span class="nc bnc" id="L203" title="All 2 branches missed.">                    }</span>
          +<span class="nc" id="L204">                    while (choice.charAt(0) != 'n') {</span>
          +<span class="nc" id="L205">                        System.out.println(&quot;Type the name of the audio element you wish to add or 'n' to exit:&quot;);</span>
          +                        String elementTitle = scan.nextLine();
          +<span class="nc" id="L207">                        try {</span>
          +<span class="nc" id="L208">                            theHub.addElementToPlayList(elementTitle, playListTitle);</span>
          +<span class="nc" id="L209">                        } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
          +<span class="nc" id="L210">                            System.out.println(ex.getMessage());</span>
          +                        }
          +<span class="nc" id="L212"></span>
          +<span class="nc" id="L213">                        System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
          +<span class="nc" id="L214">                        choice = scan.nextLine();</span>
          +<span class="nc" id="L215">                    }</span>
          +<span class="nc" id="L216">                    System.out.println(&quot;Playlist created!&quot;);</span>
          +<span class="nc" id="L217">                    printAvailableCommands();</span>
          +<span class="nc" id="L218">                    choice = scan.nextLine();</span>
          +                    break;
                           case '-':
          -                    //delete a playlist
          -<span class="nc" id="L221">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          -<span class="nc" id="L222">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          -<span class="nc bnc" id="L223" title="All 2 branches missed.">                    while (itp.hasNext()) {</span>
          -<span class="nc" id="L224">                        PlayList p = itp.next();</span>
          -<span class="nc" id="L225">                        System.out.println(p.getTitle());</span>
          -<span class="nc" id="L226">                    }</span>
          -<span class="nc" id="L227">                    String plTitle = scan.nextLine();</span>
          -                    try {
          -<span class="nc" id="L229">                        theHub.deletePlayList(plTitle);</span>
          -<span class="nc" id="L230">                    } catch (NoPlayListFoundException ex) {</span>
          -<span class="nc" id="L231">                        System.out.println(ex.getMessage());</span>
          -<span class="nc" id="L232">                    }</span>
          -<span class="nc" id="L233">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          -<span class="nc" id="L234">                    printAvailableCommands();</span>
          -<span class="nc" id="L235">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L236">                    break;</span>
          +<span class="nc" id="L221">                    //delete a playlist</span>
          +<span class="nc" id="L222">                    System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
          +<span class="nc bnc" id="L223" title="All 2 branches missed.">                    Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
          +<span class="nc" id="L224">                    while (itp.hasNext()) {</span>
          +<span class="nc" id="L225">                        PlayList p = itp.next();</span>
          +<span class="nc" id="L226">                        System.out.println(p.getTitle());</span>
          +<span class="nc" id="L227">                    }</span>
          +                    String plTitle = scan.nextLine();
          +<span class="nc" id="L229">                    try {</span>
          +<span class="nc" id="L230">                        theHub.deletePlayList(plTitle);</span>
          +<span class="nc" id="L231">                    } catch (NoPlayListFoundException ex) {</span>
          +<span class="nc" id="L232">                        System.out.println(ex.getMessage());</span>
          +<span class="nc" id="L233">                    }</span>
          +<span class="nc" id="L234">                    System.out.println(&quot;Playlist deleted!&quot;);</span>
          +<span class="nc" id="L235">                    printAvailableCommands();</span>
          +<span class="nc" id="L236">                    choice = scan.nextLine();</span>
          +                    break;
                           case 's':
          -                    //save elements, albums, playlists
          -<span class="nc" id="L239">                    theHub.saveElements();</span>
          -<span class="nc" id="L240">                    theHub.saveAlbums();</span>
          -<span class="nc" id="L241">                    theHub.savePlayLists();</span>
          -<span class="nc" id="L242">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          -<span class="nc" id="L243">                    printAvailableCommands();</span>
          -<span class="nc" id="L244">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L245">                    break;</span>
          -                case 'o':
          +<span class="nc" id="L239">                    //save elements, albums, playlists</span>
          +<span class="nc" id="L240">                    theHub.saveElements();</span>
          +<span class="nc" id="L241">                    theHub.saveAlbums();</span>
          +<span class="nc" id="L242">                    theHub.savePlayLists();</span>
          +<span class="nc" id="L243">                    System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
          +<span class="nc" id="L244">                    printAvailableCommands();</span>
          +<span class="nc" id="L245">                    choice = scan.nextLine();</span>
          +                    break;
          +                case 'r':
          +<span class="nc" id="L248">                    //search a music</span>
          +<span class="nc" id="L249">                    theHub.searchAudioElement();</span>
          +<span class="nc" id="L250">                    printAvailableCommands();</span>
          +<span class="nc" id="L251">                case 'o':</span>
                               //consult the app logs
          -<span class="nc" id="L248">                    LogHandler.read();</span>
          -<span class="nc" id="L249">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          -<span class="nc" id="L250">                    choice = scan.nextLine();</span>
          -<span class="nc" id="L251">                    break;</span>
          -                default:
          -
          -<span class="nc" id="L254">                    break;</span>
          +                    LogHandler.read();
          +<span class="nc" id="L254">                    System.out.println(&quot;Type h for available commands&quot;);</span>
          +                    choice = scan.nextLine();
          +                    break;
          +<span class="nc" id="L257">                default:</span>
          +<span class="nc" id="L258"></span>
          +                    break;
                       }
          -        }
          -<span class="nc" id="L257">        scan.close();</span>
          -<span class="nc" id="L258">    }</span>
          +<span class="nc" id="L261">        }</span>
          +<span class="nc" id="L262">        scan.close();</span>
          +<span class="nc" id="L263">    }</span>
          +<span class="nc" id="L264"></span>
          +<span class="nc" id="L265">    private static void printAvailableCommands() {</span>
          +<span class="nc" id="L266">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          +<span class="nc" id="L267">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          +<span class="nc" id="L268">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          +<span class="nc" id="L269">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          +<span class="nc" id="L270">        System.out.println(&quot;r: search audio elements&quot;);</span>
          +<span class="nc" id="L271">        System.out.println(&quot;c: add a new song&quot;);</span>
          +<span class="nc" id="L272">        System.out.println(&quot;a: add a new album&quot;);</span>
          +<span class="nc" id="L273">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          +<span class="nc" id="L274">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          +        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);
          +        System.out.println(&quot;-: delete an existing playlist&quot;);
          +        System.out.println(&quot;s: save elements, albums, playlists&quot;);
          +        System.out.println(&quot;o: consult the app logs&quot;);
          +        System.out.println(&quot;q: quit program&quot;);
          +    }
           
          -    private static void printAvailableCommands() {
          -<span class="nc" id="L261">        System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
          -<span class="nc" id="L262">        System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
          -<span class="nc" id="L263">        System.out.println(&quot;d: display songs of an album&quot;);</span>
          -<span class="nc" id="L264">        System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
          -<span class="nc" id="L265">        System.out.println(&quot;c: add a new song&quot;);</span>
          -<span class="nc" id="L266">        System.out.println(&quot;a: add a new album&quot;);</span>
          -<span class="nc" id="L267">        System.out.println(&quot;+: add a song to an album&quot;);</span>
          -<span class="nc" id="L268">        System.out.println(&quot;l: add a new audiobook&quot;);</span>
          -<span class="nc" id="L269">        System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
          -<span class="nc" id="L270">        System.out.println(&quot;-: delete an existing playlist&quot;);</span>
          -<span class="nc" id="L271">        System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
          -<span class="nc" id="L272">        System.out.println(&quot;o: consult the app logs&quot;);</span>
          -<span class="nc" id="L273">        System.out.println(&quot;q: quit program&quot;);</span>
          -<span class="nc" id="L274">    }</span>
           }
           </pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.7.202105040129</span></div></body></html>
          \ No newline at end of file
          diff --git a/target/site/jacoco/musichub.util/PathValidation.java.html b/target/site/jacoco/musichub.util/PathValidation.java.html
          index 7518e59..c7a0f92 100644
          --- a/target/site/jacoco/musichub.util/PathValidation.java.html
          +++ b/target/site/jacoco/musichub.util/PathValidation.java.html
          @@ -32,13 +32,13 @@ public final class PathValidation {
                */
           
               public static boolean isPathValid(String inputPath) {
          -<span class="fc" id="L35">        boolean isExtensionValid=false;</span>
          +<span class="fc" id="L35">        boolean isExtensionValid = false;</span>
           
           <span class="fc" id="L37">        int index = inputPath.lastIndexOf('.');</span>
          -<span class="fc bfc" id="L38" title="All 2 branches covered.">        if(index &gt; 0) {</span>
          +<span class="fc bfc" id="L38" title="All 2 branches covered.">        if (index &gt; 0) {</span>
           <span class="fc" id="L39">            String extension = inputPath.substring(index + 1);</span>
          -<span class="fc bfc" id="L40" title="All 2 branches covered.">            if (extension.equals(&quot;wav&quot;)){</span>
          -<span class="fc" id="L41">                isExtensionValid=true;</span>
          +<span class="fc bfc" id="L40" title="All 2 branches covered.">            if (extension.equals(&quot;wav&quot;)) {</span>
          +<span class="fc" id="L41">                isExtensionValid = true;</span>
                       }
                   }
           
          diff --git a/target/spoteezer-0.1.0-shaded.jar b/target/spoteezer-0.1.0-shaded.jar
          new file mode 100644
          index 0000000..eb07fdf
          Binary files /dev/null and b/target/spoteezer-0.1.0-shaded.jar differ
          diff --git a/target/spoteezer-0.1.0.jar b/target/spoteezer-0.1.0.jar
          new file mode 100644
          index 0000000..eb07fdf
          Binary files /dev/null and b/target/spoteezer-0.1.0.jar differ
          diff --git a/target/surefire-reports/TEST-musichub.business.CategoryTest.xml b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          new file mode 100644
          index 0000000..8ce59e6
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.CategoryTest.xml
          @@ -0,0 +1,59 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.CategoryTest" time="0.048" tests="1" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetter" classname="musichub.business.CategoryTest" time="0.045"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          index 088ebdd..c41bab0 100644
          --- a/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          +++ b/target/surefire-reports/TEST-musichub.business.LanguageTest.xml
          @@ -1,57 +1,58 @@
           <?xml version="1.0" encoding="UTF-8"?>
          -<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.LanguageTest" time="0" tests="1" errors="0" skipped="0" failures="0">
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.LanguageTest" time="0.001" tests="1" errors="0" skipped="0" failures="0">
             <properties>
               <property name="java.specification.version" value="16"/>
          -    <property name="sun.jnu.encoding" value="UTF-8"/>
          -    <property name="java.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          -    <property name="java.vm.vendor" value="Homebrew"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
               <property name="sun.arch.data.model" value="64"/>
          -    <property name="java.vendor.url" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="os.name" value="Mac OS X"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
               <property name="java.vm.specification.version" value="16"/>
               <property name="sun.java.launcher" value="SUN_STANDARD"/>
               <property name="user.country" value="FR"/>
          -    <property name="sun.boot.library.path" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home/lib"/>
          -    <property name="sun.java.command" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar /Users/saidbelhadj/Documents/spoteeze/target/surefire 2021-06-27T16-03-35_612-jvmRun1 surefire3577178680756599794tmp surefire_06826483022491615857tmp"/>
          -    <property name="http.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
               <property name="jdk.debug" value="release"/>
          -    <property name="surefire.test.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/test-classes:/Users/saidbelhadj/Documents/spoteeze/target/classes:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-api/5.0.2/junit-jupiter-api-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/opentest4j/opentest4j/1.0.0/opentest4j-1.0.0.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-commons/1.0.2/junit-platform-commons-1.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/jupiter/junit-jupiter-engine/5.0.2/junit-jupiter-engine-5.0.2.jar:/Users/saidbelhadj/.m2/repository/org/junit/platform/junit-platform-engine/1.0.2/junit-platform-engine-1.0.2.jar:"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
               <property name="sun.cpu.endian" value="little"/>
          -    <property name="user.home" value="/Users/saidbelhadj"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
               <property name="user.language" value="fr"/>
               <property name="java.specification.vendor" value="Oracle Corporation"/>
               <property name="java.version.date" value="2021-04-20"/>
          -    <property name="java.home" value="/usr/local/Cellar/openjdk/16.0.1/libexec/openjdk.jdk/Contents/Home"/>
          -    <property name="file.separator" value="/"/>
          -    <property name="basedir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
               <property name="java.vm.compressedOopsMode" value="Zero based"/>
               <property name="line.separator" value="&#10;"/>
          -    <property name="java.specification.name" value="Java Platform API Specification"/>
               <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          -    <property name="surefire.real.class.path" value="/Users/saidbelhadj/Documents/spoteeze/target/surefire/surefirebooter9607216078417480605.jar"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
               <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          -    <property name="ftp.nonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          -    <property name="java.runtime.version" value="16.0.1+0"/>
          -    <property name="user.name" value="saidbelhadj"/>
          -    <property name="path.separator" value=":"/>
          -    <property name="os.version" value="11.2.3"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
               <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          -    <property name="file.encoding" value="UTF-8"/>
          +    <property name="file.encoding" value="Cp1252"/>
               <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          -    <property name="java.vendor.version" value="Homebrew"/>
          -    <property name="localRepository" value="/Users/saidbelhadj/.m2/repository"/>
          -    <property name="java.vendor.url.bug" value="https://github.com/Homebrew/homebrew-core/issues"/>
          -    <property name="java.io.tmpdir" value="/var/folders/ym/wj3693wx6fdggpnvqkzls90r0000gn/T/"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
               <property name="java.version" value="16.0.1"/>
          -    <property name="user.dir" value="/Users/saidbelhadj/Documents/spoteeze"/>
          -    <property name="os.arch" value="x86_64"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
               <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          -    <property name="java.library.path" value="/Users/saidbelhadj/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:."/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
               <property name="java.vm.info" value="mixed mode, sharing"/>
          -    <property name="java.vendor" value="Homebrew"/>
          -    <property name="java.vm.version" value="16.0.1+0"/>
          -    <property name="sun.io.unicode.encoding" value="UnicodeBig"/>
          -    <property name="socksNonProxyHosts" value="local|*.local|169.254/16|*.169.254/16"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
               <property name="java.class.version" value="60.0"/>
             </properties>
             <testcase name="testGetter" classname="musichub.business.LanguageTest" time="0"/>
          diff --git a/target/surefire-reports/TEST-musichub.business.PlayListTest.xml b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          new file mode 100644
          index 0000000..3bf4556
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.PlayListTest.xml
          @@ -0,0 +1,63 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.PlayListTest" time="0.019" tests="5" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetTitle" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testPlaylistClass" classname="musichub.business.PlayListTest" time="0.001"/>
          +  <testcase name="testPlaylistClassXML" classname="musichub.business.PlayListTest" time="0.007"/>
          +  <testcase name="testCreateXMLElement" classname="musichub.business.PlayListTest" time="0"/>
          +  <testcase name="testGetElements" classname="musichub.business.PlayListTest" time="0.001"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.business.SongTest.xml b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          new file mode 100644
          index 0000000..83aee37
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.business.SongTest.xml
          @@ -0,0 +1,64 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.business.SongTest" time="0.014" tests="6" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testGetGenre" classname="musichub.business.SongTest" time="0"/>
          +  <testcase name="testToString" classname="musichub.business.SongTest" time="0.005"/>
          +  <testcase name="testSongClassXML" classname="musichub.business.SongTest" time="0.002"/>
          +  <testcase name="testCreateXMLElement" classname="musichub.business.SongTest" time="0"/>
          +  <testcase name="testSongClass" classname="musichub.business.SongTest" time="0.001"/>
          +  <testcase name="testSetGenre" classname="musichub.business.SongTest" time="0.001"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          new file mode 100644
          index 0000000..754079a
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.LogHandlerTest.xml
          @@ -0,0 +1,61 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.LogHandlerTest" time="0.023" tests="3" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testLogHandlerClass" classname="musichub.util.LogHandlerTest" time="0"/>
          +  <testcase name="testWrite" classname="musichub.util.LogHandlerTest" time="0.003"/>
          +  <testcase name="testRead" classname="musichub.util.LogHandlerTest" time="0.019"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          new file mode 100644
          index 0000000..8f4f524
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.PathValidationTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.PathValidationTest" time="0.001" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testPathValidationClass" classname="musichub.util.PathValidationTest" time="0"/>
          +  <testcase name="testIsPathValid" classname="musichub.util.PathValidationTest" time="0"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          new file mode 100644
          index 0000000..72a1c5b
          --- /dev/null
          +++ b/target/surefire-reports/TEST-musichub.util.XMLHandlerTest.xml
          @@ -0,0 +1,60 @@
          +<?xml version="1.0" encoding="UTF-8"?>
          +<testsuite xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://maven.apache.org/surefire/maven-surefire-plugin/xsd/surefire-test-report.xsd" name="musichub.util.XMLHandlerTest" time="0.127" tests="2" errors="0" skipped="0" failures="0">
          +  <properties>
          +    <property name="java.specification.version" value="16"/>
          +    <property name="sun.cpu.isalist" value="amd64"/>
          +    <property name="sun.jnu.encoding" value="Cp1252"/>
          +    <property name="java.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="java.vm.vendor" value="Oracle Corporation"/>
          +    <property name="sun.arch.data.model" value="64"/>
          +    <property name="user.variant" value=""/>
          +    <property name="java.vendor.url" value="https://java.oracle.com/"/>
          +    <property name="user.timezone" value="Europe/Paris"/>
          +    <property name="os.name" value="Windows 10"/>
          +    <property name="java.vm.specification.version" value="16"/>
          +    <property name="sun.java.launcher" value="SUN_STANDARD"/>
          +    <property name="user.country" value="FR"/>
          +    <property name="sun.boot.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin"/>
          +    <property name="sun.java.command" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598 2021-06-27T18-57-01_873-jvmRun1 surefire498687555270627259tmp surefire_013011769971488251120tmp"/>
          +    <property name="jdk.debug" value="release"/>
          +    <property name="surefire.test.class.path" value="C:\Users\SoftA\Documents\spoteezer\target\test-classes;C:\Users\SoftA\Documents\spoteezer\target\classes;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.0.2\junit-jupiter-api-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\opentest4j\opentest4j\1.0.0\opentest4j-1.0.0.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-commons\1.0.2\junit-platform-commons-1.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.0.2\junit-jupiter-engine-5.0.2.jar;C:\Users\SoftA\.m2\repository\org\junit\platform\junit-platform-engine\1.0.2\junit-platform-engine-1.0.2.jar;"/>
          +    <property name="sun.cpu.endian" value="little"/>
          +    <property name="user.home" value="C:\Users\SoftA"/>
          +    <property name="user.language" value="fr"/>
          +    <property name="java.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.version.date" value="2021-04-20"/>
          +    <property name="java.home" value="C:\Users\SoftA\.jdks\openjdk-16.0.1"/>
          +    <property name="file.separator" value="\"/>
          +    <property name="basedir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="java.vm.compressedOopsMode" value="Zero based"/>
          +    <property name="line.separator" value="&#10;"/>
          +    <property name="java.vm.specification.vendor" value="Oracle Corporation"/>
          +    <property name="java.specification.name" value="Java Platform API Specification"/>
          +    <property name="surefire.real.class.path" value="C:\Users\SoftA\AppData\Local\Temp\surefire16427515461616516598\surefirebooter6875707088602679262.jar"/>
          +    <property name="user.script" value=""/>
          +    <property name="sun.management.compiler" value="HotSpot 64-Bit Tiered Compilers"/>
          +    <property name="java.runtime.version" value="16.0.1+9-24"/>
          +    <property name="user.name" value="SoftA"/>
          +    <property name="path.separator" value=";"/>
          +    <property name="os.version" value="10.0"/>
          +    <property name="java.runtime.name" value="OpenJDK Runtime Environment"/>
          +    <property name="file.encoding" value="Cp1252"/>
          +    <property name="java.vm.name" value="OpenJDK 64-Bit Server VM"/>
          +    <property name="localRepository" value="C:\Users\SoftA\.m2\repository"/>
          +    <property name="java.vendor.url.bug" value="https://bugreport.java.com/bugreport/"/>
          +    <property name="java.io.tmpdir" value="C:\Users\SoftA\AppData\Local\Temp\"/>
          +    <property name="java.version" value="16.0.1"/>
          +    <property name="user.dir" value="C:\Users\SoftA\Documents\spoteezer"/>
          +    <property name="os.arch" value="amd64"/>
          +    <property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
          +    <property name="sun.os.patch.level" value=""/>
          +    <property name="java.library.path" value="C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Oculus\Support\oculus-runtime;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Git\cmd;C:\Users\SoftA\.jdks\openjdk-16.0.1\bin;C:\Users\SoftA\AppData\Local\Microsoft\WindowsApps;C:\ffmpeg\bin;C:\apache-maven-3.8.1\bin;;."/>
          +    <property name="java.vm.info" value="mixed mode, sharing"/>
          +    <property name="java.vendor" value="Oracle Corporation"/>
          +    <property name="java.vm.version" value="16.0.1+9-24"/>
          +    <property name="sun.io.unicode.encoding" value="UnicodeLittle"/>
          +    <property name="java.class.version" value="60.0"/>
          +  </properties>
          +  <testcase name="testParseXMLFile" classname="musichub.util.XMLHandlerTest" time="0.127"/>
          +  <testcase name="testCreateXML" classname="musichub.util.XMLHandlerTest" time="0"/>
          +</testsuite>
          \ No newline at end of file
          diff --git a/target/surefire-reports/musichub.business.CategoryTest.txt b/target/surefire-reports/musichub.business.CategoryTest.txt
          new file mode 100644
          index 0000000..b3656ab
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.CategoryTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.CategoryTest
          +-------------------------------------------------------------------------------
          +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 s - in musichub.business.CategoryTest
          diff --git a/target/surefire-reports/musichub.business.LanguageTest.txt b/target/surefire-reports/musichub.business.LanguageTest.txt
          new file mode 100644
          index 0000000..7fd1a58
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.LanguageTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.LanguageTest
          +-------------------------------------------------------------------------------
          +Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in musichub.business.LanguageTest
          diff --git a/target/surefire-reports/musichub.business.PlayListTest.txt b/target/surefire-reports/musichub.business.PlayListTest.txt
          new file mode 100644
          index 0000000..7109820
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.PlayListTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.PlayListTest
          +-------------------------------------------------------------------------------
          +Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.019 s - in musichub.business.PlayListTest
          diff --git a/target/surefire-reports/musichub.business.SongTest.txt b/target/surefire-reports/musichub.business.SongTest.txt
          new file mode 100644
          index 0000000..1b93b96
          --- /dev/null
          +++ b/target/surefire-reports/musichub.business.SongTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.business.SongTest
          +-------------------------------------------------------------------------------
          +Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.014 s - in musichub.business.SongTest
          diff --git a/target/surefire-reports/musichub.util.LogHandlerTest.txt b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          new file mode 100644
          index 0000000..14d9938
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.LogHandlerTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.LogHandlerTest
          +-------------------------------------------------------------------------------
          +Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.023 s - in musichub.util.LogHandlerTest
          diff --git a/target/surefire-reports/musichub.util.PathValidationTest.txt b/target/surefire-reports/musichub.util.PathValidationTest.txt
          new file mode 100644
          index 0000000..39ffd40
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.PathValidationTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.PathValidationTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 s - in musichub.util.PathValidationTest
          diff --git a/target/surefire-reports/musichub.util.XMLHandlerTest.txt b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          new file mode 100644
          index 0000000..71a2254
          --- /dev/null
          +++ b/target/surefire-reports/musichub.util.XMLHandlerTest.txt
          @@ -0,0 +1,4 @@
          +-------------------------------------------------------------------------------
          +Test set: musichub.util.XMLHandlerTest
          +-------------------------------------------------------------------------------
          +Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.127 s - in musichub.util.XMLHandlerTest
          diff --git a/target/test-classes/musichub/business/CategoryTest.class b/target/test-classes/musichub/business/CategoryTest.class
          new file mode 100644
          index 0000000..df89247
          Binary files /dev/null and b/target/test-classes/musichub/business/CategoryTest.class differ
          diff --git a/target/test-classes/musichub/business/LanguageTest.class b/target/test-classes/musichub/business/LanguageTest.class
          new file mode 100644
          index 0000000..c340860
          Binary files /dev/null and b/target/test-classes/musichub/business/LanguageTest.class differ
          diff --git a/target/test-classes/musichub/business/PlayListTest.class b/target/test-classes/musichub/business/PlayListTest.class
          new file mode 100644
          index 0000000..8a57bea
          Binary files /dev/null and b/target/test-classes/musichub/business/PlayListTest.class differ
          diff --git a/target/test-classes/musichub/business/SongTest.class b/target/test-classes/musichub/business/SongTest.class
          new file mode 100644
          index 0000000..a2c161f
          Binary files /dev/null and b/target/test-classes/musichub/business/SongTest.class differ
          diff --git a/target/test-classes/musichub/util/LogHandlerTest.class b/target/test-classes/musichub/util/LogHandlerTest.class
          new file mode 100644
          index 0000000..fc51cb6
          Binary files /dev/null and b/target/test-classes/musichub/util/LogHandlerTest.class differ
          diff --git a/target/test-classes/musichub/util/PathValidationTest.class b/target/test-classes/musichub/util/PathValidationTest.class
          new file mode 100644
          index 0000000..4e4eb83
          Binary files /dev/null and b/target/test-classes/musichub/util/PathValidationTest.class differ
          diff --git a/target/test-classes/musichub/util/XMLHandlerTest.class b/target/test-classes/musichub/util/XMLHandlerTest.class
          new file mode 100644
          index 0000000..f7994d8
          Binary files /dev/null and b/target/test-classes/musichub/util/XMLHandlerTest.class differ
          -- 
          cgit v1.2.3