Advertisement
lllincolncunha

Album

Jul 30th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.87 KB | None | 0 0
  1. package sp2fy;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. public class Album {
  6.     //atributos
  7.     private String artista;
  8.     private String titulo;
  9.     private int anoLancamento = 0;
  10.     private ArrayList<Musica> album;
  11.     private Musica musica;
  12.    
  13.     //construtor
  14.     public Album(String artista, String titulo, int ano) throws Exception{
  15.         if(artista == null || artista.trim().isEmpty() == true){
  16.             throw new Exception("Artista do album nao pode ser nulo ou vazio.");
  17.         }else{
  18.             this.artista = artista;
  19.         }
  20.         if(titulo == null || artista.trim().isEmpty() == true){
  21.             throw new Exception("Titulo do album nao pode ser nulo ou vazio");
  22.         }else{
  23.             this.titulo = titulo;
  24.         }
  25.         if(ano <= 1900){
  26.             throw new Exception("Ano de lancamento nao pode ser igual ou inferior a 1900.");
  27.         }else{
  28.             this.anoLancamento = ano;
  29.         }
  30.            
  31.        
  32.     }
  33.    
  34.     public String getTitulo(){
  35.         return this.titulo;
  36.     }
  37.    
  38.     public void setTitulo(String novoTitulo){
  39.         this.titulo = novoTitulo;
  40.        
  41.     }
  42.    
  43.     public String getArtista(){
  44.         return this.artista;
  45.     }
  46.    
  47.     public void setArtista(String novoArtista){
  48.         this.artista = novoArtista;
  49.        
  50.     }
  51.    
  52.     public int getAnoLancamento(){
  53.         return this.anoLancamento;
  54.     }
  55.    
  56.     public void setAno(int novoAno){
  57.         this.anoLancamento = novoAno;
  58.        
  59.     }
  60.    
  61.     public int getDuracaoTotal(){
  62.         int duracaoTotal = 0;
  63.         for(int i=0; i < album.size(); i++){
  64.             Musica musica1 = album.get(i);
  65.             duracaoTotal += musica1.getDuracao();
  66.         }
  67.         return duracaoTotal;   
  68.     }
  69.    
  70.    
  71.     //metodo para pesquisar uma musica no album
  72.     public boolean getMusica(String titulo){
  73.         return album.contains(titulo);
  74.     }
  75.    
  76.     public Musica getMusicaPorIndice(int indice){
  77.         for(int i=0; i <album.size(); i++){
  78.             if(i == indice){
  79.                 Musica getMusica = album.get(i);
  80.                 return getMusica;
  81.             }
  82.         }
  83.         return null;
  84.     }
  85.    
  86.     public boolean adicionaMusica(Musica musica)throws Exception{
  87.         if(musica.equals(musica) == false){
  88.             album.add(musica);
  89.             return true;
  90.         }
  91.         return false;
  92.        
  93.     }
  94.    
  95.     //Os testes da Musiteca pedem um metodo com o nome "addMusica" enquanto os testes de Album pedem "adicionaMusica"
  96.     public boolean addMusica(String tituloMusica, int duracaoMusica, String generoMusica)throws Exception{
  97.         if(musica.equals(musica) == false){
  98.             Musica musica = new Musica(tituloMusica, duracaoMusica,generoMusica);
  99.             album.add(musica);
  100.             return true;
  101.         }
  102.         return false;
  103.        
  104.     }
  105.    
  106.     public boolean contemMusica(String titulo){
  107.         return album.contains(titulo);
  108.     }
  109.    
  110.     public int indiceMusica(String titulo){
  111.         int indice = 0;
  112.         for(int i=0; i < album.size(); i++){
  113.             Musica musica1 = album.get(i);
  114.             if(musica1.getTitulo().equalsIgnoreCase(titulo)){
  115.                 indice = i;
  116.                 return indice;
  117.             }
  118.         }
  119.         return indice;
  120.     }
  121.    
  122.    
  123.     public int quantidadeFaixas(){
  124.         return album.size();
  125.     }
  126.    
  127.     public void removeMusica(int indice){
  128.         for(int i=0; i<album.size(); i++){
  129.             if((i+1) == indice){
  130.                 album.remove(i);
  131.             }
  132.         }
  133.        
  134.     }
  135.    
  136.  
  137.    
  138.    
  139.    
  140.     public String toString(){
  141.         String linha = "";
  142.         linha += String.format("%s, %s (%d) %n %n",getTitulo(), getArtista(), getAnoLancamento());
  143.         for(int i=0; i < album.size(); i++){
  144.             linha += String.format("%d. %s (%s - %d minutos) %n", i+1, album.get(i).getTitulo(),
  145.                                                                     album.get(i).getGenero(),
  146.                                                                     album.get(i).getDuracao());
  147.         }
  148.        
  149.         return linha;
  150.     }
  151.  
  152.     public boolean equals(Object obj){
  153.         if(!(obj instanceof Album)){
  154.             return false;
  155.         }
  156.        
  157.         Album outroAlbum = (Album)obj; //cast
  158.        
  159.         if(!(this.getTitulo().equalsIgnoreCase(outroAlbum.getTitulo()))){
  160.             return false;
  161.         }
  162.         if(!(this.getAnoLancamento() == outroAlbum.getAnoLancamento())){
  163.             return false;
  164.         }
  165.         return true;
  166.     }
  167.    
  168.     @Override
  169.     public int hashCode() {
  170.         final int prime = 31;
  171.         int result = 1;
  172.         result = prime * result + anoLancamento;
  173.         result = prime * result + ((titulo == null) ? 0 : titulo.hashCode());
  174.         return result;
  175.     }
  176.    
  177.  
  178.  
  179. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement