package es.ejie.frmk.infraestructura.tablas;

import java.util.ArrayList;
import java.util.Map;

import es.ejie.frmk.control.excepciones.Q70FrameworkException;
import es.ejie.frmk.infraestructura.utilidades.configurador.Q70Administrable;

/**
 * @version 1.0
 * Fecha: 19-dic-03
 */
public interface Q70GestorTablasCodigosServidorInterface extends Q70GestorTablasCodigosInterface, Q70Administrable{

		/**
		 * Si existe la tabla en el catálogo, devuelve True.
		 * @param aTable nombre de la tabla a comprobar
		 * @return true, si la tabla existe en el catálogo; false, en caso contrario
		 */
		public boolean tableExist(String aTable);
			
		/**
		 * Obtiene un Map (nombre del campo - valor del campo) con información de la tabla especificada.
		 * @param aTable nombre de la tabla a consultar
		 * @return un objeto Map
		 */
		public Map getInfoTable(String aTable);
		
		
		/**
		 * Elimina de memoria la tabla pasada como parámetro 
		 * @param aTable nombre de la tabla a recargar
		 */
		public void reload(String aTable);
		
		
		/**
		 * Obtiene un arrayList con el nombre de las tablas cargadas en memoria
		 * @return un objeto ArrayList
		 */
		public ArrayList getLoadedTables();
		
		/**
		 * Establece la configuracion del Gestor de Tablas de Codigos
		 * @param catalogo el catálogo de tablas
		 * @throws Q70FrameworkException 
		 */
		public void setCatalog(Q70Catalogo catalogo) throws Q70GestorTablasException;
		
		/**
		 * Recupera el catalogo (la configuracion)
		 * @return un objeto Q70Catalogo
		 */
		public Q70Catalogo getCatalog();
		
		/**
		 * Obtiene el máximo número posible de tablas a ser cargadas en memoria para cada aplicación
		 * @return int
		 */
		public int getMaximoNumeroTablasEnMemoria();
		
}