/*
 * Creado el 02-feb-04
 */
package es.ejie.frmk.infraestructura.poolCache;

/**
 * Interface para controlar la Cache propia de las aplicaciones.
 * Cuando una aplicación quiera guardar en caché un objeto, no tiene más que invocar al método <code>addElement</code>: el objeto es almacenado con la clave dada y el timestamp de ese instante, con objeto de controlar el tiempo de vida del mismo.
 * Cuando se quiera recuperar el objeto basta con invocar al método <code>getElement</code> indicando la clave con la que se almacenó el objeto. En ese momento, también se actualiza el timestamp correspondiente al instante de última utilización con objeto de controlar el tiempo de inactividad.
 * 
 * @version 1.0 Fecha: 02-feb-04
 * @version 2.0 Fecha: 16-feb-06
 */
public interface Q70GestorCacheInterface {

	/**
	 * Añade un objeto a la cache. Si ya existe en la cache un objeto con la
	 * misma clave pero con distinto valor, entonces devuelve el objeto anterior
	 * y añade el nuevo (lo sobreescribe). En otro caso, devuelve null.
	 * @param clave clave del objeto a añadir a la cache.
	 * @param objeto objeto a añadir a la cache.
	 * @return un objeto, si ya existía un objeto en la caché y su valor era
	 *         diferente al que se va a añadir. null, en otro caso.
	 */
	public Object addElement(Object clave, Object objeto);

	/**
	 * Obtiene el objeto cuya clave se pasa como parámetro. En caso de que no se
	 * encuentre en la cache, devuelve null.
	 * @param clave clave del objeto a recuperar de la cache.
	 * @return un objeto si se encuentra en la cache. null en caso contario.
	 */
	public Object getElement(Object clave);

}
