package q02b.cuestionariosVTMAnu.router;





import java.util.ArrayList;

//import java.util.HashMap;

import org.apache.struts.action.ActionError;

import org.apache.struts.action.ActionErrors;

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.Q70DefaultRouterClass;

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



public class Q02bRouterObtenerCuestionariosVTMAnu extends Q70DefaultRouterClass {

	

	//private static Q70Traza tr = Q70Traza.getSingleton();

	//private static final String COMPONENTE = "Q70_ROUTERCLASS";

	

	final static String VARIABLE_LISTA= "listaCuestionariosVTMAnu";

	final static String VARIABLE_NI= "niCuesVTMAnu";

	final static String NO_HAY_DATOS = "NoHayCuestionariosVTMAnu";

	

	final static String MAPPING_NO_HAY_DATOS= "noHayDatos";

	final static String MAPPING_DEMASIADOS_DATOS = "demasiadosDatos";

	final static String MAPPING_DETALLE = "irDetalleCuestionarioVTMAnu";

	final static String MAPPING_LISTA="irListaCuestionariosVTMAnu";

	

	final static String MAPPING_ERROR_NO_CUES= "error.oi.noCuestionariosVTMAnu";

	final static String MAPPING_ERROR_DEMASIADOS_CUES= "error.oi.limite.registros";

	

	

		/**

		 * @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)

		 */  

	public  ActionForward processForward(Q70ContextoEJIE contexto,ActionErrors errores,ActionMapping mapping) throws Exception 

	{    

			ActionForward salida = new ActionForward();			

			//Q02bCuestionarioVTMAnu cuestionarioVTMAnuBD = new Q02bCuestionarioVTMAnu();

			//HashMap cuestionarioVTMAnu = new HashMap();			

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

			

			if (listaCuestionariosVTMAnu != null && listaCuestionariosVTMAnu.size() > 0 && !listaCuestionariosVTMAnu.contains(NO_HAY_DATOS))

			{

				

				//Aunque sólo haya un elemento, de momento vamos a pasar por el listado, porque en el están todos los botones que permiten interactuar al usuario

				/*if (listaCuestionariosVTMAnu.size() == 1)

				{

					//obtener los datos del cuestionario					

					cuestionarioVTMAnuBD = (Q02bCuestionarioVTMAnu)listaCuestionariosVTMAnu.get(0);

					try

					{

						//El hashmap no se necesita porque se hace la select

						//cuestionarioVTMAnu =  Q02bVoUtils.getHashMap(cuestionarioVTMAnuBD);	

						contexto.set(VARIABLE_NI, cuestionarioVTMAnuBD.getNiCuesVTMAnu().toString());

					}catch(Exception ex)

					{

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

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

					            ex.printStackTrace(pw);

					            if (tr.isTraceActive())

					            {

						tr.trace(COMPONENTE, Q70TraceLevel.ERROR, this.getClass().getName() + ":Q02bRouterObtenerCuestionariosVTMAnu: " + sw.getBuffer ().toString());

					            }			          

					            throw ex;

					}

					salida = mapping.findForward(MAPPING_DETALLE);			

				}

				else

				{*/

					salida = mapping.findForward(MAPPING_LISTA);	

				//}

			}else{//caso de demasiados resultados: lista no nula, pero de tam 0 y sin error. 

				if(listaCuestionariosVTMAnu != null && listaCuestionariosVTMAnu.size() == 0 && errores.isEmpty()){				

					errores.add("filtrar",new ActionError(MAPPING_ERROR_DEMASIADOS_CUES));				

					salida = mapping.findForward(MAPPING_DEMASIADOS_DATOS);	

				}else{//lista contiene String pero sin error

					if(listaCuestionariosVTMAnu != null && listaCuestionariosVTMAnu.contains(NO_HAY_DATOS) && errores.isEmpty()) {

						//errores.add("filtrar",new ActionError(MAPPING_ERROR_NO_CUES));			

						salida = mapping.findForward(MAPPING_NO_HAY_DATOS);	

					}else{//nula y con errores

						//se ha producido algún error

						salida = mapping.findForward(MAPPING_NO_HAY_DATOS);

					}	

				}

			}

			

			

			

			return salida;

	}

}

