package be.msyben.vinylManager.properties;

/**
 * Enumération pour les supports.
 * @author Mathieu Syben
 */
public enum Support {

    vinyl(1, "name.support.vinyl"),
    cd(2, "name.support.cd"),
    sacd(13, "name.support.sacd"),
    md(3, "name.support.md"),
    k7(4, "name.support.k7"),
    bande(5, "name.support.bande"),
    dvd(7, "name.support.dvd"),
    bluray(8, "name.support.bluray"),
    vhs(9, "name.support.vhs"),
    betamax(10, "name.support.betamax"),
    laserdisc(11, "name.support.laserdisc"),
    schellack(12, "name.support.schellack"),
    hdcd(14, "name.support.hdcd"),
    dualdisc(15, "name.support.dualdisc"),
    autre(6, "name.support.autre");
    
    private int id;
    private String name;

    /**
     * Constructeur.
     * @param id l'id.
     * @param name La propriété pour récupérer le nom.
     */
    Support(int id, String name) {
        this.id = id;
        this.name = name;
    }

    /**
     * Getter pour id.
     * @return id.
     */
    public int getId() {
        return id;
    }

    /**
     * Permet de récupérer le nom dans la langue sélectionnée.
     * @return le nom.
     */
    public String getName() {
        return Language.getInstance().get(name);
    }

    /**
     * Permet de récupérer un objet de type Support en fonction de son ID.
     * @param id l'id de support.
     * @return L'objet correspondant. vinyl par défaut.
     */
    public static Support getSupport(Integer id) {
        if (id == null) {
            return vinyl;
        }
        for (Support s : Support.values()) {
            if (s.getId() == id.intValue()) {
                return s;
            }
        }
        return vinyl;
    }

    @Override
    public String toString() {
        return getName();
    }
    
    

}
