package es.ejie.frmk.control.arranque;

import java.util.Map;

import javax.management.MBeanServer;
import javax.naming.NamingException;

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

public interface Q70GestorMBeanServer {

	/**
	 * Método que retorna la interfaz MBeanHome de una instancia de servidor.
	 * @return
	 * @throws NamingException
	 * @throws Q70FrameworkException
	 */
	public MBeanServer getMBeanServer() throws NamingException, Q70FrameworkException;

	/**
	 * Método que retorna una instancia de tipo MBeanServer en base a una dirección url. 
	 * @param paramMBeanServer
	 * @return
	 * @throws NamingException
	 */
	public MBeanServer getMBeanServer(Object paramMBeanServer) throws NamingException;
	
	/**
	 * Método para fijar las diferentes propiedades y sus valores asociados de una instancia
	 * @param atributosMBeanServer
	 */
	public void setMapaPropiedades(Map atributosMBeanServer);
	
	/**
	 * Método que retorna el identificativo de una instancia
	 * @return
	 */
	public String getIdInstancia();
	
	/**
	 * Método que retorna la dirección url de una instancia
	 * @return
	 */
	public String getUrlInstancia();
	
	/**
	 * Método que retorna el nombre de Cluster al que pertenece una instancia
	 * @return
	 */
	public String getNombreClusterInstancia();
	
	/**
	 * Método que retorna el nombre de Dominio al que pertenece una instancia
	 * @return
	 */
	public String getNombreDominio();
}
