package client.model.problem;

import java.util.ArrayList;

/** <u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de créer une dérivée
 *
 * @author Dream Team - ING2
 */
public class Derive {
	
	//Déclaration des variables
	private ArrayList<Parameters> listParameters;
	private int idDerive;
	
	/**<u><i>Explication générale du constructeur :</i></u>
     * <P> Constructeur de la classe permettant de créer un objet de type Derive.
     * 
     */
	public Derive(){
		listParameters = new ArrayList<Parameters>(); 
	}
	
	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer l'array des paramètres
     * 
     * @return l'array des paramètres
     * 
     */
	public ArrayList<Parameters> getTabParameters(){
		return listParameters;
	}
	
	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de mettre une nouvelle référence de l'array des paramètres
     * 
     * @param listParameters nouvel array des paramètres
     * 
     */
	public void setTabParameters(ArrayList<Parameters> listParameters){
		this.listParameters = listParameters;
	}
	
	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet d'ajouter des paramètres
     * 
     * @param p paramètres à ajouter
     * 
     */
	public void addParameters(Parameters p){
		listParameters.add(p);
	}
	
	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer un paramètre à un indice donné
     * 
     * @param i indice
     * 
     * @return paramètres à ajouter
     * 
     */
	public Parameters getParameters(int i){
		return listParameters.get(i);
	}
	
	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de supprimer un paramètre à un indice donné
     * 
     * @param i indice
     * 
     */
	public Parameters removeParameters(int i){
		return listParameters.remove(i);
	}

	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de récupérer l'id d'une dérivée
     * 
     * @return id de la dérivée
     * 
     */
	public int getIdDerive() {
		return idDerive;
	}

	/**<u><i>Explication générale de la méthode :</i></u>
     * <P> Cette méthode permet de mettre un nouvel id d'une dérivée
     * 
     * @param idDerive nouvel id de la dérivée
     * 
     */
	public void setIdDerive(int idDerive) {
		this.idDerive = idDerive;
	}
	
}
