package model;

public class Reponse {
	private int id; /* J'aurais du faire ça depuis le début tiens... */
	private String libelle;
	private boolean vraie;
	
	/**
	 * Type désignant la réponse à une question d'un QCM
	 * @param libelle Intitulé de la réponse
	 * @param vraie Est-ce que la réponse est bonne ?
	 */
	public Reponse(String libelle, boolean vraie) {
		this.libelle = libelle;
		this.vraie = vraie;
		this.id = this.hashCode();
	}
	/**
	 * Constructeur pour la sérialisation
	 * @param libelle Intitulé de la réponse
	 * @param vraie Est-ce que la réponse est bonne ?
	 * @param id Entier d'identification
	 */
	public Reponse(String libelle, boolean vraie, int id) {
		this.libelle = libelle;
		this.vraie = vraie;
		if (id == 0) {
			this.id = this.hashCode();
		} else {
			this.id = id;
		}
	}
	/**
	 * Getter libellé
	 * @return Libellé de la réponse
	 */
	public String getLibelle() {
		return libelle;
	}
	/**
	 * Setter libellé
	 * @param libelle Libellé de la réponse
	 */
	public void setLibelle(String libelle) {
		this.libelle = libelle;
	}
	/**
	 * Getter caractère vrai
	 * @return Vrai si la réponse est bonne, faux sinon
	 */
	public boolean isVraie() {
		return vraie;
	}
	/**
	 * Setter caractère vrai
	 * @param vraie Caractère vrai de la réponse par rapport à la question
	 */
	public void setVraie(boolean vraie) {
		this.vraie = vraie;
	}
	/**
	 * Getter ID
	 * @return ID
	 */
	public int getId() {
		return this.id;
	}
	
	public Question getQuestion(QCM qcm) {
		int i = 0;
		int j = 0;
		boolean done = false;
		while (!done && (i < qcm.getQuestions().size())) {
			j = 0;
			while (!done && (j < qcm.getQuestions().get(i).getReponses().size())) {
				if (this.equals(qcm.getQuestions().get(i).getReponses().get(j))) {
					done = true;
				}
				j++;
			}
			i++;
		}
		if (this.equals(qcm.getQuestions().get(i-1).getReponses().get(j-1))) {
			return qcm.getQuestions().get(i-1);
		} else {
			return null;
		}
	}
}
