

/**
 * Fonction anonyme de déclaration de la classe Proposition.
 * Certaines fonctions ne sont visible que par les
 * classes concernées (déclarées ici).
 * Ce mécanisme de fonction anonyme permet de reproduire
 * un système d'encapsulation digne d'un langage de
 * programmation évolué (comme le Java).
 */
(function() {


	var WIN = this,
			EASY = WIN.ev;

	if (!EASY) {
		throw new Error("Le namespace 'EASY' doit exister");
	}
	if (!EASY.tools) {
		throw new Error("Le namespace 'EASY.tools' doit exister");
	}

	if (!EASY.me) {
		return;
	}

	if (!EASY.me.Lieu) {
		throw new Error("La classe 'EASY.me.Lieu' doit exister");
	}

	if (EASY.me.Proposition) {
		return;
	}
	EASY.me.Proposition = function() {
		/**
		 * paramètre déterminant pour quel lieu est faite la proposition (DEPART_ALLER, ARRIVEE_ALLER, DEPART_RETOUR ou ARRIVEE_RETOUR)
		 */
		this.parametre = null;
		/**
		 * lieux proposés
		 */
		this.lieux = [];
	};

	EASY.me.Proposition.prototype = {
		/**
		 * Ajoute un lieu à la proposition
		 * @param {Object} Lieu Lieu à ajouter à la liste des lieux.
		 */
		addLieu: function(lieu) {
			this.lieux.push(lieu);
		},
		toString: function() {
			var s = 'parametre='+ this.parametre + ' [';
			for (var i = 0; i < this.lieux.length; i++) {
				s = s + ' '+ this.lieux[i].nom;
			}
			s = s + ']';
			return s;
		}
	};

	EASY.log.debug('EASY.me.Proposition ok');
}()); // exécution de la fonction anonyme ici

