/**
 * Implémentation du Subject du pattern Observer.
 *
 * @package carif_commun
 */
var Subject = Class.create({

	/**
	 * Constructeur : initialise la liste des observateurs.
	 */
	initialize: function() {
		this.observateurs = new Array();
	},

	/**
	 * Ajout d'un observateur.
	 */
	attache: function(observateur) {
		this.observateurs.push(observateur);
	},

	/**
	 * Enlève un observateur.
	 */
	detache: function(observateur) {
		this.observateurs = this.observateurs.without(observateur);
	},

	/**
	 * Informe les observateurs d'un changement.
	 */
	notifier: function(contexte) {
		// appelle la méthode "mise_a_jour" sur tous les observateurs
		this.observateurs.invoke('mise_a_jour', contexte);
	}
});
