package es.ejie.frmk.infraestructura.utilidades.configurador;

import es.ejie.frmk.control.excepciones.Q70FrameworkException;

/**
 * Interfaz configurable que cumple cada componente de Geremua <br>
 */
public interface Q70ConfigurableMBean {

	/**
	 * Recupera la configuración de un componente de aplicación
	 * @return Object, porque puede ser un hashmap, una clase java...
	 * @throws Q70FrameworkException 
	 */
	public Object recuperaConfiguracion() throws Q70FrameworkException;
	
	/**
	 * Almacena la configuración de un componente de aplicación
	 * @param configuracionComponete la clase recibida depende de como el Componente tiene almacenada la Configuracion
	 */
	public void persisteConfiguracion(Object configuracionComponete);

	/**
	 * Recupera la configuración de un componente de aplicación
	 * @return String
	 */
	public String recuperaConfiguracionXML() throws Q70FrameworkException;
	
	/**
	 * Almacena la configuración de un componente de aplicación a partir del xml
	 * @param configuracionComponete la clase recibida depende de como el Componente tiene almacenada la Configuracion
	 */
	public void persisteConfiguracionXML(String xmlConfiguracion) throws Q70FrameworkException;
	
}
