package be.msyben.vinylManager.properties;

/**
 * Enumération pour les tailles.
 * @author Mathieu Syben
 */
public enum Taille {
    
    taille30(0, "name.taille.30"),
    taille25(1, "name.taille.25"),
    taille17(2, "name.taille.17"),
    tailleNA(3, "name.taille.na");

    private int id;
    private String name;

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

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

}
