// Path: src/main/java/fr/arpinum/cocoritest/affirmation/booleene/AffirmationBooleene.java
// public interface AffirmationBooleene {
// 
// 	/**
// 	 * Affirme que c'est vrai.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estVrai();
// 
// 	/**
// 	 * Affirme que c'est faux.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estFaux();
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/affirmation/booleene/AffirmationBooleeneAuFeminin.java
// public interface AffirmationBooleeneAuFeminin {
// 
// 	/**
// 	 * Affirme que c'est vrai.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estVraie();
// 
// 	/**
// 	 * Affirme que c'est faux.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estFausse();
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/interne/affirmation/Affirmation.java
// public class Affirmation {
// 
// 	protected void échoue(String raison, Object... supplément) {
// 		throw new ExceptionAffirmation(String.format(raison, supplément));
// 	}
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/interne/affirmation/objet/AffirmationObjetAuMasculinDeBase.java
// public class AffirmationObjetAuMasculinDeBase<TObjet> extends AffirmationObjetDeBase<TObjet,
// 		Conjonction<AffirmationObjetAuMasculin<TObjet>>> implements
// 		AffirmationObjetAuMasculin<TObjet> {
// 
// 	public AffirmationObjetAuMasculinDeBase(TObjet objet) {
// 		super(objet);
// 	}
// 
// 	@Override
// 	public Conjonction<AffirmationObjetAuMasculin<TObjet>> estNul() {
// 		return est(null);
// 	}
// 
// 	@Override
// 	public Conjonction<AffirmationObjetAuMasculin<TObjet>> nEstPasNul() {
// 		return nEstPas(null);
// 	}
// 
// 	@Override
// 	protected Conjonction<AffirmationObjetAuMasculin<TObjet>> créeConjonction() {
// 		return () -> this;
// 	}
// }


import fr.arpinum.cocoritest.affirmation.booleene.AffirmationBooleene;
import fr.arpinum.cocoritest.affirmation.booleene.AffirmationBooleeneAuFeminin;
import fr.arpinum.cocoritest.interne.affirmation.Affirmation;
import fr.arpinum.cocoritest.interne.affirmation.objet.AffirmationObjetAuMasculinDeBase;
/*
 * Copyright (C) 2013, Arpinum
 *
 * Cocoritest est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU Lesser
 * General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de la licence,
 * soit (à votre gré) toute version ultérieure.
 *
 * Cocoritest est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; pas même la garantie
 * implicite de COMMERCIABILISABILITÉ ni d'ADÉQUATION à UN OBJECTIF PARTICULIER. Consultez la GNU Lesser General
 * Public License pour plus de détails.
 *
 * Vous devez avoir reçu une copie de la GNU Lesser General Public License en même temps que Cocoritest ; si ce n'est
  * pas le cas, consultez http://www.gnu.org/licenses.
 */

package fr.arpinum.cocoritest.interne.affirmation.booleene;


public class AffirmationBooleeneDeBase extends Affirmation implements AffirmationBooleene,
		AffirmationBooleeneAuFeminin {

	public AffirmationBooleeneDeBase(Boolean valeur) {
		booléen = valeur;
	}

	@Override
	public void estVrai() {
		affirmeQueLeBooléenEst(true);
	}

	@Override
	public void estVraie() {
		estVrai();
	}

	@Override
	public void estFaux() {
		affirmeQueLeBooléenEst(false);
	}

	@Override
	public void estFausse() {
		estFaux();
	}

	private void affirmeQueLeBooléenEst(boolean attendue) {
// Path: src/main/java/fr/arpinum/cocoritest/affirmation/booleene/AffirmationBooleene.java
// public interface AffirmationBooleene {
// 
// 	/**
// 	 * Affirme que c'est vrai.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estVrai();
// 
// 	/**
// 	 * Affirme que c'est faux.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estFaux();
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/affirmation/booleene/AffirmationBooleeneAuFeminin.java
// public interface AffirmationBooleeneAuFeminin {
// 
// 	/**
// 	 * Affirme que c'est vrai.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estVraie();
// 
// 	/**
// 	 * Affirme que c'est faux.
// 	 *
// 	 * @throws fr.arpinum.cocoritest.interne.affirmation.ExceptionAffirmation si l'affirmation est erronée.
// 	 */
// 	void estFausse();
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/interne/affirmation/Affirmation.java
// public class Affirmation {
// 
// 	protected void échoue(String raison, Object... supplément) {
// 		throw new ExceptionAffirmation(String.format(raison, supplément));
// 	}
// }
// 
// Path: src/main/java/fr/arpinum/cocoritest/interne/affirmation/objet/AffirmationObjetAuMasculinDeBase.java
// public class AffirmationObjetAuMasculinDeBase<TObjet> extends AffirmationObjetDeBase<TObjet,
// 		Conjonction<AffirmationObjetAuMasculin<TObjet>>> implements
// 		AffirmationObjetAuMasculin<TObjet> {
// 
// 	public AffirmationObjetAuMasculinDeBase(TObjet objet) {
// 		super(objet);
// 	}
// 
// 	@Override
// 	public Conjonction<AffirmationObjetAuMasculin<TObjet>> estNul() {
// 		return est(null);
// 	}
// 
// 	@Override
// 	public Conjonction<AffirmationObjetAuMasculin<TObjet>> nEstPasNul() {
// 		return nEstPas(null);
// 	}
// 
// 	@Override
// 	protected Conjonction<AffirmationObjetAuMasculin<TObjet>> créeConjonction() {
// 		return () -> this;
// 	}
// }


// Path: src/main/java/fr/arpinum/cocoritest/interne/affirmation/booleene/AffirmationBooleeneDeBase.java
import fr.arpinum.cocoritest.affirmation.booleene.AffirmationBooleene;
import fr.arpinum.cocoritest.affirmation.booleene.AffirmationBooleeneAuFeminin;
import fr.arpinum.cocoritest.interne.affirmation.Affirmation;
import fr.arpinum.cocoritest.interne.affirmation.objet.AffirmationObjetAuMasculinDeBase;

/*
 * Copyright (C) 2013, Arpinum
 *
 * Cocoritest est un logiciel libre ; vous pouvez le redistribuer ou le modifier suivant les termes de la GNU Lesser
 * General Public License telle que publiée par la Free Software Foundation ; soit la version 3 de la licence,
 * soit (à votre gré) toute version ultérieure.
 *
 * Cocoritest est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; pas même la garantie
 * implicite de COMMERCIABILISABILITÉ ni d'ADÉQUATION à UN OBJECTIF PARTICULIER. Consultez la GNU Lesser General
 * Public License pour plus de détails.
 *
 * Vous devez avoir reçu une copie de la GNU Lesser General Public License en même temps que Cocoritest ; si ce n'est
  * pas le cas, consultez http://www.gnu.org/licenses.
 */

package fr.arpinum.cocoritest.interne.affirmation.booleene;


public class AffirmationBooleeneDeBase extends Affirmation implements AffirmationBooleene,
		AffirmationBooleeneAuFeminin {

	public AffirmationBooleeneDeBase(Boolean valeur) {
		booléen = valeur;
	}

	@Override
	public void estVrai() {
		affirmeQueLeBooléenEst(true);
	}

	@Override
	public void estVraie() {
		estVrai();
	}

	@Override
	public void estFaux() {
		affirmeQueLeBooléenEst(false);
	}

	@Override
	public void estFausse() {
		estFaux();
	}

	private void affirmeQueLeBooléenEst(boolean attendue) {
		new AffirmationObjetAuMasculinDeBase<>(booléen).est(attendue);