aboutsummaryrefslogtreecommitdiff
path: root/target/site/jacoco/musichub.main/Main.java.html
diff options
context:
space:
mode:
Diffstat (limited to 'target/site/jacoco/musichub.main/Main.java.html')
-rw-r--r--target/site/jacoco/musichub.main/Main.java.html429
1 files changed, 236 insertions, 193 deletions
diff --git a/target/site/jacoco/musichub.main/Main.java.html b/target/site/jacoco/musichub.main/Main.java.html
index 121cc55..d2b3fb0 100644
--- a/target/site/jacoco/musichub.main/Main.java.html
+++ b/target/site/jacoco/musichub.main/Main.java.html
@@ -31,7 +31,7 @@ import static musichub.util.Policy.showTerm;
<span class="nc bnc" id="L31" title="All 2 branches missed."> if (choice.length() == 0) System.exit(0);</span>
<span class="nc bnc" id="L33" 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="L34" title="All 16 branches missed."> switch (choice.charAt(0)) {</span>
+<span class="nc bnc" id="L34" title="All 17 branches missed."> switch (choice.charAt(0)) {</span>
case 'q': //added the option directly in the switch instead of the loop
<span class="nc" id="L36"> System.exit(0);</span>
case 'h':
@@ -54,240 +54,283 @@ import static musichub.util.Policy.showTerm;
<span class="nc" id="L54"> List&lt;Song&gt; songs = theHub.getAlbumSongsSortedByGenre(albumTitle);</span>
<span class="nc" id="L55"> System.out.println(songs);</span>
<span class="nc" id="L56"> } catch (NoAlbumFoundException ex) {</span>
-<span class="nc" id="L57"> System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
-<span class="nc" id="L58"> }</span>
-<span class="nc" id="L59"> printAvailableCommands();</span>
-<span class="nc" id="L60"> choice = scan.nextLine();</span>
-<span class="nc" id="L61"> break;</span>
+<span class="nc" id="L57"> LogHandler.write(&quot;No album found with the requested title&quot;, &quot;WARNING&quot;);</span>
+<span class="nc" id="L58"> System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
+<span class="nc" id="L59"> }</span>
+<span class="nc" id="L60"> printAvailableCommands();</span>
+<span class="nc" id="L61"> choice = scan.nextLine();</span>
+<span class="nc" id="L62"> break;</span>
case 'd':
//songs of an album
-<span class="nc" id="L64"> System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
-<span class="nc" id="L65"> System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
+<span class="nc" id="L65"> System.out.println(&quot;Songs of an album will be displayed; enter the album name, available albums are:&quot;);</span>
+<span class="nc" id="L66"> System.out.println(theHub.getAlbumsTitlesSortedByDate());</span>
-<span class="nc" id="L67"> albumTitle = scan.nextLine();</span>
+<span class="nc" id="L68"> albumTitle = scan.nextLine();</span>
try {
-<span class="nc" id="L69"> List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
-<span class="nc" id="L70"> System.out.println(theHub.getAlbumSongs(albumTitle));</span>
-<span class="nc" id="L71"> String song = scan.nextLine();</span>
-<span class="nc" id="L72"> theHub.getAudioElement(songs, song);</span>
-<span class="nc" id="L73"> } catch (NoAlbumFoundException ex) {</span>
-<span class="nc" id="L74"> System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
-<span class="nc" id="L75"> }</span>
-<span class="nc" id="L76"> printAvailableCommands();</span>
-<span class="nc" id="L77"> choice = scan.nextLine();</span>
-<span class="nc" id="L78"> break;</span>
+<span class="nc" id="L70"> List&lt;AudioElement&gt; songs = theHub.getAlbumSongs(albumTitle);</span>
+<span class="nc" id="L71"> System.out.println(theHub.getAlbumSongs(albumTitle));</span>
+<span class="nc" id="L72"> String song = scan.nextLine();</span>
+<span class="nc" id="L73"> theHub.getAudioElement(songs, song);</span>
+<span class="nc" id="L74"> } catch (NoAlbumFoundException ex) {</span>
+<span class="nc" id="L75"> LogHandler.write(&quot;No album found with the requested title&quot;, &quot;WARNING&quot;);</span>
+<span class="nc" id="L76"> System.out.println(&quot;No album found with the requested title &quot; + ex.getMessage());</span>
+<span class="nc" id="L77"> }</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 'u':
//audiobooks ordered by author
-<span class="nc" id="L81"> System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
-<span class="nc" id="L82"> printAvailableCommands();</span>
-<span class="nc" id="L83"> choice = scan.nextLine();</span>
-<span class="nc" id="L84"> break;</span>
+<span class="nc" id="L83"> System.out.println(theHub.getAudiobooksTitlesSortedByAuthor());</span>
+<span class="nc" id="L84"> printAvailableCommands();</span>
+<span class="nc" id="L85"> choice = scan.nextLine();</span>
+<span class="nc" id="L86"> break;</span>
case 'c':
// add a new song
-<span class="nc" id="L87"> System.out.println(&quot;Enter a new song: &quot;);</span>
-<span class="nc" id="L88"> System.out.println(&quot;Song title: &quot;);</span>
-<span class="nc" id="L89"> String title = scan.nextLine();</span>
-<span class="nc" id="L90"> System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
-<span class="nc" id="L91"> String genre = scan.nextLine();</span>
-<span class="nc" id="L92"> System.out.println(&quot;Song artist: &quot;);</span>
-<span class="nc" id="L93"> String artist = scan.nextLine();</span>
-<span class="nc" id="L94"> System.out.println(&quot;Song length in seconds: &quot;);</span>
-<span class="nc" id="L95"> int length = Integer.parseInt(scan.nextLine());</span>
+<span class="nc" id="L89"> System.out.println(&quot;Enter a new song: &quot;);</span>
+<span class="nc" id="L90"> System.out.println(&quot;Song title: &quot;);</span>
+<span class="nc" id="L91"> String title = scan.nextLine();</span>
+<span class="nc" id="L92"> System.out.println(&quot;Song genre (jazz, classic, hiphop, rock, pop, rap):&quot;);</span>
+<span class="nc" id="L93"> String genre = scan.nextLine();</span>
+<span class="nc" id="L94"> System.out.println(&quot;Song artist: &quot;);</span>
+<span class="nc" id="L95"> String artist = scan.nextLine();</span>
-<span class="nc" id="L97"> System.out.println(&quot;Song content: &quot;);</span>
-<span class="nc" id="L98"> String content = scan.nextLine();</span>
-<span class="nc bnc" id="L99" title="All 2 branches missed."> if (!isPathValid(content)) {</span>
-<span class="nc" id="L100"> 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="L101"> LogHandler.write(logMsg, &quot;WARNING&quot;); //write a line in the log file</span>
-<span class="nc" id="L102"> System.out.println(logMsg + &quot;\nType h for available commands&quot;);</span>
-<span class="nc" id="L103"> choice = scan.nextLine();</span>
-<span class="nc" id="L104"> break;</span>
+ int length;
+ try {
+<span class="nc" id="L99"> System.out.println(&quot;Song length in seconds: &quot;);</span>
+<span class="nc" id="L100"> length = Integer.parseInt(scan.nextLine());</span>
+<span class="nc" id="L101"> } catch (NumberFormatException ex) {</span>
+<span class="nc" id="L102"> String logMsg = &quot;You've not provided a number for the length.&quot;;</span>
+<span class="nc" id="L103"> LogHandler.write(logMsg, &quot;ERROR&quot;); //write a line in the log file</span>
+<span class="nc" id="L104"> System.err.println(logMsg);</span>
+<span class="nc" id="L105"> System.out.println(&quot;Type h for available commands&quot;);</span>
+<span class="nc" id="L106"> choice = scan.nextLine();</span>
+<span class="nc" id="L107"> break;</span>
+<span class="nc" id="L108"> }</span>
+
+<span class="nc" id="L110"> System.out.println(&quot;Song content: &quot;);</span>
+<span class="nc" id="L111"> String content = scan.nextLine();</span>
+<span class="nc bnc" id="L112" title="All 2 branches missed."> if (!isPathValid(content)) {</span>
+<span class="nc" id="L113"> String logMsg = &quot;The music file cannot be found with the path you've provided or the extension is not .wav&quot;;</span>
+<span class="nc" id="L114"> LogHandler.write(logMsg, &quot;ERROR&quot;); //write a line in the log file</span>
+<span class="nc" id="L115"> System.err.println(logMsg);</span>
+<span class="nc" id="L116"> System.out.println(&quot;Type h for available commands&quot;);</span>
+<span class="nc" id="L117"> choice = scan.nextLine();</span>
+<span class="nc" id="L118"> break;</span>
}
-<span class="nc" id="L107"> Song s = new Song(title, artist, length, content, genre);</span>
-<span class="nc" id="L108"> theHub.addElement(s);</span>
-<span class="nc" id="L109"> System.out.println(&quot;New element list: &quot;);</span>
-<span class="nc" id="L110"> Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
-<span class="nc bnc" id="L111" title="All 2 branches missed."> while (it.hasNext()) System.out.println(it.next().getTitle());</span>
-<span class="nc" id="L112"> System.out.println(&quot;Song created!&quot;);</span>
-<span class="nc" id="L113"> printAvailableCommands();</span>
-<span class="nc" id="L114"> choice = scan.nextLine();</span>
-<span class="nc" id="L115"> break;</span>
+<span class="nc" id="L121"> Song s = new Song(title, artist, length, content, genre);</span>
+<span class="nc" id="L122"> theHub.addElement(s);</span>
+<span class="nc" id="L123"> System.out.println(&quot;New element list: &quot;);</span>
+<span class="nc" id="L124"> Iterator&lt;AudioElement&gt; it = theHub.elements();</span>
+<span class="nc bnc" id="L125" title="All 2 branches missed."> while (it.hasNext()) System.out.println(it.next().getTitle());</span>
+<span class="nc" id="L126"> LogHandler.write(&quot;Song successfully created&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L127"> System.out.println(&quot;Song created!&quot;);</span>
+<span class="nc" id="L128"> printAvailableCommands();</span>
+<span class="nc" id="L129"> choice = scan.nextLine();</span>
+<span class="nc" id="L130"> break;</span>
case 'a':
// add a new album
-<span class="nc" id="L118"> System.out.println(&quot;Enter a new album: &quot;);</span>
-<span class="nc" id="L119"> System.out.println(&quot;Album title: &quot;);</span>
-<span class="nc" id="L120"> String aTitle = scan.nextLine();</span>
-<span class="nc" id="L121"> System.out.println(&quot;Album artist: &quot;);</span>
-<span class="nc" id="L122"> String aArtist = scan.nextLine();</span>
-<span class="nc" id="L123"> System.out.println(&quot;Album length in seconds: &quot;);</span>
-<span class="nc" id="L124"> int aLength = Integer.parseInt(scan.nextLine());</span>
-<span class="nc" id="L125"> System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
-<span class="nc" id="L126"> String aDate = scan.nextLine();</span>
-<span class="nc" id="L127"> Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
-<span class="nc" id="L128"> theHub.addAlbum(a);</span>
-<span class="nc" id="L129"> System.out.println(&quot;New list of albums: &quot;);</span>
-<span class="nc" id="L130"> Iterator&lt;Album&gt; ita = theHub.albums();</span>
-<span class="nc bnc" id="L131" title="All 2 branches missed."> while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
-<span class="nc" id="L132"> System.out.println(&quot;Album created!&quot;);</span>
-<span class="nc" id="L133"> printAvailableCommands();</span>
-<span class="nc" id="L134"> choice = scan.nextLine();</span>
-<span class="nc" id="L135"> break;</span>
+<span class="nc" id="L133"> System.out.println(&quot;Enter a new album: &quot;);</span>
+<span class="nc" id="L134"> System.out.println(&quot;Album title: &quot;);</span>
+<span class="nc" id="L135"> String aTitle = scan.nextLine();</span>
+<span class="nc" id="L136"> System.out.println(&quot;Album artist: &quot;);</span>
+<span class="nc" id="L137"> String aArtist = scan.nextLine();</span>
+<span class="nc" id="L138"> System.out.println(&quot;Album length in seconds: &quot;);</span>
+<span class="nc" id="L139"> int aLength = Integer.parseInt(scan.nextLine());</span>
+<span class="nc" id="L140"> System.out.println(&quot;Album date as YYYY-DD-MM: &quot;);</span>
+<span class="nc" id="L141"> String aDate = scan.nextLine();</span>
+<span class="nc" id="L142"> Album a = new Album(aTitle, aArtist, aLength, aDate);</span>
+<span class="nc" id="L143"> theHub.addAlbum(a);</span>
+<span class="nc" id="L144"> System.out.println(&quot;New list of albums: &quot;);</span>
+<span class="nc" id="L145"> Iterator&lt;Album&gt; ita = theHub.albums();</span>
+<span class="nc bnc" id="L146" title="All 2 branches missed."> while (ita.hasNext()) System.out.println(ita.next().getTitle());</span>
+<span class="nc" id="L147"> LogHandler.write(&quot;Album successfully created&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L148"> System.out.println(&quot;Album created!&quot;);</span>
+<span class="nc" id="L149"> printAvailableCommands();</span>
+<span class="nc" id="L150"> choice = scan.nextLine();</span>
+<span class="nc" id="L151"> break;</span>
case '+':
//add a song to an album:
-<span class="nc" id="L138"> System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
-<span class="nc" id="L139"> System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
-<span class="nc" id="L140"> Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
-<span class="nc bnc" id="L141" title="All 2 branches missed."> while (itae.hasNext()) {</span>
-<span class="nc" id="L142"> AudioElement ae = itae.next();</span>
-<span class="nc bnc" id="L143" title="All 2 branches missed."> if (ae instanceof Song) System.out.println(ae.getTitle());</span>
-<span class="nc" id="L144"> }</span>
-<span class="nc" id="L145"> String songTitle = scan.nextLine();</span>
+<span class="nc" id="L154"> System.out.println(&quot;Add an existing song to an existing album&quot;);</span>
+<span class="nc" id="L155"> System.out.println(&quot;Type the name of the song you wish to add. Available songs: &quot;);</span>
+<span class="nc" id="L156"> Iterator&lt;AudioElement&gt; itae = theHub.elements();</span>
+<span class="nc bnc" id="L157" title="All 2 branches missed."> while (itae.hasNext()) {</span>
+<span class="nc" id="L158"> AudioElement ae = itae.next();</span>
+<span class="nc bnc" id="L159" title="All 2 branches missed."> if (ae instanceof Song) System.out.println(ae.getTitle());</span>
+<span class="nc" id="L160"> }</span>
+<span class="nc" id="L161"> String songTitle = scan.nextLine();</span>
-<span class="nc" id="L147"> System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
-<span class="nc" id="L148"> Iterator&lt;Album&gt; ait = theHub.albums();</span>
-<span class="nc bnc" id="L149" title="All 2 branches missed."> while (ait.hasNext()) {</span>
-<span class="nc" id="L150"> Album al = ait.next();</span>
-<span class="nc" id="L151"> System.out.println(al.getTitle());</span>
-<span class="nc" id="L152"> }</span>
-<span class="nc" id="L153"> String titleAlbum = scan.nextLine();</span>
+<span class="nc" id="L163"> System.out.println(&quot;Type the name of the album you wish to enrich. Available albums: &quot;);</span>
+<span class="nc" id="L164"> Iterator&lt;Album&gt; ait = theHub.albums();</span>
+<span class="nc bnc" id="L165" title="All 2 branches missed."> while (ait.hasNext()) {</span>
+<span class="nc" id="L166"> Album al = ait.next();</span>
+<span class="nc" id="L167"> System.out.println(al.getTitle());</span>
+<span class="nc" id="L168"> }</span>
+<span class="nc" id="L169"> String titleAlbum = scan.nextLine();</span>
try {
-<span class="nc" id="L155"> theHub.addElementToAlbum(songTitle, titleAlbum);</span>
-<span class="nc" id="L156"> } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
-<span class="nc" id="L157"> System.out.println(ex.getMessage());</span>
-<span class="nc" id="L158"> }</span>
-<span class="nc" id="L159"> System.out.println(&quot;Song added to the album!&quot;);</span>
-<span class="nc" id="L160"> printAvailableCommands();</span>
-<span class="nc" id="L161"> choice = scan.nextLine();</span>
-<span class="nc" id="L162"> break;</span>
+<span class="nc" id="L171"> theHub.addElementToAlbum(songTitle, titleAlbum);</span>
+<span class="nc" id="L172"> } catch (NoAlbumFoundException | NoElementFoundException ex) {</span>
+<span class="nc" id="L173"> System.out.println(ex.getMessage());</span>
+<span class="nc" id="L174"> }</span>
+<span class="nc" id="L175"> LogHandler.write(&quot;Song successfully added to the album&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L176"> System.out.println(&quot;Song added to the album!&quot;);</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 'l':
// add a new audiobook
-<span class="nc" id="L165"> System.out.println(&quot;Enter a new audiobook: &quot;);</span>
-<span class="nc" id="L166"> System.out.println(&quot;AudioBook title: &quot;);</span>
-<span class="nc" id="L167"> String bTitle = scan.nextLine();</span>
-<span class="nc" id="L168"> System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
-<span class="nc" id="L169"> String bCategory = scan.nextLine();</span>
-<span class="nc" id="L170"> System.out.println(&quot;AudioBook artist: &quot;);</span>
-<span class="nc" id="L171"> String bArtist = scan.nextLine();</span>
-<span class="nc" id="L172"> System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
-<span class="nc" id="L173"> int bLength = Integer.parseInt(scan.nextLine());</span>
-<span class="nc" id="L174"> System.out.println(&quot;AudioBook content: &quot;);</span>
-<span class="nc" id="L175"> String bContent = scan.nextLine();</span>
-<span class="nc" id="L176"> System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
-<span class="nc" id="L177"> String bLanguage = scan.nextLine();</span>
-<span class="nc" id="L178"> AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
-<span class="nc" id="L179"> theHub.addElement(b);</span>
-<span class="nc" id="L180"> System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
-<span class="nc" id="L181"> Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
-<span class="nc bnc" id="L182" title="All 2 branches missed."> while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
-<span class="nc" id="L183"> printAvailableCommands();</span>
-<span class="nc" id="L184"> choice = scan.nextLine();</span>
-<span class="nc" id="L185"> break;</span>
+<span class="nc" id="L182"> System.out.println(&quot;Enter a new audiobook: &quot;);</span>
+<span class="nc" id="L183"> System.out.println(&quot;AudioBook title: &quot;);</span>
+<span class="nc" id="L184"> String bTitle = scan.nextLine();</span>
+<span class="nc" id="L185"> System.out.println(&quot;AudioBook category (youth, novel, theater, documentary, speech)&quot;);</span>
+<span class="nc" id="L186"> String bCategory = scan.nextLine();</span>
+<span class="nc" id="L187"> System.out.println(&quot;AudioBook artist: &quot;);</span>
+<span class="nc" id="L188"> String bArtist = scan.nextLine();</span>
+<span class="nc" id="L189"> System.out.println(&quot;AudioBook length in seconds: &quot;);</span>
+<span class="nc" id="L190"> int bLength = Integer.parseInt(scan.nextLine());</span>
+<span class="nc" id="L191"> System.out.println(&quot;AudioBook content: &quot;);</span>
+<span class="nc" id="L192"> String bContent = scan.nextLine();</span>
+<span class="nc" id="L193"> System.out.println(&quot;AudioBook language (french, english, italian, spanish, german)&quot;);</span>
+<span class="nc" id="L194"> String bLanguage = scan.nextLine();</span>
+<span class="nc" id="L195"> AudioBook b = new AudioBook(bTitle, bArtist, bLength, bContent, bLanguage, bCategory);</span>
+<span class="nc" id="L196"> theHub.addElement(b);</span>
+<span class="nc" id="L197"> LogHandler.write(&quot;Audiobook successfully created&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L198"> System.out.println(&quot;Audiobook created! New element list: &quot;);</span>
+<span class="nc" id="L199"> Iterator&lt;AudioElement&gt; itl = theHub.elements();</span>
+<span class="nc bnc" id="L200" title="All 2 branches missed."> while (itl.hasNext()) System.out.println(itl.next().getTitle());</span>
+<span class="nc" id="L201"> printAvailableCommands();</span>
+<span class="nc" id="L202"> choice = scan.nextLine();</span>
+<span class="nc" id="L203"> break;</span>
case 'p':
//create a new playlist from existing elements
-<span class="nc" id="L188"> System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
-<span class="nc" id="L189"> System.out.println(&quot;Existing playlists:&quot;);</span>
-<span class="nc" id="L190"> Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
-<span class="nc bnc" id="L191" title="All 2 branches missed."> while (itpl.hasNext()) {</span>
-<span class="nc" id="L192"> PlayList pl = itpl.next();</span>
-<span class="nc" id="L193"> System.out.println(pl.getTitle());</span>
-<span class="nc" id="L194"> }</span>
-<span class="nc" id="L195"> System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
-<span class="nc" id="L196"> String playListTitle = scan.nextLine();</span>
-<span class="nc" id="L197"> PlayList pl = new PlayList(playListTitle);</span>
-<span class="nc" id="L198"> theHub.addPlaylist(pl);</span>
-<span class="nc" id="L199"> System.out.println(&quot;Available elements: &quot;);</span>
+<span class="nc" id="L206"> System.out.println(&quot;Add an existing song or audiobook to a new playlist&quot;);</span>
+<span class="nc" id="L207"> System.out.println(&quot;Existing playlists:&quot;);</span>
+<span class="nc" id="L208"> Iterator&lt;PlayList&gt; itpl = theHub.playlists();</span>
+<span class="nc bnc" id="L209" title="All 2 branches missed."> while (itpl.hasNext()) {</span>
+<span class="nc" id="L210"> PlayList pl = itpl.next();</span>
+<span class="nc" id="L211"> System.out.println(pl.getTitle());</span>
+<span class="nc" id="L212"> }</span>
+<span class="nc" id="L213"> System.out.println(&quot;Type the name of the playlist you wish to create:&quot;);</span>
+<span class="nc" id="L214"> String playListTitle = scan.nextLine();</span>
+<span class="nc" id="L215"> PlayList pl = new PlayList(playListTitle);</span>
+<span class="nc" id="L216"> theHub.addPlaylist(pl);</span>
+<span class="nc" id="L217"> System.out.println(&quot;Available elements: &quot;);</span>
-<span class="nc" id="L201"> Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
-<span class="nc bnc" id="L202" title="All 2 branches missed."> while (itael.hasNext()) {</span>
-<span class="nc" id="L203"> AudioElement ae = itael.next();</span>
-<span class="nc" id="L204"> System.out.println(ae.getTitle());</span>
-<span class="nc" id="L205"> }</span>
-<span class="nc bnc" id="L206" title="All 2 branches missed."> while (choice.charAt(0) != 'n') {</span>
-<span class="nc" id="L207"> 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="L208"> String elementTitle = scan.nextLine();</span>
+<span class="nc" id="L219"> Iterator&lt;AudioElement&gt; itael = theHub.elements();</span>
+<span class="nc bnc" id="L220" title="All 2 branches missed."> while (itael.hasNext()) {</span>
+<span class="nc" id="L221"> AudioElement ae = itael.next();</span>
+<span class="nc" id="L222"> System.out.println(ae.getTitle());</span>
+<span class="nc" id="L223"> }</span>
+<span class="nc bnc" id="L224" title="All 2 branches missed."> while (choice.charAt(0) != 'n') {</span>
+<span class="nc" id="L225"> 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="L226"> String elementTitle = scan.nextLine();</span>
try {
-<span class="nc" id="L210"> theHub.addElementToPlayList(elementTitle, playListTitle);</span>
-<span class="nc" id="L211"> } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
-<span class="nc" id="L212"> System.out.println(ex.getMessage());</span>
-<span class="nc" id="L213"> }</span>
+<span class="nc" id="L228"> theHub.addElementToPlayList(elementTitle, playListTitle);</span>
+<span class="nc" id="L229"> } catch (NoPlayListFoundException | NoElementFoundException ex) {</span>
+<span class="nc" id="L230"> System.out.println(ex.getMessage());</span>
+<span class="nc" id="L231"> }</span>
-<span class="nc" id="L215"> System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
-<span class="nc" id="L216"> choice = scan.nextLine();</span>
-<span class="nc" id="L217"> }</span>
-<span class="nc" id="L218"> System.out.println(&quot;Playlist created!&quot;);</span>
-<span class="nc" id="L219"> printAvailableCommands();</span>
-<span class="nc" id="L220"> choice = scan.nextLine();</span>
-<span class="nc" id="L221"> break;</span>
+<span class="nc" id="L233"> System.out.println(&quot;Type y to add a new one, n to end&quot;);</span>
+<span class="nc" id="L234"> choice = scan.nextLine();</span>
+<span class="nc" id="L235"> }</span>
+<span class="nc" id="L236"> LogHandler.write(&quot;Playlist successfully created&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L237"> System.out.println(&quot;Playlist created!&quot;);</span>
+<span class="nc" id="L238"> printAvailableCommands();</span>
+<span class="nc" id="L239"> choice = scan.nextLine();</span>
+<span class="nc" id="L240"> break;</span>
case '-':
//delete a playlist
-<span class="nc" id="L224"> System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
-<span class="nc" id="L225"> Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
-<span class="nc bnc" id="L226" title="All 2 branches missed."> while (itp.hasNext()) {</span>
-<span class="nc" id="L227"> PlayList p = itp.next();</span>
-<span class="nc" id="L228"> System.out.println(p.getTitle());</span>
-<span class="nc" id="L229"> }</span>
-<span class="nc" id="L230"> String plTitle = scan.nextLine();</span>
+<span class="nc" id="L243"> System.out.println(&quot;Delete an existing playlist. Available playlists:&quot;);</span>
+<span class="nc" id="L244"> Iterator&lt;PlayList&gt; itp = theHub.playlists();</span>
+<span class="nc bnc" id="L245" title="All 2 branches missed."> while (itp.hasNext()) {</span>
+<span class="nc" id="L246"> PlayList p = itp.next();</span>
+<span class="nc" id="L247"> System.out.println(p.getTitle());</span>
+<span class="nc" id="L248"> }</span>
+<span class="nc" id="L249"> String plTitle = scan.nextLine();</span>
try {
-<span class="nc" id="L232"> theHub.deletePlayList(plTitle);</span>
-<span class="nc" id="L233"> } catch (NoPlayListFoundException ex) {</span>
-<span class="nc" id="L234"> System.out.println(ex.getMessage());</span>
-<span class="nc" id="L235"> }</span>
-<span class="nc" id="L236"> System.out.println(&quot;Playlist deleted!&quot;);</span>
-<span class="nc" id="L237"> printAvailableCommands();</span>
-<span class="nc" id="L238"> choice = scan.nextLine();</span>
-<span class="nc" id="L239"> break;</span>
+<span class="nc" id="L251"> theHub.deletePlayList(plTitle);</span>
+<span class="nc" id="L252"> } catch (NoPlayListFoundException ex) {</span>
+<span class="nc" id="L253"> System.out.println(ex.getMessage());</span>
+<span class="nc" id="L254"> }</span>
+<span class="nc" id="L255"> LogHandler.write(&quot;Playlist successfully deleted&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L256"> System.out.println(&quot;Playlist deleted!&quot;);</span>
+<span class="nc" id="L257"> printAvailableCommands();</span>
+<span class="nc" id="L258"> choice = scan.nextLine();</span>
+<span class="nc" id="L259"> break;</span>
case 's':
//save elements, albums, playlists
-<span class="nc" id="L242"> theHub.saveElements();</span>
-<span class="nc" id="L243"> theHub.saveAlbums();</span>
-<span class="nc" id="L244"> theHub.savePlayLists();</span>
-<span class="nc" id="L245"> System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
-<span class="nc" id="L246"> printAvailableCommands();</span>
-<span class="nc" id="L247"> choice = scan.nextLine();</span>
-<span class="nc" id="L248"> break;</span>
+<span class="nc" id="L262"> theHub.saveElements();</span>
+<span class="nc" id="L263"> theHub.saveAlbums();</span>
+<span class="nc" id="L264"> theHub.savePlayLists();</span>
+<span class="nc" id="L265"> LogHandler.write(&quot;Elements, albums and playlists successfully saved&quot;, &quot;INFO&quot;);</span>
+<span class="nc" id="L266"> System.out.println(&quot;Elements, albums and playlists saved!&quot;);</span>
+<span class="nc" id="L267"> printAvailableCommands();</span>
+<span class="nc" id="L268"> choice = scan.nextLine();</span>
+<span class="nc" id="L269"> break;</span>
case 'r':
//search a music
try {
-<span class="nc" id="L252"> theHub.searchAudioElement();</span>
+<span class="nc" id="L273"> theHub.searchAudioElement();</span>
}
-<span class="nc" id="L254"> catch (NoElementFoundException e){</span>
-<span class="nc" id="L255"> System.err.println(e.getMessage());</span>
+<span class="nc" id="L275"> catch (NoElementFoundException e){</span>
+<span class="nc" id="L276"> System.err.println(e.getMessage());</span>
}
-<span class="nc" id="L257"> catch (java.io.FileNotFoundException e){</span>
-<span class="nc" id="L258"> System.err.println(e.getMessage()+&quot; Please create a file with the extension .wav inside the song folder at root of the app&quot;);</span>
-<span class="nc" id="L259"> }</span>
-<span class="nc" id="L260"> printAvailableCommands();</span>
+<span class="nc" id="L278"> catch (java.io.FileNotFoundException e){</span>
+<span class="nc" id="L279"> LogHandler.write(&quot;Please create a file with the extension .wav inside the song folder at root of the app&quot;, &quot;ERROR&quot;);</span>
+<span class="nc" id="L280"> System.err.println(e.getMessage() + &quot; Please create a file with the extension .wav inside the song folder at root of the app&quot;);</span>
+<span class="nc" id="L281"> }</span>
+<span class="nc" id="L282"> printAvailableCommands();</span>
+<span class="nc" id="L283"> choice = scan.nextLine();</span>
+<span class="nc" id="L284"> break;</span>
case 'o':
//consult the app logs
-<span class="nc" id="L263"> LogHandler.read();</span>
-<span class="nc" id="L264"> System.out.println(&quot;Type h for available commands&quot;);</span>
-<span class="nc" id="L265"> choice = scan.nextLine();</span>
-<span class="nc" id="L266"> break;</span>
+<span class="nc" id="L287"> LogHandler.read();</span>
+<span class="nc" id="L288"> System.out.println(&quot;Type h for available commands&quot;);</span>
+<span class="nc" id="L289"> choice = scan.nextLine();</span>
+<span class="nc" id="L290"> break;</span>
+ case 'm':
+ //songs of a playlist
+<span class="nc" id="L293"> System.out.println(&quot;Songs of a playlist will be displayed; enter the playlist name, available playlists are:&quot;);</span>
+<span class="nc" id="L294"> System.out.println(theHub.getPlayListsTitles());</span>
+
+<span class="nc" id="L296"> playListTitle = scan.nextLine();</span>
+ try {
+<span class="nc" id="L298"> List&lt;AudioElement&gt; songs = theHub.getPlayListSongs(playListTitle);</span>
+<span class="nc" id="L299"> System.out.println(theHub.getPlayListSongs(playListTitle));</span>
+<span class="nc" id="L300"> String song = scan.nextLine();</span>
+<span class="nc" id="L301"> theHub.getAudioElement(songs, song);</span>
+<span class="nc" id="L302"> } catch (NoPlayListFoundException ex) {</span>
+<span class="nc" id="L303"> LogHandler.write(&quot;No playlist found with the requested title&quot;, &quot;WARNING&quot;);</span>
+<span class="nc" id="L304"> System.out.println(&quot;No playlist found with the requested title &quot; + ex.getMessage());</span>
+<span class="nc" id="L305"> }</span>
+<span class="nc" id="L306"> printAvailableCommands();</span>
+<span class="nc" id="L307"> choice = scan.nextLine();</span>
+<span class="nc" id="L308"> break;</span>
default:
-<span class="nc" id="L269"> break;</span>
+<span class="nc" id="L311"> break;</span>
}
}
-<span class="nc" id="L272"> scan.close();</span>
-<span class="nc" id="L273"> }</span>
+<span class="nc" id="L314"> scan.close();</span>
+<span class="nc" id="L315"> }</span>
private static void printAvailableCommands() {
-<span class="nc" id="L276"> System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
-<span class="nc" id="L277"> System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
-<span class="nc" id="L278"> System.out.println(&quot;d: display songs of an album&quot;);</span>
-<span class="nc" id="L279"> System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
-<span class="nc" id="L280"> System.out.println(&quot;r: search audio elements&quot;);</span>
-<span class="nc" id="L281"> System.out.println(&quot;c: add a new song&quot;);</span>
-<span class="nc" id="L282"> System.out.println(&quot;a: add a new album&quot;);</span>
-<span class="nc" id="L283"> System.out.println(&quot;+: add a song to an album&quot;);</span>
-<span class="nc" id="L284"> System.out.println(&quot;l: add a new audiobook&quot;);</span>
-<span class="nc" id="L285"> System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
-<span class="nc" id="L286"> System.out.println(&quot;-: delete an existing playlist&quot;);</span>
-<span class="nc" id="L287"> System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
-<span class="nc" id="L288"> System.out.println(&quot;o: consult the app logs&quot;);</span>
-<span class="nc" id="L289"> System.out.println(&quot;q: quit program&quot;);</span>
-<span class="nc" id="L290"> }</span>
+<span class="nc" id="L318"> System.out.println(&quot;t: display the album titles, ordered by date&quot;);</span>
+<span class="nc" id="L319"> System.out.println(&quot;g: display songs of an album, ordered by genre&quot;);</span>
+<span class="nc" id="L320"> System.out.println(&quot;d: display songs of an album&quot;);</span>
+<span class="nc" id="L321"> System.out.println(&quot;u: display audiobooks ordered by author&quot;);</span>
+<span class="nc" id="L322"> System.out.println(&quot;r: search audio elements&quot;);</span>
+<span class="nc" id="L323"> System.out.println(&quot;c: add a new song&quot;);</span>
+<span class="nc" id="L324"> System.out.println(&quot;a: add a new album&quot;);</span>
+<span class="nc" id="L325"> System.out.println(&quot;+: add a song to an album&quot;);</span>
+<span class="nc" id="L326"> System.out.println(&quot;l: add a new audiobook&quot;);</span>
+<span class="nc" id="L327"> System.out.println(&quot;p: create a new playlist from existing songs and audio books&quot;);</span>
+<span class="nc" id="L328"> System.out.println(&quot;m: display songs of a playlist&quot;);</span>
+<span class="nc" id="L329"> System.out.println(&quot;-: delete an existing playlist&quot;);</span>
+<span class="nc" id="L330"> System.out.println(&quot;s: save elements, albums, playlists&quot;);</span>
+<span class="nc" id="L331"> System.out.println(&quot;o: consult the app logs&quot;);</span>
+<span class="nc" id="L332"> System.out.println(&quot;q: quit program&quot;);</span>
+<span class="nc" id="L333"> }</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