package q02b.cuestionariosVTMAnu.action;



import java.util.ArrayList;

//import java.util.HashMap;



import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;



import org.apache.struts.action.ActionErrors;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;



//import q02b.exe.cuestionariosVTMAnu.valueobjects.Q02bCuestionarioVTMAnu;

//import q02b.exe.utils.Q02bVoUtils;

import es.ejie.frmk.infraestructura.traza.Q70TraceLevel;

import es.ejie.frmk.infraestructura.traza.Q70Traza;

import es.ejie.frmk.presentacion.operacion.paso.Q70ActionPasoOP;

import es.ejie.frmk.presentacion.sesiondatos.Q70ContextoEJIE;

import es.ejie.frmk.negocio.adaptadorinvocacion.Q70AdaptadorInvocacion;



import org.w3c.dom.Document;





/**

 * @version 1.0

 * Fecha: 08-mar-04

 */

public class Q02bActionGenerarXmlFirma extends Q70ActionPasoOP {

	//Traza del servidor

	private static Q70Traza tr = Q70Traza.getSingleton();

	//Componente en el cual nos encontramos

	final static String COMPONENTE = "ACTION PASOOP";

	//EJB a utilizar

	final static String EJB_CUES_VTM_ANU= "q02b.q02bCuestionariosVTMAnuSesionEJB";

	//Método a utilizar en el EJB

	final static String EJB_METODO_CUES_VTM_ANU_XML= "obtenerXmlFirmaCuestionariosVTMAnu";

	//Variables a utilizar

	//Pendiente

	//Variables del contexto

	final static String	LISTA_CUESTIONARIOS		= "listaCuestionariosVTMAnu";

	final static String	DOCUMENTO_XML_CUES_VTM_ANU	= "cuestinariosVTMAnuFirmaXml";

	//Declaracion de mappings

	final static String MAPPING_OK = "ok";

	//Método para la traza

	final static String TRACE_METODO_POP = "processOP";

	final static String TRACE_METODO_FW= "processForward";



	/**

	 * @see es.ejie.frmk.presentacion.operacion.paso.ActionPasoOP#processOP(es.ejie.frmk.presentacion.sesiondatos.ContextoEJIE, org.apache.struts.action.ActionErrors, org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

	 */

	protected void processOP(

   

		Q70ContextoEJIE contexto,

		ActionErrors errores,

		ActionMapping mapping,

		ActionForm form,

		HttpServletRequest request,

		HttpServletResponse response)

		throws Exception {



		//Recogida de atributos del contexto de OP

		ArrayList listaCuestionariosVTMAnu = (ArrayList)contexto.get(LISTA_CUESTIONARIOS);

		

		   if (tr.isTraceActive()) 

        		   {

            			tr.trace(COMPONENTE, Q70TraceLevel.INFO, TRACE_METODO_POP + ": entrando -> Arr DatosCuesVTMAnu ="+ listaCuestionariosVTMAnu);

            			tr.trace(COMPONENTE, Q70TraceLevel.INFO, TRACE_METODO_POP + ": entrando -> Nº de registros en el listado  ="+ listaCuestionariosVTMAnu.size());

        		  }

		

		try{

			//Tipos de parámetros para el EJB

			Class[] paramType = new Class[1];

			paramType[0] = ArrayList.class;

			//Se indica en un array los objetos con los datos para enviar al EJB

			Object[] o = new Object[1];

			o[0]= listaCuestionariosVTMAnu;

			

			//Se invoca la función del Framework que te permite obtener el ArrayList del EJB

			Document documentoCuesVTMAnuXml = (Document)Q70AdaptadorInvocacion.invokeFunction(EJB_CUES_VTM_ANU,EJB_METODO_CUES_VTM_ANU_XML,o,paramType);

			//Se pone en el contexto el documento

			contexto.set(DOCUMENTO_XML_CUES_VTM_ANU,documentoCuesVTMAnuXml);

		}

		catch(Exception ex)

		{

			//Se resetea la variable documento del contexto

			contexto.set(DOCUMENTO_XML_CUES_VTM_ANU,null);

			java.io.StringWriter sw = new java.io.StringWriter();

	            		java.io.PrintWriter pw = new java.io.PrintWriter(sw);

	            		ex.printStackTrace(pw);

	            		tr.trace(COMPONENTE, Q70TraceLevel.ERROR,

	            		TRACE_METODO_POP + ": " + sw.getBuffer().toString());

		}

		

	}



	/**

	 * @see es.ejie.frmk.presentacion.operacion.paso.ActionPasoOP#processForward(es.ejie.frmk.presentacion.sesiondatos.ContextoEJIE, org.apache.struts.action.ActionErrors, org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)

	 */

	protected ActionForward processForward(

		Q70ContextoEJIE contexto,

		ActionErrors errores,

		ActionMapping mapping,

		ActionForm form,

		HttpServletRequest request,

		HttpServletResponse response)

		throws Exception 

	{

		if (tr.isTraceActive()){

			tr.trace(COMPONENTE, Q70TraceLevel.INFO, this.getClass().getName() + TRACE_METODO_FW + " :entrando");

		}

		ActionForward salida = new ActionForward();

		salida = mapping.findForward(MAPPING_OK);

		return salida;

	}



}

