Package com.musica.album

Source Code of com.musica.album.AlbumS

package com.musica.album;

import com.musica.MusicaGerencia;
import com.musica.MusicaS;
import com.musica.autor.AutorS;
import com.serial.PortaCDs;
import com.utils.StringComparable;
import com.utils.campo.NomeCampo;
import com.utils.model.tablemodel.ObjetoTabela;
import java.io.Serializable;
import java.util.ArrayList;

/**
*
* @author c90
*/
public class AlbumS implements Serializable, Comparable<AlbumS>, StringComparable {

    private static final long serialVersionUID = 2L;

    @ObjetoTabela()
    @NomeCampo(nome = "Album")
    private String nome;
    @ObjetoTabela()
    @NomeCampo(nome = "Genero")
    private String genero;
    private final ArrayList<MusicaS> musicas;
    private String img;
    @ObjetoTabela(temFilhos = true)
    private AutorS autor;

    public AlbumS() {
        musicas = new ArrayList<MusicaS>();
    }

    @SuppressWarnings("ReturnOfCollectionOrArrayField")
    public ArrayList<MusicaS> getMusicas() {
        return musicas;
    }

    public MusicaS getMusica(String nomeMusica) {
        return getMusica(nomeMusica, true);
    }

    public MusicaS getMusica(String nomeMusica, boolean criar) {
        nomeMusica = MusicaGerencia.removeCaracteresEsp(nomeMusica);
        if (nomeMusica == null) {
            if (criar) {
                return new MusicaS();
            } else {
                return null;
            }
        }
        MusicaS musica = PortaCDs.Busca.buscar(musicas, nomeMusica);
        if (criar && musica == null) {
            musica = new MusicaS();
            musica.setNome(nomeMusica);
            musica.setAlbum(this);
            musicas.add(musica);
        }
        return musica;
    }

    public void addMusica(MusicaS musicaS) {
        musicaS.setAlbum(this);
        musicas.add(musicaS);
    }

    public void removeMusica(MusicaS musicaS) {
        musicas.remove(musicaS);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = MusicaGerencia.removeCaracteresEsp(nome);
    }

    public AutorS getAutor() {
        return autor;
    }

    public void setAutor(AutorS autor) {
        this.autor = autor;
    }

    public String getGenero() {
        return genero;
    }

    public void setGenero(String genero) {
        if (genero != null) {
            String normalizeGenero = MusicaGerencia.removeCaracteresEsp(genero);
            if (normalizeGenero.indexOf('(') == 0) {
                try {
                    String replace = normalizeGenero.replaceAll("[^0-9]", "");
                    setGenero(new Integer(replace));
                } catch (NumberFormatException ex) {
                    ex.printStackTrace(System.err);
                }
            } else {
                this.genero = normalizeGenero;
            }
        }
    }

    public void setGenero(int genre) {
        if (genre >= MusicaGerencia.generos.length || genre < 0) {
            genero = "";
            return;
        }
        try {
            genero = MusicaGerencia.generos[genre];
        } catch (Exception b) {
            genero = "";
            b.printStackTrace(System.err);
        }
    }

    /**
     * @return the img
     */
    public String getImg() {
        return img;
    }

    /**
     * Obs: Faça um replace('\\','/') em na hora de importar
     *
     * @param img O endereço da imagem
     */
    public void setImg(String img) {
        this.img = img;
    }

    @Override
    public String toString() {
        return "Album{" + "nome=" + nome + ", autor=" + autor + '}';
    }

    @Override
    public int compareTo(AlbumS o) {
        return o == null ? 1 : nome.compareTo(o.nome);
    }

    @Override
    public int compareTo(String o) {
        return o == null ? 1 : nome.compareTo(o);
    }
   
}
TOP

Related Classes of com.musica.album.AlbumS

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.