es.mcu.yingo.tareas
Class TareaBusquedaImp

java.lang.Object
  extended by es.mcu.yingo.utils.IdDescripcionImpl
      extended by es.mcu.yingo.tareas.SuperTareaImpl
          extended by es.mcu.yingo.tareas.TareaImpl
              extended by es.mcu.yingo.tareas.TareaBusquedaAbstracto
                  extended by es.mcu.yingo.tareas.TareaBusquedaImp
All Implemented Interfaces:
Tarea, TareaBusqueda, IdDescripcion, org.springframework.context.ApplicationContextAware
Direct Known Subclasses:
TareaBusquedaWeb

public class TareaBusquedaImp
extends TareaBusquedaAbstracto

Implementación por defecto de la tarea de búsqueda Tarea de búsqueda que implementa la busqueda 'AND' de varios campos

Author:
miguel.esteban

Field Summary
private  Campo campoOrdenadoPor
          Campo de ordenación
private  Campo campoPagina
          Campo página
private  Campo campoRegistrosPagina
          Campo que marcará cuantos registros por página
private  Campo campoTipoOrdenacion
          Campo tipo de ordenación
private  java.util.List<Campo> listaCamposConsulta
          Lista de campos por los que se realizará la consulta realizando un 'AND'
private  java.lang.String nombreTabla
          Nombre de la tabla/vista (Hibernate) por la que se búscara
private  RestriccionHqlBusqueda restriccionHqlBusqueda
          Restrición de la búsqueda, para poder realizar consultas más complicadas
 
Fields inherited from class es.mcu.yingo.utils.IdDescripcionImpl
applicationContext, id
 
Fields inherited from interface es.mcu.yingo.tareas.TareaBusqueda
CLAVE_ES_BUSQUEDA_DETALLE, CLAVE_RESULTADO_CONSULTA, CLAVE_RESULTADO_EXPORTACION, CLAVE_RESULTADO_MIMEFICHERO, CLAVE_RESULTADO_NOMBREFICHERO
 
Fields inherited from interface es.mcu.yingo.utils.IdDescripcion
IDIOMA_DEFECTO
 
Constructor Summary
TareaBusquedaImp()
          Constructor por defecto
 
Method Summary
protected  boolean anadirConsultayCargarParametroValor(java.lang.StringBuilder consulta, java.util.List<java.lang.Object> parametros, java.lang.String idCampo, java.lang.Object valor, int cont, java.lang.String condicionSql)
          Va añadiendo la restricción del valor a la consulta
protected  void anadirOperadorConsulta(java.lang.StringBuilder consulta, int cont, java.lang.String condicionSql)
          Añade el operador a la consulta
private  void anadirOrdenacion(java.lang.StringBuilder consulta, java.util.Map datos)
          Añade el campo por el que se va a ordenar la consulta
private  void anadirRestriccionCalendar(java.lang.String idCampo, java.util.Calendar valor, java.lang.StringBuilder consulta, java.util.List<java.lang.Object> parametros)
          Añade la restricción cuando el valor es de tipo Calendar
protected  boolean anadirRestriccionFija(java.lang.StringBuilder consulta, int cont, java.util.Map datos, Usuario usuario)
          Añade la restricción hql si estubiera definida
protected  void anadirRestriccionString(java.lang.String idCampo, java.lang.String valor, java.lang.StringBuilder consulta)
          Añade la restricción cuando es de tipo String
private  void anadirTipoOrdenacion(java.lang.StringBuilder consulta, java.util.Map datos)
          Añade el tipo de ordenación ascendente o descendente a la consulta
protected  void colocarResultadoDatos(java.util.Map datos, java.util.List resultadoConsulta)
          Se colocan el resultado de la búsqueda.
private  void colocarResultadosPaginacion(java.util.Map datos, java.lang.Integer numeroRegistrosTotales)
          Coloca los resultados de la paginación un map de datos con la información de la página calculada el número de registros por página y el número total de registros
 void ejecuta(Dao dao, java.lang.String idAplicacion, java.util.Map datos, Usuario usuario)
          Realiza las acciones de la tarea y activa las tereas siguientes, según corresponda se compone de los siguientes pasos los siguientes pasos: Introduce los datos de los campos, en la tabla "DATOS" Elimina la tarea de la tabla TAREAS_PENDIENTES si ésta no es inicial Invoca al enlazador y obtiene las siguientes tareas a ejecutar Recorre cada una de las tareas siguientes, y las apunta en la tabla de TAREAS_PENDIENTES o
en la tabla de TAREAS_PREVIAS en función del Activador que tenga configurado Anota la tarea actual como realizada Finalmente ejecuta cada una de las acciones
private  java.util.Collection ejecutarConsulta(Dao dao, java.lang.String consulta, java.lang.Object[] paramArray, java.util.Map datos)
          Ejecuta la consulta a BBDD.
private  boolean esPaginar(java.util.Map datos)
          Devuelve si la acción es paginar
 Campo getCampoOrdenadoPor()
          Campo de ordenación
 Campo getCampoPagina()
          Campo página
 Campo getCampoRegistrosPagina()
          Campo que marcará cuantos registros por página
 Campo getCampoTipoOrdenacion()
          Campo tipo de ordenación
 java.util.List<Campo> getListaCamposConsulta()
          Lista de campos por los que se realizará la consulta realizando un 'AND'
 java.lang.String getNombreTabla()
          Nombre de la tabla/vista (Hibernate) por la que se búscara
 RestriccionHqlBusqueda getRestriccionHqlBusqueda()
          Restrición de la búsqueda, para poder realizar consultas más complicadas
private  void inicializarNumeroPaginaBuscar(java.util.Map datos)
          Inicializa a nulo el número de página
private  java.util.List listaResultadosBusqueda(java.util.Collection resConsulta)
          Devuelve la lista de los resultados de la consulta
protected  java.lang.StringBuilder obtenerConsultayCargarParametros(java.util.Map datos, java.util.List<java.lang.Object> parametros, Usuario usuario)
          Obtiene la consulta y se guardan los parámetros
private  java.lang.Integer obtenerCuantos(Dao dao, java.lang.String consulta, java.lang.Object[] paramArray)
          Obtiene el número de registros que devuelve la consulta
private  java.lang.Integer obtenerNumeroPagina(java.util.Map datos)
          Obtiene el valor del número de página si no está definido del campoPagina o no es valor integer devuelve nulo
private  java.lang.Integer obtenerRegistrosPorPagina(java.util.Map datos)
          Obtiene el número de registros por página.
protected  java.lang.Object obtenerValorParaConsulta(java.lang.String idCampo, java.util.Map datos)
          Obtiene el valor para la consulta
 void setCampoOrdenadoPor(Campo campoOrdenadoPor)
          Campo de ordenación
 void setCampoPagina(Campo campoPagina)
          Campo página
 void setCampoRegistrosPagina(Campo campoRegistrosPagina)
          Campo que marcará cuantos registros por página
 void setCampoTipoOrdenacion(Campo campoTipoOrdenacion)
          Campo tipo de ordenación
 void setListaCamposConsulta(java.util.List<Campo> listaCamposConsulta)
          Lista de campos por los que se realizará la consulta realizando un 'AND'
 void setNombreTabla(java.lang.String nombreTabla)
          Nombre de la tabla/vista (Hibernate) por la que se búscara
 void setRestriccionHqlBusqueda(RestriccionHqlBusqueda restriccionHqlBusqueda)
          Restrición de la búsqueda, para poder realizar consultas más complicadas
 java.util.List<MensajeI18n> validaCampos(java.util.Map valoresSalida)
          Realiza una validación del contenido de los campoos a rellenar, llamando al validador de campos.
 java.util.List<MensajeI18n> validaTodo(java.lang.String codExpediente, java.util.Map valoresSalida, Usuario usuario, java.util.Calendar fecha)
          Realiza una validación completa de la tarea, llamando al validador de campos y ejecutando la lista de operaciones previas.
 
Methods inherited from class es.mcu.yingo.tareas.TareaBusquedaAbstracto
esExportar, exportarDatos, getCampoExportar, getExportador, isEsBusquedaDetalle, setCampoExportar, setEsBusquedaDetalle, setExportador
 
Methods inherited from class es.mcu.yingo.tareas.TareaImpl
anotaTareaPendiente, validaFormulario
 
Methods inherited from class es.mcu.yingo.tareas.SuperTareaImpl
getActivador, getAsignadorUsuario, getBaseDatos, getCancelador, getEnlazador, getEsInicial, getLanzable, getListaAcciones, getListaIniciadores, getListaOperacionesPrevias, getListasEntrada, getListasSalida, getMensajeConfirmacion, getPermisos, getPlazo, getRol, llamaAcciones, setActivador, setAsignadorUsuario, setBaseDatos, setCancelador, setEnlazador, setEsInicial, setLanzable, setListaAcciones, setListaIniciadores, setListaOperacionesPrevias, setListasEntrada, setListasSalida, setMensajeConfirmacion, setPermisos, setPlazo, setRol
 
Methods inherited from class es.mcu.yingo.utils.IdDescripcionImpl
getApplicationContext, getDescripcion, getDescripcion, getDescripcion, getId, setApplicationContext, setDescripcion, setDescripcionTraducida, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface es.mcu.yingo.tareas.Tarea
getDescripcion, getDescripcion
 
Methods inherited from interface es.mcu.yingo.utils.IdDescripcion
getDescripcion, getId
 

Field Detail

nombreTabla

private java.lang.String nombreTabla
Nombre de la tabla/vista (Hibernate) por la que se búscara


listaCamposConsulta

private java.util.List<Campo> listaCamposConsulta
Lista de campos por los que se realizará la consulta realizando un 'AND'


campoOrdenadoPor

private Campo campoOrdenadoPor
Campo de ordenación


campoTipoOrdenacion

private Campo campoTipoOrdenacion
Campo tipo de ordenación


campoPagina

private Campo campoPagina
Campo página


campoRegistrosPagina

private Campo campoRegistrosPagina
Campo que marcará cuantos registros por página


restriccionHqlBusqueda

private RestriccionHqlBusqueda restriccionHqlBusqueda
Restrición de la búsqueda, para poder realizar consultas más complicadas

Constructor Detail

TareaBusquedaImp

public TareaBusquedaImp()
Constructor por defecto

Method Detail

ejecuta

public void ejecuta(Dao dao,
                    java.lang.String idAplicacion,
                    java.util.Map datos,
                    Usuario usuario)
             throws java.lang.Exception
Description copied from class: TareaImpl
Realiza las acciones de la tarea y activa las tereas siguientes, según corresponda se compone de los siguientes pasos los siguientes pasos:
  1. Introduce los datos de los campos, en la tabla "DATOS"
  2. Elimina la tarea de la tabla TAREAS_PENDIENTES si ésta no es inicial
  3. Invoca al enlazador y obtiene las siguientes tareas a ejecutar
  4. Recorre cada una de las tareas siguientes, y las apunta en la tabla de TAREAS_PENDIENTES o
    en la tabla de TAREAS_PREVIAS en función del Activador que tenga configurado
  5. Anota la tarea actual como realizada
  6. Finalmente ejecuta cada una de las acciones

Specified by:
ejecuta in interface Tarea
Overrides:
ejecuta in class TareaImpl
Throws:
java.lang.Exception

colocarResultadoDatos

protected void colocarResultadoDatos(java.util.Map datos,
                                     java.util.List resultadoConsulta)
Se colocan el resultado de la búsqueda. Se coloca en el Map de resultados en la CLAVE_ES_BUSQUEDA_DETALLE lo que se ha cargado por configuración de spring en la tarea

Overrides:
colocarResultadoDatos in class TareaBusquedaAbstracto
Parameters:
datos -
resultadoConsulta -

colocarResultadosPaginacion

private void colocarResultadosPaginacion(java.util.Map datos,
                                         java.lang.Integer numeroRegistrosTotales)
Coloca los resultados de la paginación un map de datos con la información de la página calculada el número de registros por página y el número total de registros

Parameters:
datos -
numeroRegistrosTotales -

obtenerNumeroPagina

private java.lang.Integer obtenerNumeroPagina(java.util.Map datos)
Obtiene el valor del número de página si no está definido del campoPagina o no es valor integer devuelve nulo

Parameters:
datos -
Returns:

obtenerRegistrosPorPagina

private java.lang.Integer obtenerRegistrosPorPagina(java.util.Map datos)
Obtiene el número de registros por página. Si no está definido el campoRegistrosPagina o no es valor integer devuelve nulo

Parameters:
datos -
Returns:

ejecutarConsulta

private java.util.Collection ejecutarConsulta(Dao dao,
                                              java.lang.String consulta,
                                              java.lang.Object[] paramArray,
                                              java.util.Map datos)
Ejecuta la consulta a BBDD. Si se define un campo de páginación y campo de número de registros paginación se paginan los resultados, sino se obtiene la consulta sin paginar

Parameters:
dao -
consulta -
paramArray -
datos -
Returns:

esPaginar

private boolean esPaginar(java.util.Map datos)
Devuelve si la acción es paginar

Parameters:
datos -
Returns:

inicializarNumeroPaginaBuscar

private void inicializarNumeroPaginaBuscar(java.util.Map datos)
Inicializa a nulo el número de página

Parameters:
datos -

obtenerCuantos

private java.lang.Integer obtenerCuantos(Dao dao,
                                         java.lang.String consulta,
                                         java.lang.Object[] paramArray)
Obtiene el número de registros que devuelve la consulta

Parameters:
dao -
consulta -
paramArray -
Returns:

anadirOrdenacion

private void anadirOrdenacion(java.lang.StringBuilder consulta,
                              java.util.Map datos)
Añade el campo por el que se va a ordenar la consulta

Parameters:
consulta -
datos -

anadirTipoOrdenacion

private void anadirTipoOrdenacion(java.lang.StringBuilder consulta,
                                  java.util.Map datos)
Añade el tipo de ordenación ascendente o descendente a la consulta

Parameters:
consulta -
datos -

obtenerConsultayCargarParametros

protected java.lang.StringBuilder obtenerConsultayCargarParametros(java.util.Map datos,
                                                                   java.util.List<java.lang.Object> parametros,
                                                                   Usuario usuario)
Obtiene la consulta y se guardan los parámetros

Parameters:
datos -
parametros -
Returns:

obtenerValorParaConsulta

protected java.lang.Object obtenerValorParaConsulta(java.lang.String idCampo,
                                                    java.util.Map datos)
Obtiene el valor para la consulta

Overrides:
obtenerValorParaConsulta in class TareaBusquedaAbstracto
Parameters:
idCampo -
datos -
Returns:

anadirRestriccionFija

protected boolean anadirRestriccionFija(java.lang.StringBuilder consulta,
                                        int cont,
                                        java.util.Map datos,
                                        Usuario usuario)
Añade la restricción hql si estubiera definida

Parameters:
consulta -
cont -
datos -
usuario -
Returns:

anadirConsultayCargarParametroValor

protected boolean anadirConsultayCargarParametroValor(java.lang.StringBuilder consulta,
                                                      java.util.List<java.lang.Object> parametros,
                                                      java.lang.String idCampo,
                                                      java.lang.Object valor,
                                                      int cont,
                                                      java.lang.String condicionSql)
Va añadiendo la restricción del valor a la consulta

Parameters:
consulta -
parametros -
valor -
cont -

anadirOperadorConsulta

protected void anadirOperadorConsulta(java.lang.StringBuilder consulta,
                                      int cont,
                                      java.lang.String condicionSql)
Añade el operador a la consulta

Parameters:
consulta -

anadirRestriccionString

protected void anadirRestriccionString(java.lang.String idCampo,
                                       java.lang.String valor,
                                       java.lang.StringBuilder consulta)
Añade la restricción cuando es de tipo String

Parameters:
consulta -
valor -
idCampo -

anadirRestriccionCalendar

private void anadirRestriccionCalendar(java.lang.String idCampo,
                                       java.util.Calendar valor,
                                       java.lang.StringBuilder consulta,
                                       java.util.List<java.lang.Object> parametros)
Añade la restricción cuando el valor es de tipo Calendar

Parameters:
valor -
consulta -
parametros -

listaResultadosBusqueda

private java.util.List listaResultadosBusqueda(java.util.Collection resConsulta)
Devuelve la lista de los resultados de la consulta

Parameters:
resConsulta -
Returns:

validaTodo

public java.util.List<MensajeI18n> validaTodo(java.lang.String codExpediente,
                                              java.util.Map valoresSalida,
                                              Usuario usuario,
                                              java.util.Calendar fecha)
Description copied from class: TareaImpl
Realiza una validación completa de la tarea, llamando al validador de campos y ejecutando la lista de operaciones previas.
Devuelve una lista de errores si los hubiera

Specified by:
validaTodo in interface Tarea
Overrides:
validaTodo in class TareaImpl
Returns:

validaCampos

public java.util.List<MensajeI18n> validaCampos(java.util.Map valoresSalida)
Description copied from class: TareaImpl
Realiza una validación del contenido de los campoos a rellenar, llamando al validador de campos. Devuelve una lista de errores si los hubiera

Specified by:
validaCampos in interface Tarea
Overrides:
validaCampos in class TareaImpl
Returns:

getNombreTabla

public java.lang.String getNombreTabla()
Nombre de la tabla/vista (Hibernate) por la que se búscara

Returns:
the nombreTabla

setNombreTabla

public void setNombreTabla(java.lang.String nombreTabla)
Nombre de la tabla/vista (Hibernate) por la que se búscara

Parameters:
nombreTabla - the nombreTabla to set

getListaCamposConsulta

public java.util.List<Campo> getListaCamposConsulta()
Lista de campos por los que se realizará la consulta realizando un 'AND'

Returns:
the listaCamposConsulta

setListaCamposConsulta

public void setListaCamposConsulta(java.util.List<Campo> listaCamposConsulta)
Lista de campos por los que se realizará la consulta realizando un 'AND'

Parameters:
listaCamposConsulta - the listaCamposConsulta to set

getCampoOrdenadoPor

public Campo getCampoOrdenadoPor()
Campo de ordenación

Returns:
the campoOrdenadoPor

setCampoOrdenadoPor

public void setCampoOrdenadoPor(Campo campoOrdenadoPor)
Campo de ordenación

Parameters:
campoOrdenadoPor - the campoOrdenadoPor to set

getCampoTipoOrdenacion

public Campo getCampoTipoOrdenacion()
Campo tipo de ordenación

Returns:
the campoTipoOrdenacion

setCampoTipoOrdenacion

public void setCampoTipoOrdenacion(Campo campoTipoOrdenacion)
Campo tipo de ordenación

Parameters:
campoTipoOrdenacion - the campoTipoOrdenacion to set

getCampoPagina

public Campo getCampoPagina()
Campo página

Returns:
the campoPagina

setCampoPagina

public void setCampoPagina(Campo campoPagina)
Campo página

Parameters:
campoPagina - the campoPagina to set

getCampoRegistrosPagina

public Campo getCampoRegistrosPagina()
Campo que marcará cuantos registros por página

Returns:
the campoRegistrosPagina

setCampoRegistrosPagina

public void setCampoRegistrosPagina(Campo campoRegistrosPagina)
Campo que marcará cuantos registros por página

Parameters:
campoRegistrosPagina - the campoRegistrosPagina to set

getRestriccionHqlBusqueda

public RestriccionHqlBusqueda getRestriccionHqlBusqueda()
Restrición de la búsqueda, para poder realizar consultas más complicadas

Returns:
the restriccionHqlBusqueda

setRestriccionHqlBusqueda

public void setRestriccionHqlBusqueda(RestriccionHqlBusqueda restriccionHqlBusqueda)
Restrición de la búsqueda, para poder realizar consultas más complicadas

Parameters:
restriccionHqlBusqueda - the restriccionHqlBusqueda to set