package be.msyben.vinylManager.properties;

/**
 * Enumération pour les vitesses.
 * @author Mathieu Syben
 */
public enum Vitesse {

    vitesse33(0, "name.vitesse.33"),
    vitesse45(1, "name.vitesse.45"),
    vitesse78(2, "name.vitesse.78"),
    vitesse16(3, "name.vitesse.16"),
    vitesseNA(4, "name.vitesse.na");
    private int id;
    private String name;

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

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