diff options
| -rw-r--r-- | src/main/java/musichub/business/MusicHub.java | 28 | ||||
| -rw-r--r-- | src/main/java/musichub/main/Main.java | 18 | ||||
| -rw-r--r-- | target/classes/musichub/business/MusicHub.class | bin | 12507 -> 13297 bytes | |||
| -rw-r--r-- | target/classes/musichub/main/Main.class | bin | 10828 -> 11373 bytes | |||
| -rw-r--r-- | target/classes/musichub/util/Policy.class | bin | 10981 -> 10860 bytes | 
5 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/musichub/business/MusicHub.java b/src/main/java/musichub/business/MusicHub.java index 660f0f8..f6805b6 100644 --- a/src/main/java/musichub/business/MusicHub.java +++ b/src/main/java/musichub/business/MusicHub.java @@ -359,5 +359,33 @@ public class MusicHub {              this.getAudioElement(searchResult, searchResult.get(0).getTitle());          }      } +    public String getPlayListsTitles() { +        StringBuilder titleList = new StringBuilder(); +        for (PlayList pl : playlists) +            titleList.append(pl.getTitle()).append("\n"); +        return titleList.toString(); +    } + +    public List<AudioElement> getPlayListSongs(String playListTitle) throws NoPlayListFoundException { +        PlayList thePlayList = null; +        ArrayList<AudioElement> songsInPlayList = new ArrayList<>(); +        for (PlayList pl : playlists) { +            if (pl.getTitle().equalsIgnoreCase(playListTitle)) { +                thePlayList = pl; +                break; +            } +        } +        if (thePlayList == null) throw new NoPlayListFoundException("No playlist with this title in the MusicHub!"); + +        List<UUID> songIDs = thePlayList.getElements(); +        for (UUID id : songIDs) +            for (AudioElement el : elements) { +                if (el instanceof Song) { +                    if (el.getUUID().equals(id)) songsInPlayList.add(el); +                } +            } +        return songsInPlayList; + +    }  }
\ 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 bbcae79..2394ce6 100644 --- a/src/main/java/musichub/main/Main.java +++ b/src/main/java/musichub/main/Main.java @@ -264,6 +264,23 @@ public class Main {                      System.out.println("Type h for available commands");                      choice = scan.nextLine();                      break; +                case 'm': +                    //songs of a playlist +                    System.out.println("Songs of a playlist will be displayed; enter the playlist name, available playlists are:"); +                    System.out.println(theHub.getPlayListsTitles()); + +                    playListTitle = scan.nextLine(); +                    try { +                        List<AudioElement> songs = theHub.getPlayListSongs(playListTitle); +                        System.out.println(theHub.getPlayListSongs(playListTitle)); +                        String song = scan.nextLine(); +                        theHub.getAudioElement(songs, song); +                    } catch (NoPlayListFoundException ex) { +                        System.out.println("No playlist found with the requested title " + ex.getMessage()); +                    } +                    printAvailableCommands(); +                    choice = scan.nextLine(); +                    break;                  default:                      break; @@ -283,6 +300,7 @@ public class Main {          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("m: display songs of a playlist");          System.out.println("-: delete an existing playlist");          System.out.println("s: save elements, albums, playlists");          System.out.println("o: consult the app logs"); diff --git a/target/classes/musichub/business/MusicHub.class b/target/classes/musichub/business/MusicHub.class Binary files differindex 8614d25..42d7480 100644 --- a/target/classes/musichub/business/MusicHub.class +++ b/target/classes/musichub/business/MusicHub.class diff --git a/target/classes/musichub/main/Main.class b/target/classes/musichub/main/Main.class Binary files differindex 6a37d2d..d1f8ea2 100644 --- a/target/classes/musichub/main/Main.class +++ b/target/classes/musichub/main/Main.class diff --git a/target/classes/musichub/util/Policy.class b/target/classes/musichub/util/Policy.class Binary files differindex bec4189..4bf6b23 100644 --- a/target/classes/musichub/util/Policy.class +++ b/target/classes/musichub/util/Policy.class  | 
