package es.ejie.frmk.infraestructura.poolCache;

import java.io.Serializable;
import java.util.HashMap;

/**
 * Clase que representa la configuración de varias cachés.
 * @version 2.0 Fecha: 16-feb-06
 */
public class Q70BeanConfiguracionCaches extends HashMap implements Serializable {

	/**
	 * Establece el intervalo de ejecución de la tarea de limpieza
	 * @param Long tiempo en milisegundos  
	 */
	public void setTInterv(Long t) {
		this.put(Q70Constantes.TIEMPO_INTERVALO, t);
	}
	
	/**
	 * Establece el tamaño máximo de caché en nº de elementos a almacenar
	 * @param Integer tamaño
	 */
	public void setTamanoMax(Integer tam) {
		this.put(Q70Constantes.TAMANO_MAX, tam);
	}
	
	/**
	 * Establece el tamaño máximo de memoria que pueden ocupar los objetos almacenados
	 * @param Long tamaño en bytes 
	 */
	public void setMemoriaMax(Long mem) {
		this.put(Q70Constantes.MEMORIA_MAX, mem);
	}
	
	/**
	 * Método que añade la configuración de una caché.
	 * @param idCache Identificativo de la caché.
	 * @param Q70BeanConfiguracionCache configuracion de la cache.
	 */
	public void putConfiguracionCache(String idCache, Q70BeanConfiguracionCache configuracionCache) {
		this.put(idCache, configuracionCache);
	}
	
	/**
	 *  Devuelve el intervalo de ejecución de la tarea de limpieza
	 * @return Long tiempo en milisegundos
	 */
	public Long getTInterv() {
		return (Long)this.get(Q70Constantes.TIEMPO_INTERVALO);
	}
	
	/**
	 * Devuelve el tamaño máximo de la caché en nº de objetos a almacenar
	 * @return Integer tamañoMax
	 */
	public Integer getTamanoMax() {
		return (Integer)this.get(Q70Constantes.TAMANO_MAX);
	}
	
	/**
	 * Devuelve el tamaño de memoria máximo que puede ocupar los objetos almacenados
	 * @return Long memoriaMax
	 */
	public Long getMemoriaMax() {
		return (Long)this.get(Q70Constantes.MEMORIA_MAX);
	}
	
	/**
	 * Método que devuelve la configuración de una caché.
	 * @param idCache Identificativo de la caché.
	 * @return Q70BeanConfiguracionCache configuracion de la cache.
	 */
	public Q70BeanConfiguracionCache getConfiguracionCache(String idCache) {
		return (Q70BeanConfiguracionCache)this.get(idCache);
	}
}
