package es.ejie.frmk.infraestructura.sms;

/**
 * Clase que crea una nueva instancia, en caso de que no exista, o
 * retorna la que tenemos. Asigna el componente delegado desde el MBean y su
 * comportamiento.
 * @version 2.0 Fecha: 07-jun-06
 */
public class Q70GestorSMS {
	
	private Q70GestorSMSInterface gestorSMSDelegado;
	private static Q70GestorSMS instancia = null;
	
	/**
	 * Clase constructora
	 */
	private Q70GestorSMS()
	{
		super();
	}
	
	/**
	 * Metodo que envia la peticionSMS mediante un delegado 
	 * @param peticionSMS
	 * @throws Exception
	 */
	public void dispatch(Q70SMSPeticion peticionSMS) throws Exception {
		this.gestorSMSDelegado.dispatch(peticionSMS); 
	}
	
	/**
	 * @param gestorSMSDelegado
	 */
	public void setComponenteDelegado (Q70GestorSMSInterface gestorSMSDelegado)
	{
		this.gestorSMSDelegado = gestorSMSDelegado;
	}

	/**
	 * @return gestorSMSDelegado
	 */
	public Q70GestorSMSInterface getComponenteDelegado()
	{
		if (null==this.gestorSMSDelegado) {
			this.gestorSMSDelegado = Q70GestorSMSServidor.getSingleton();
		}
		return this.gestorSMSDelegado;
	}
	
	/** 
	 * Método estático que devuelve la única instancia de la clase <code>Q70GestorSMS</code>.
	 * @return <code>instancia</code> Instancia de Q70GestorSMS
	 */
	public static Q70GestorSMS getSingleton()
	{
		if (instancia==null)
			instancia = new Q70GestorSMS();
		return instancia;
	}


}
