package org.tela_botanica.client;

import org.tela_botanica.client.interfaces.Rafraichissable;
import org.tela_botanica.client.modeles.dao.ListeUtilisateurAsynchroneDAO;
import org.tela_botanica.client.modeles.dao.UtilisateurAsynchroneDAO;
import org.tela_botanica.client.modeles.objets.Configuration;

/**
 * Modele generique permettant la validation, l'acces aux donnees distantes et la présentation des donnees en retour
 * Ne previent pas les vues. Est appelle par le mediateur qui traite le resultat.
 */
public class CarnetEnLigneModele {

	/**
	 * booleen qui verifie l'unicite de l'instance
	 */
	private static boolean estInstancie = false ;  
		
	/**
	 * La configuration en cours
	 */
	private Configuration config = null;

	/**
	 * Constructeur
	 */	
	public static CarnetEnLigneModele Instance()
	{
		//TODO: voir si ca sert encore à quelque chose 
		if(!estInstancie)
		{
			estInstancie = true ;
			return new CarnetEnLigneModele() ;
		}
		else
		{
			return null ;
		}
	}

	public void deconnecterUtilisateur(Rafraichissable r, String user) {
		new UtilisateurAsynchroneDAO(this).deconnecterUtilisateur(r,user );
	}

	public void connecterUtilisateur(Rafraichissable r, String login , String password) {		
		new UtilisateurAsynchroneDAO(this).connecteUtilisateur(r,login, password );
	}

	public void getEtatUtilisateur(Rafraichissable r) {		
		new UtilisateurAsynchroneDAO(this).getEtatUtilisateur(r);		
	}

	public void obtenirListeUtilisateur(Rafraichissable r,String rech, String identifiant) {		
		ListeUtilisateurAsynchroneDAO liDAO = new ListeUtilisateurAsynchroneDAO(this);
		liDAO.obtenirListeUtilisateur(r,rech,identifiant);
	}

	public void accepterLicenceUtilisateur(String identifiantUtilisateur) {
		UtilisateurAsynchroneDAO utilisateurDao = new UtilisateurAsynchroneDAO(this);
		utilisateurDao.accepterLicence(identifiantUtilisateur);
	}
}
