Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package sp2fy;
- import java.util.ArrayList;
- public class Album {
- //atributos
- private String artista;
- private String titulo;
- private int anoLancamento = 0;
- private ArrayList<Musica> album;
- private Musica musica;
- //construtor
- public Album(String artista, String titulo, int ano) throws Exception{
- if(artista == null || artista.trim().isEmpty() == true){
- throw new Exception("Artista do album nao pode ser nulo ou vazio.");
- }else{
- this.artista = artista;
- }
- if(titulo == null || artista.trim().isEmpty() == true){
- throw new Exception("Titulo do album nao pode ser nulo ou vazio");
- }else{
- this.titulo = titulo;
- }
- if(ano <= 1900){
- throw new Exception("Ano de lancamento nao pode ser igual ou inferior a 1900.");
- }else{
- this.anoLancamento = ano;
- }
- }
- public String getTitulo(){
- return this.titulo;
- }
- public void setTitulo(String novoTitulo){
- this.titulo = novoTitulo;
- }
- public String getArtista(){
- return this.artista;
- }
- public void setArtista(String novoArtista){
- this.artista = novoArtista;
- }
- public int getAnoLancamento(){
- return this.anoLancamento;
- }
- public void setAno(int novoAno){
- this.anoLancamento = novoAno;
- }
- public int getDuracaoTotal(){
- int duracaoTotal = 0;
- for(int i=0; i < album.size(); i++){
- Musica musica1 = album.get(i);
- duracaoTotal += musica1.getDuracao();
- }
- return duracaoTotal;
- }
- //metodo para pesquisar uma musica no album
- public boolean getMusica(String titulo){
- return album.contains(titulo);
- }
- public Musica getMusicaPorIndice(int indice){
- for(int i=0; i <album.size(); i++){
- if(i == indice){
- Musica getMusica = album.get(i);
- return getMusica;
- }
- }
- return null;
- }
- public boolean adicionaMusica(Musica musica)throws Exception{
- if(musica.equals(musica) == false){
- album.add(musica);
- return true;
- }
- return false;
- }
- //Os testes da Musiteca pedem um metodo com o nome "addMusica" enquanto os testes de Album pedem "adicionaMusica"
- public boolean addMusica(String tituloMusica, int duracaoMusica, String generoMusica)throws Exception{
- if(musica.equals(musica) == false){
- Musica musica = new Musica(tituloMusica, duracaoMusica,generoMusica);
- album.add(musica);
- return true;
- }
- return false;
- }
- public boolean contemMusica(String titulo){
- return album.contains(titulo);
- }
- public int indiceMusica(String titulo){
- int indice = 0;
- for(int i=0; i < album.size(); i++){
- Musica musica1 = album.get(i);
- if(musica1.getTitulo().equalsIgnoreCase(titulo)){
- indice = i;
- return indice;
- }
- }
- return indice;
- }
- public int quantidadeFaixas(){
- return album.size();
- }
- public void removeMusica(int indice){
- for(int i=0; i<album.size(); i++){
- if((i+1) == indice){
- album.remove(i);
- }
- }
- }
- public String toString(){
- String linha = "";
- linha += String.format("%s, %s (%d) %n %n",getTitulo(), getArtista(), getAnoLancamento());
- for(int i=0; i < album.size(); i++){
- linha += String.format("%d. %s (%s - %d minutos) %n", i+1, album.get(i).getTitulo(),
- album.get(i).getGenero(),
- album.get(i).getDuracao());
- }
- return linha;
- }
- public boolean equals(Object obj){
- if(!(obj instanceof Album)){
- return false;
- }
- Album outroAlbum = (Album)obj; //cast
- if(!(this.getTitulo().equalsIgnoreCase(outroAlbum.getTitulo()))){
- return false;
- }
- if(!(this.getAnoLancamento() == outroAlbum.getAnoLancamento())){
- return false;
- }
- return true;
- }
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + anoLancamento;
- result = prime * result + ((titulo == null) ? 0 : titulo.hashCode());
- return result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement