es.mcu.yingo.controladores
Class ControladorEjecutaTarea

java.lang.Object
  extended by org.springframework.context.support.ApplicationObjectSupport
      extended by org.springframework.web.context.support.WebApplicationObjectSupport
          extended by org.springframework.web.servlet.support.WebContentGenerator
              extended by org.springframework.web.servlet.mvc.AbstractController
                  extended by es.mcu.yingo.controladores.SuperControlador
                      extended by es.mcu.yingo.controladores.ControladorEjecutaTarea
All Implemented Interfaces:
org.springframework.context.ApplicationContextAware, org.springframework.web.servlet.mvc.Controller
Direct Known Subclasses:
ControladorEjecutaPendiente, ControladorTareaBusqueda

public class ControladorEjecutaTarea
extends SuperControlador

Este es quizá el controlador más importante de la aplicación.
Se encarga de la ejecución de la tarea, y distingue entre estos estados:

INICIO
Se valida que la tarea no esté fuera de plazo
Se cargan las listas de entrada con los datos que vengan de la base de datos
Se precargan los campos de salida con los datos que devuelva el precargador de la tarea
Se presenta el formulario a cumplimentar
CARGA
Se valida la tarea, si hay error, se muestra dicho error
Si no hay error de meten los datos en sesión y se ejecuta la tarea
CARGA_FICHERO
Se repinta la tarea para que aparezcan los enlaces al fichero
BORRAR_FICHERO
Se elimina el fichero y se repinta la tarea

Author:
carlos.garcia.h

Field Summary
static java.lang.String BORRAR_FICHERO
          Opción para borrar el fichero
static java.lang.String CARGA_FICHERO
          Opción para cargar el fichero
static java.lang.String CLAVE_CODIGO_EXPEDIENTE
          Clave para el codigo de expediente
static java.lang.String CLAVE_DATOS_EXPEDIENTE
          Clave para los datos del expediente
static java.lang.String CLAVE_DATOS_FORMULARIO
          Clave para los datos del formulario
static java.lang.String CLAVE_MENSAJE_CONFIRM
          Clave para mostrar el mensaje de confirmación de la tarea
static java.lang.String CLAVE_PARAMETRO_FICHERO_SELECCIONADO
          Fichero que ha sido seleccionado para la acción
static java.lang.String CLAVE_TAREA
          Clave para la tarea
private  Dao daoConsultas
          Utilidad Dao para realizar consultas
static java.lang.String SUFIJO_CAMPO_SEPARADOR_MULTIPLE
          Sufijo del campo separador múltiple
private  UtilFichero utilFicheroSession
          Utilidad de fichero de sesión
private  java.util.Map<java.lang.String,java.lang.String> vistaFormulario
          Map de vistas donde se mostrará el formulario de la tarea
private  java.util.HashMap<java.lang.String,java.lang.String> vistaResultado
          Map de vistas donde se redirigirá la tarea para mostrar el resultado de la ejecución
 
Fields inherited from class es.mcu.yingo.controladores.SuperControlador
BUSCAR, CARGA, CLAVE_DATOS_RESULTADO, FICHERO, INICIO, logger, PAGINAR, PARAM_LISTA_ERROR
 
Fields inherited from class org.springframework.web.servlet.support.WebContentGenerator
HEADER_CACHE_CONTROL, HEADER_EXPIRES, HEADER_PRAGMA, METHOD_GET, METHOD_HEAD, METHOD_POST
 
Constructor Summary
ControladorEjecutaTarea()
           
 
Method Summary
protected  org.springframework.web.servlet.ModelAndView accionBorrarFichero(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Acción que borra un fichero del formulario.
protected  org.springframework.web.servlet.ModelAndView accionCarga(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Recoge los parametros y el map de datos.
protected  org.springframework.web.servlet.ModelAndView accionCargaFichero(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Cada vez que se añade un fichero, se repinta la tarea para que aparezcan los enlaces al fichero
protected  org.springframework.web.servlet.ModelAndView accionInicio(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Carga el formulario correspondiente al argumento que se le pasa en el request y precarga los datos en dicho formulario
protected  org.springframework.web.servlet.ModelAndView crearVistaFormulario(java.util.Map datosFormulario, javax.servlet.http.HttpServletRequest request)
          Crea la vista que muestra el formulario Se envían a la vista, por un lado, los datos a precargar datosFormulario y por otro lado, se busca en la base de datos los campos de entrada
protected  org.springframework.web.servlet.ModelAndView distribuidor(java.lang.String accion, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Este método hace una llamada a las diversas acciones de los 'eventos' básicos, según el valor que viene cargado en la acción
private  org.springframework.web.servlet.ModelAndView ejecutarTarea(javax.servlet.http.HttpServletRequest request, Tarea tarea, java.util.Map datosFormulario, Usuario usuario)
          Lanza la ejecución de la tarea, si todo va bien, devuelve el ModelAndView
En el caso de que se produzca algún error, se lanza una excepción
 Dao getDaoConsultas()
          Utilidad Dao para realizar consultas
 UtilFichero getUtilFicheroSession()
          Utilidad de fichero de sesión
 java.util.Map<java.lang.String,java.lang.String> getVistaFormulario()
          Map de vistas donde se mostrará el formulario de la tarea
 java.util.HashMap<java.lang.String,java.lang.String> getVistaResultado()
           
protected  org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          Se sobreescribe el método para recoger el parámetro acción que me derterminará a que evento se está llamando
private  java.util.Map<java.lang.String,java.lang.String> lanzarIniciadores(Tarea miTarea, Usuario usuario, java.lang.String idAplicacion, java.lang.String codExp)
          Recupera la lista de iniciadores de la tarea y los va invocando uno por uno.
protected  DatosVistaMuestraForm obtenerDatosVistaMuestraForm(javax.servlet.http.HttpServletRequest request)
          Obtiene el objeto de DatosVistaMuestraForm
protected  java.util.Map obtenerDatosVistaMuestraForm(javax.servlet.http.HttpServletRequest request, Tarea miTarea)
          Recupera el objeto DatosVistaMuestraForm y se recuperan los datos que se mostrarán en las listas de entrada de la tarea
protected  java.util.Map obtenerMapCampoFichero(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String,java.lang.String> valores)
          Obtiene los datos de la tarea que son de tipo fichero
private  java.util.Map obtenerMapCampoTexto(javax.servlet.http.HttpServletRequest request, java.util.Map<java.lang.String,java.lang.String> valores)
          Obtiene los datos de la tarea que son de tipo texto
protected  java.util.Map obtenerMapTarea(javax.servlet.http.HttpServletRequest request)
          Devuelve un Map con los datos de la tarea
 java.util.HashMap obtenerMapTareaPrecargar(Tarea miTarea, javax.servlet.http.HttpServletRequest request)
          Precarga un map con los datos de la tarea que deben de ir precargados por valores por defecto, siendo estos valores de la sesión, constantes... etc.
protected  java.lang.String obtenerValorParametroRequest(javax.servlet.http.HttpServletRequest request, java.lang.String nombre)
          Obtiene el valor del Parámetro del request.
private  java.util.Map<java.lang.String,java.lang.String> precargarListas(java.util.List<ListaCampos> lista, Usuario usuario, java.util.Map<java.lang.String,java.lang.String> mapDatosCarga, java.util.Map<java.lang.String,java.lang.String> mapTarea)
          Precarga los campos de la tarea
 void setDaoConsultas(Dao daoConsultas)
          Utilidad Dao para realizar consultas
 void setUtilFicheroSession(UtilFichero utilFicheroSession)
          Utilidad de fichero de sesión
 void setVistaFormulario(java.util.Map<java.lang.String,java.lang.String> vistaFormulario)
          Map de vistas donde se mostrará el formulario de la tarea
 void setVistaResultado(java.util.HashMap<java.lang.String,java.lang.String> vistaResultado)
           
 
Methods inherited from class es.mcu.yingo.controladores.SuperControlador
getAccion, getSpringContextUtilWeb, obtenerVistaAplicacion, recogerParametro, recogerTipoTareaRequest, setSpringContextUtilWeb
 
Methods inherited from class org.springframework.web.servlet.mvc.AbstractController
handleRequest, isSynchronizeOnSession, setSynchronizeOnSession
 
Methods inherited from class org.springframework.web.servlet.support.WebContentGenerator
applyCacheSeconds, applyCacheSeconds, cacheForSeconds, cacheForSeconds, checkAndPrepare, checkAndPrepare, getCacheSeconds, getSupportedMethods, isRequireSession, isUseCacheControlHeader, isUseExpiresHeader, preventCaching, setCacheSeconds, setRequireSession, setSupportedMethods, setUseCacheControlHeader, setUseExpiresHeader
 
Methods inherited from class org.springframework.web.context.support.WebApplicationObjectSupport
getServletContext, getTempDir, getWebApplicationContext, isContextRequired
 
Methods inherited from class org.springframework.context.support.ApplicationObjectSupport
getApplicationContext, getMessageSourceAccessor, initApplicationContext, requiredContextClass, setApplicationContext
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLAVE_TAREA

public static final java.lang.String CLAVE_TAREA
Clave para la tarea

See Also:
Constant Field Values

CLAVE_MENSAJE_CONFIRM

public static final java.lang.String CLAVE_MENSAJE_CONFIRM
Clave para mostrar el mensaje de confirmación de la tarea

See Also:
Constant Field Values

CLAVE_CODIGO_EXPEDIENTE

public static final java.lang.String CLAVE_CODIGO_EXPEDIENTE
Clave para el codigo de expediente

See Also:
Constant Field Values

CLAVE_DATOS_FORMULARIO

public static final java.lang.String CLAVE_DATOS_FORMULARIO
Clave para los datos del formulario

See Also:
Constant Field Values

CLAVE_DATOS_EXPEDIENTE

public static final java.lang.String CLAVE_DATOS_EXPEDIENTE
Clave para los datos del expediente

See Also:
Constant Field Values

SUFIJO_CAMPO_SEPARADOR_MULTIPLE

public static final java.lang.String SUFIJO_CAMPO_SEPARADOR_MULTIPLE
Sufijo del campo separador múltiple

See Also:
Constant Field Values

BORRAR_FICHERO

public static final java.lang.String BORRAR_FICHERO
Opción para borrar el fichero

See Also:
Constant Field Values

CARGA_FICHERO

public static final java.lang.String CARGA_FICHERO
Opción para cargar el fichero

See Also:
Constant Field Values

CLAVE_PARAMETRO_FICHERO_SELECCIONADO

public static final java.lang.String CLAVE_PARAMETRO_FICHERO_SELECCIONADO
Fichero que ha sido seleccionado para la acción

See Also:
Constant Field Values

utilFicheroSession

private UtilFichero utilFicheroSession
Utilidad de fichero de sesión


vistaFormulario

private java.util.Map<java.lang.String,java.lang.String> vistaFormulario
Map de vistas donde se mostrará el formulario de la tarea


vistaResultado

private java.util.HashMap<java.lang.String,java.lang.String> vistaResultado
Map de vistas donde se redirigirá la tarea para mostrar el resultado de la ejecución


daoConsultas

private Dao daoConsultas
Utilidad Dao para realizar consultas

Constructor Detail

ControladorEjecutaTarea

public ControladorEjecutaTarea()
Method Detail

handleRequestInternal

protected org.springframework.web.servlet.ModelAndView handleRequestInternal(javax.servlet.http.HttpServletRequest request,
                                                                             javax.servlet.http.HttpServletResponse response)
                                                                      throws java.lang.Exception
Se sobreescribe el método para recoger el parámetro acción que me derterminará a que evento se está llamando

Specified by:
handleRequestInternal in class org.springframework.web.servlet.mvc.AbstractController
Parameters:
request -
response -
Throws:
java.lang.Exception

distribuidor

protected org.springframework.web.servlet.ModelAndView distribuidor(java.lang.String accion,
                                                                    javax.servlet.http.HttpServletRequest request,
                                                                    javax.servlet.http.HttpServletResponse response)
                                                             throws java.lang.Exception
Este método hace una llamada a las diversas acciones de los 'eventos' básicos, según el valor que viene cargado en la acción

Parameters:
accion -
request -
response -
Returns:
Throws:
java.lang.Exception

accionInicio

protected org.springframework.web.servlet.ModelAndView accionInicio(javax.servlet.http.HttpServletRequest request,
                                                                    javax.servlet.http.HttpServletResponse response)
                                                             throws java.lang.Exception
Carga el formulario correspondiente al argumento que se le pasa en el request y precarga los datos en dicho formulario

Parameters:
request -
response -
Returns:
Throws:
java.lang.Exception

accionCarga

protected org.springframework.web.servlet.ModelAndView accionCarga(javax.servlet.http.HttpServletRequest request,
                                                                   javax.servlet.http.HttpServletResponse response)
                                                            throws java.lang.Exception
Recoge los parametros y el map de datos. Lanza los validadores de esa tarea. Si todo es correcto se redirige a la tramitación de la tarea
En en caso de que se produzca algún error, se muestran los errores en el formulario y se precargan los valores que dicho formulario contenía

Parameters:
request -
response -
Returns:
Throws:
java.lang.Exception

ejecutarTarea

private org.springframework.web.servlet.ModelAndView ejecutarTarea(javax.servlet.http.HttpServletRequest request,
                                                                   Tarea tarea,
                                                                   java.util.Map datosFormulario,
                                                                   Usuario usuario)
                                                            throws YingoException,
                                                                   WebYingoException
Lanza la ejecución de la tarea, si todo va bien, devuelve el ModelAndView
En el caso de que se produzca algún error, se lanza una excepción

Parameters:
request -
tarea -
datosFormulario -
usuario -
Returns:
Throws:
YingoException, - WebAppintraException
YingoException
WebYingoException

accionCargaFichero

protected org.springframework.web.servlet.ModelAndView accionCargaFichero(javax.servlet.http.HttpServletRequest request,
                                                                          javax.servlet.http.HttpServletResponse response)
                                                                   throws java.lang.Exception
Cada vez que se añade un fichero, se repinta la tarea para que aparezcan los enlaces al fichero

Parameters:
request -
response -
Returns:
Throws:
java.lang.Exception

accionBorrarFichero

protected org.springframework.web.servlet.ModelAndView accionBorrarFichero(javax.servlet.http.HttpServletRequest request,
                                                                           javax.servlet.http.HttpServletResponse response)
                                                                    throws java.lang.Exception
Acción que borra un fichero del formulario. Se provoca una excepción cuando no se indica el fichero a borrar

Parameters:
request -
response -
Returns:
Throws:
java.lang.Exception

obtenerDatosVistaMuestraForm

protected java.util.Map obtenerDatosVistaMuestraForm(javax.servlet.http.HttpServletRequest request,
                                                     Tarea miTarea)
                                              throws TareaYingoException
Recupera el objeto DatosVistaMuestraForm y se recuperan los datos que se mostrarán en las listas de entrada de la tarea

Parameters:
request -
miTarea -
Returns:
Throws:
TareaYingoException

obtenerValorParametroRequest

protected java.lang.String obtenerValorParametroRequest(javax.servlet.http.HttpServletRequest request,
                                                        java.lang.String nombre)
Obtiene el valor del Parámetro del request. Si se reciben múltiples valores para el mismo parámetro, se concatenan

Parameters:
request -
nombre -
Returns:

obtenerMapTarea

protected java.util.Map obtenerMapTarea(javax.servlet.http.HttpServletRequest request)
                                 throws FicheroYingoException,
                                        java.io.IOException
Devuelve un Map con los datos de la tarea

Parameters:
request -
Returns:
Throws:
java.io.IOException
FicheroYingoException

obtenerMapCampoTexto

private java.util.Map obtenerMapCampoTexto(javax.servlet.http.HttpServletRequest request,
                                           java.util.Map<java.lang.String,java.lang.String> valores)
Obtiene los datos de la tarea que son de tipo texto

Parameters:
request -
valores -
Returns:

obtenerMapCampoFichero

protected java.util.Map obtenerMapCampoFichero(javax.servlet.http.HttpServletRequest request,
                                               java.util.Map<java.lang.String,java.lang.String> valores)
                                        throws java.io.IOException,
                                               FicheroYingoException
Obtiene los datos de la tarea que son de tipo fichero

Parameters:
request -
valores -
Returns:
Throws:
java.io.IOException
FicheroYingoException

crearVistaFormulario

protected org.springframework.web.servlet.ModelAndView crearVistaFormulario(java.util.Map datosFormulario,
                                                                            javax.servlet.http.HttpServletRequest request)
                                                                     throws TareaYingoException
Crea la vista que muestra el formulario Se envían a la vista, por un lado, los datos a precargar datosFormulario y por otro lado, se busca en la base de datos los campos de entrada

Parameters:
datosExpediente -
datosFormulario -
request -
Returns:
Throws:
TareaYingoException

obtenerDatosVistaMuestraForm

protected DatosVistaMuestraForm obtenerDatosVistaMuestraForm(javax.servlet.http.HttpServletRequest request)
Obtiene el objeto de DatosVistaMuestraForm

Parameters:
request -
Returns:

obtenerMapTareaPrecargar

public java.util.HashMap obtenerMapTareaPrecargar(Tarea miTarea,
                                                  javax.servlet.http.HttpServletRequest request)
                                           throws YingoException
Precarga un map con los datos de la tarea que deben de ir precargados por valores por defecto, siendo estos valores de la sesión, constantes... etc.
Se precargan únicamente los campos de salida de la tarea

Parameters:
miTarea -
request -
Returns:
Throws:
YingoException

lanzarIniciadores

private java.util.Map<java.lang.String,java.lang.String> lanzarIniciadores(Tarea miTarea,
                                                                           Usuario usuario,
                                                                           java.lang.String idAplicacion,
                                                                           java.lang.String codExp)
                                                                    throws TareaYingoException
Recupera la lista de iniciadores de la tarea y los va invocando uno por uno.
El resultado de cada Iniciador se va añadiendo al resultado, de modo que en el caso de que se encuentren claves repetidas prevalece lo del último Iniciador ejecutado

Parameters:
miTarea -
usuario -
idAplicacion -
codExp -
Returns:
Throws:
TareaYingoException

precargarListas

private java.util.Map<java.lang.String,java.lang.String> precargarListas(java.util.List<ListaCampos> lista,
                                                                         Usuario usuario,
                                                                         java.util.Map<java.lang.String,java.lang.String> mapDatosCarga,
                                                                         java.util.Map<java.lang.String,java.lang.String> mapTarea)
                                                                  throws YingoException
Precarga los campos de la tarea

Parameters:
listaEntrada -
listaSalida -
usuario -
mapDatosCarga -
Returns:
Throws:
YingoException

getUtilFicheroSession

public UtilFichero getUtilFicheroSession()
Utilidad de fichero de sesión

Returns:
the utilFicheroSession

setUtilFicheroSession

public void setUtilFicheroSession(UtilFichero utilFicheroSession)
Utilidad de fichero de sesión

Parameters:
utilFicheroSession - the utilFicheroSession to set

getVistaFormulario

public java.util.Map<java.lang.String,java.lang.String> getVistaFormulario()
Map de vistas donde se mostrará el formulario de la tarea

Returns:
the vistaFormulario

setVistaFormulario

public void setVistaFormulario(java.util.Map<java.lang.String,java.lang.String> vistaFormulario)
Map de vistas donde se mostrará el formulario de la tarea

Parameters:
vistaFormulario - the vistaFormulario to set

getDaoConsultas

public Dao getDaoConsultas()
Utilidad Dao para realizar consultas

Returns:
the daoConsultas

setDaoConsultas

public void setDaoConsultas(Dao daoConsultas)
Utilidad Dao para realizar consultas

Parameters:
daoConsultas - the daoConsultas to set

getVistaResultado

public java.util.HashMap<java.lang.String,java.lang.String> getVistaResultado()
Returns:
the vistaResultado

setVistaResultado

public void setVistaResultado(java.util.HashMap<java.lang.String,java.lang.String> vistaResultado)
Parameters:
vistaResultado - the vistaResultado to set