package be.msyben.vinylManager.properties;

/**
 * Enumération pour les canaux.
 * @author Mathieu Syben
 */
public enum Canaux {
    
    stereo(0, "name.canaux.stereo"),
    mono(1, "name.canaux.mono"),
    multicanaux(2, "name.canaux.multicanaux"),
    autre(3, "name.canaux.autre");

    private int id;
    private String name;

    /**
     * Constructeur.
     * @param id l'id.
     * @param name La propriété pour récupérer le nom.
     */
    Canaux(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 Canaux en fonction de son ID.
     * @param id l'id de canaux.
     * @return L'objet correspondant. stereo par défaut.
     */
    public static Canaux getCanaux(Integer id) {
        if (id == null) {
            return stereo;
        }
        for (Canaux s : Canaux.values()) {
            if (s.getId() == id.intValue()) {
                return s;
            }
        }
        return stereo;
    }

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

}
