package com.interview.design.questions.jukebox; import com.interview.utils.ctci.AssortedMethods; import java.util.List; import java.util.Set; public class JukeBox { private AudioPlayer audioPlayer; private Display display; private User user; private Set<CD> cdCollection; private List<Playlist> playlists; Playlist playlist; public JukeBox(AudioPlayer audioPlayer, User user, Set<CD> cdCollection) { super(); this.audioPlayer = audioPlayer; this.user = user; this.cdCollection = cdCollection; } public void createPlaylist(){ //.... } public void addNewCD(CD cd){ //..... } public void startup(){ if(playlist == null) System.out.println("Select a playlist first..."); else { audioPlayer.play(playlist); display.display(playlist.getCurrentSong()); } } public void changePlaylist(){ playlist = selectPlaylist(); audioPlayer.play(playlist); } public void nextSong(){ audioPlayer.next(); } public void shutdown(){ audioPlayer.stop(); display.stop(); } public Playlist selectPlaylist(){ //.... int rand = AssortedMethods.randomInt(playlists.size()); return playlists.get(rand); } public void setUser(User u) { this.user = u; } }