/*
 * Creado el 24-nov-03
 *
 * Para cambiar la plantilla para este archivo generado vaya a
 * Ventana&gt;Preferencias&gt;Java&gt;Generación de código&gt;Código y comentarios
 */
package es.ejie.frmk.presentacion.sesiondatos;

import java.util.List;

import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.DynaClass;

import es.ejie.frmk.presentacion.sesiondatos.contexto.persistencia.Q70ManejadorPersistenciaContextoEJIE;

/**
 * @version 1.0
 * Fecha: 24-nov-03
 * 
 * Implementacion de un contexto que va a residir siempre en memoria sin lista 
 * de contexto de antecesores. Esta clase tendra mas responsabilidades como
 * controlar el acceso a los datos de contexto dependiendo del usuario, p.ej.
 * 
 * Solo se serializa el tipo y el id del contexto, ya que tiene un Q70ContextoGlobal 
 * tiene que residir en la memoria de la MV receptora.
 * 
 * @see es.ejie.frmk.presentacion.sesiondatos.Q70ContextoBasico
 * @see es.ejie.frmk.presentacion.sesiondatos.Q70ContextoPersistente
 */
public class Q70ContextoGlobal extends Q70ContextoPersistente {
		
	/**
	 * Necesario porque es una clase Externalizable, debe tener un constructor sin argumentos
	 */
	public Q70ContextoGlobal() {
		super();
		manejadorSeguridad = new Q70SeguridadPorUsuarioContextoEJIE();
	}
	
	/**
	 * Construye un nuevo <code>Q70ContextoGlobal</code> asociado a la instancia de 
	 * <code>DynaClass</code> especificada.
	 *
	 * @param dynaClass La DynaClass asociada
	 */
	public Q70ContextoGlobal(DynaClass dynaClass) {
		super(dynaClass);
		manejadorSeguridad = new Q70SeguridadPorUsuarioContextoEJIE();
	}
	
	/**
	 * Construye un nuevo <code>Q70ContextoGlobal</code> a partir de una instancia de 
	 * <code>ManejadorPersistenciaContextoEJIE</code> asignadole un tipo de contexto y un identificativo de contexto.
	 *
	 * @param aDynaBean 
	 * @param aManejadorPersistencia
	 * @param aTipoContexto
	 * @param aIdContexto
	 */
	public Q70ContextoGlobal(DynaBean aDynaBean, Q70ManejadorPersistenciaContextoEJIE aManejadorPersistencia, String aTipoContexto, String aIdContexto) {
		super(aDynaBean, aManejadorPersistencia, aTipoContexto, aIdContexto);
		manejadorSeguridad = new Q70SeguridadPorUsuarioContextoEJIE();	
	}

	protected void notifyChanges(String nombreCampoModificado, Object nuevoValorCampoModificado, List listaSinNotificar) {
		super.notifyChanges(nombreCampoModificado,nuevoValorCampoModificado, listaSinNotificar);
		if ( !getManejadorPersistencia().isMismoContexto() ){
			getManejadorPersistencia().doSaveContexto();
		}
	}

}
