Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sp2fy;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.HashSet;
- import java.util.Set;
- public class Musiteca {
- //atributos
- private Set<Album> meusAlbuns;
- private Set<Album> meusFavoritos;
- private HashMap<String, ArrayList<Musica>> mapaPlaylist;
- //construtor
- public Musiteca(){
- meusAlbuns = new HashSet<Album>();
- meusFavoritos = new HashSet<Album>();
- mapaPlaylist = new HashMap<String, ArrayList<Musica>>();
- }
- public Album getAlbum(String tituloAlbum){
- Album albumRetornado;
- for(Album album : meusAlbuns){
- if(album.getTitulo().equalsIgnoreCase(tituloAlbum)){
- albumRetornado = album;
- return albumRetornado;
- }
- }
- return null;
- }
- public boolean addAlbum(Album album){
- if(album == null || meusAlbuns.contains(album) == true){
- return false;
- }else{
- this.meusAlbuns.add(album);
- return true;
- }
- }
- public boolean contemAlbum(Album album){
- return meusAlbuns.contains(album);
- }
- public boolean removeAlbum(String tituloAlbum){
- for(Album album : meusAlbuns){
- if(album.getTitulo().equalsIgnoreCase(tituloAlbum)){
- return meusAlbuns.remove(album);
- }
- }
- return false;
- }
- public boolean addMusicaEmAlbum(String tituloAlbum, String tituloMusica, int duracaoMusica, String generoMusica)throws Exception{
- for(Album album : meusAlbuns){
- if(album.getTitulo().equalsIgnoreCase(tituloAlbum)){
- album.addMusica(tituloMusica, duracaoMusica, generoMusica);
- return true;
- }
- }
- return false;
- }
- public void getMusicaDeAlbuns(String musica) throws Exception {
- if (musica == null || musica.trim().isEmpty()) {
- throw new Exception("Titulo da musica nao pode ser nulo ou vazio.");
- }
- }
- public boolean removeMusicaDeAlbum(String tituloAlbum, String tituloMusica){
- for(Album album : meusAlbuns){
- if(album.getTitulo().equalsIgnoreCase(tituloAlbum)){
- int indice = album.indiceMusica(tituloMusica);
- album.removeMusica(indice);
- return true;
- }
- }
- return false;
- }
- public boolean addAosFavoritos(Album album){
- if(album != null && meusFavoritos.contains(album) == false){
- meusFavoritos.add(album);
- return true;
- }
- return false;
- }
- public boolean unfavoriteAlbum(String tituloAlbum){
- for(Album album1 : meusFavoritos){
- if(album1.getTitulo().equalsIgnoreCase(tituloAlbum)){
- meusFavoritos.remove(album1);
- return true;
- }
- }
- return false;
- }
- public int getQtdFavoritos(){
- return meusFavoritos.size();
- }
- public Set<Album> getAlbunsFavoritos(){
- return meusFavoritos;
- }
- public boolean criaPlaylist(String nome){
- if(nome != null && nome.trim().isEmpty() == false && this.contemPlaylist(nome) == false){
- this.mapaPlaylist.put(nome, new ArrayList<Musica>());
- return true;
- }else{
- return false;
- }
- }
- public boolean contemPlaylist(String nome){
- return mapaPlaylist.containsKey(nome);
- }
- public boolean addNaPlaylist(String nomePlaylist, String nomeAlbum, int faixa){
- for(Album album : meusAlbuns){
- if(album.getTitulo().equalsIgnoreCase(nomeAlbum)){
- mapaPlaylist.get(nomePlaylist).add(album.getMusicaPorIndice(faixa));
- return true;
- }
- }
- return false;
- }
- // O nome to metodo estΓ‘ com 'Pay' nos testes, por isso deixei igual
- public boolean contemNaPaylist(String nomePlaylist, String nomeMusica){
- if(nomePlaylist != null && mapaPlaylist.containsKey(nomePlaylist) == true){
- boolean contemMusica = mapaPlaylist.get(nomePlaylist).contains(nomeMusica);
- return contemMusica;
- }else{
- return false;
- }
- }
- public int getTamPlaylist(String nomePlaylist){
- int tamanhoPlaylist = mapaPlaylist.get(nomePlaylist).size();
- return tamanhoPlaylist;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement