package model;

import java.util.ArrayList;

public class Module {
	private String libelle;
	private String syllabus;
	private ArrayList<Module> pere;
	
	/**
	 * Type désignant un module d'enseignement
	 * @param libelle Titre du module
	 * @param syllabus Description du module
	 * @param pere Pères du module
	 * @param fils Fils du module
	 */
	public Module(String libelle, String syllabus, ArrayList<Module> pere) {
		this.libelle = libelle;
		this.syllabus = syllabus;
		this.pere = pere;
	}
	/**
	 * Type désignant un module d'enseignement (sans père ni fils)
	 * @param libelle Titre du module
	 * @param syllabus Description du module
	 */
	public Module(String libelle, String syllabus) {
		this.libelle = libelle;
		this.syllabus = syllabus;
		this.pere = new ArrayList<Module>();
	}
	/**
	 * Getter libellé d'un module
	 * @return Libellé du module
	 */
	public String getLibelle() {
		return libelle;
	}
	/**
	 * Setter libellé d'un module
	 * @param libelle Libellé d'un module
	 */
	public void setLibelle(String libelle) {
		this.libelle = libelle;
	}
	/**
	 * Getter syllabus d'un module
	 * @return Syllabus d'un module
	 */
	public String getSyllabus() {
		return syllabus;
	}
	/**
	 * Setter syllabus d'un module
	 * @param syllabus Syllabus d'un module
	 */
	public void setSyllabus(String syllabus) {
		this.syllabus = syllabus;
	}
	/**
	 * Getter pères d'un module
	 * @return Pères d'un module
	 */
	public ArrayList<Module> getPere() {
		return pere;
	}
	/**
	 * Setter pères d'un module
	 * @param pere Liste pères d'un module
	 */
	public void setPere(ArrayList<Module> pere) {
		this.pere = pere;
	}
	
	public boolean equals(Object o) {
		if (o instanceof Module) {
			Module m = (Module) o;
			return this.libelle.equals(m.getLibelle());
		} else {
			return false;
		}
	}
}
