package ch.epfl.isochrone.tiledmap;
import java.awt.Color;
import java.util.ArrayList;
import java.util.List;

/**
 * Classe servant à représenter une table des couleurs utilisée pour la carte isochrone
 * 
 * @author Charles Thiebaut (238935)
 * @author Arnaud Delamare (234841)
 * 
 */
public final class ColorTable {

    private final int length;
    private final List<Color> colorList;
    
    /**
     * 
     * Constructeur de la classe
     * 
     * @param length
     *        La durée en seconde d'une tranche
     *        
     * @param colorList
     *        La liste des couleurs
     */
    public ColorTable(int length, List<Color> colorList)
    {
        this.length = length;
        if(colorList.isEmpty()){
            throw new IllegalArgumentException();
        }
        this.colorList = new ArrayList<Color>(colorList);
    }
    /**
     * 
     * @return la durée d'une tranche en seconde
     */
    public int sliceLength()
    {
        return length; 
    }
    
    /**
     * @return le nombre de tranche de la liste. La dernière tranche n'est pas considérée comme une tranche mais comme le background de la carte
     */
    public int numberOfSlice()
    {
        return colorList.size()-1;
    }
    
    /**
     * 
     * @param tranche
     *        L'index de la tranche
     * @return la couleur correspondante
     */
    public Color sliceColor(int tranche)
    {
        if(tranche < 0 || tranche >= colorList.size())
        {
            throw new IllegalArgumentException(); 
        }
        return colorList.get(tranche); 
    }

    // Créer builder
    
}
