
package es.ejie.frmk.infraestructura.logs.base.interfaces;


import java.util.Map;

import es.ejie.frmk.infraestructura.logs.base.Q70DatosComunes;
import es.ejie.frmk.infraestructura.logs.base.impl.Q70GestorDatosComunesImpl;


/**
 * <p>Debe de implementarse de forma que permita recuperar y almacenar datos asociados al
 * thread actual.</p>
 * <p>Su objetivo es no tener que pasar como parámetros datos que son independientes del
 * mensaje a loggear. Ejemplos de estos datos pueden ser el usuario conectado, 
 * la operación que está realizando, el canal utilizado ...
 * Típicamente se establecerán sus valores en el doGet o doPost del servlet controlador
 * y se liberará la memoria al final del método. El método log de Q70Log se encargará de hacer
 * peticiones de información para conformar su mensaje completo.
 * Actualmente existe una implementación para log4J</p>
 * @see Q70GestorDatosComunesImpl
 * @author Carlos Rodriguez
 * @version 1.0  fecha: 10-dic-03
 * 
 */
public interface Q70GestorDatosComunes
{
	/**
	 * Debe guardar el conjunto de propiedades data y asociarlo al thread actual. 
	 * @param data conjunto de datos.
	 */
	public void  setData(Q70DatosComunes data);
	
	/**
	 * 
	 */
	public void clearData();
	
	/**
	 * @return
	 */
	public Q70DatosComunes getData();
	
	/**
	 * @param property
	 * @return
	 */
	public String getProperty(String property);
	
	/**
	 * @return
	 */
	public Map getDataMap();
	
}
