package client.model.problem;

/** <u><b>Explication générale de la classe :</b></u>
 * <P>Cette classe permet de créer un paramètre
 *
 * @author Dream Team - ING2
 */
public class Parameters {

    // Déclaration de variables
    private String type;
    private String content;

    /**<u><i>Explication générale du constructeur :</i></u>
     * <P> Constructeur de la classe permettant de créer un objet de type Parameters.
     * 
     * @param type Objet de type String
     * @param content Objet de type String
     * 
     */
    public Parameters(String type, String content){
        this.type = type;
        this.content = content;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le content.
     *
     * @return content.
     * 
     */
    public String getContent() {
        return content;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode permet d'assigner un content.
     * 
     * @param content contenu du paramètre
     * 
     */
    public void setContent(String content) {
        this.content = content;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode retourne le type.
     *
     * @return type.
     * 
     */
    public String getType() {
        return type;
    }

    /**<u><i>Explication de la méthode :</i></u>
     * <P> Cette méthode permet d'assigner un type.
     * 
     * @param type type de paramètre
     * 
     */
    public void setType(String type) {
        this.type = type;
    }
    
    /**<u><i>Explication de la méthode :</i></u>
     * <P> Enum Initial Condition permettant de simplifier l'affectation aux variables
     * 
     */
    public enum  InitialCondition {
        INITIAL_VECTOR("point_depart"),
        EPSILON("epsilon"),
        PATIENCE("patience"),
        STEP("pas"),
        TEMPERATURE("temperature"),
        EXPLORATION_STEP("pas-exploration"),
        POPULATION_SIZE("taille-population"),
        CROSS_PROBABILITY("probabilite-croisement"),
        MUTATION_PROBABILITY("probabilite-mutation"),
        BOUNDS_MIN("borne-inferieure"),
        BOUNDS_MAX("borne-superieure");

        private String value;

        private InitialCondition(String value) {
            this.value = value;
        }

        public String toString() {
            return value;
        }
    }

}
