es.mcu.yingo.tareas.iniciador
Class IniciadorTareaFirmaFichero

java.lang.Object
  extended by es.mcu.yingo.tareas.iniciador.IniciadorAbstracto
      extended by es.mcu.yingo.tareas.iniciador.IniciadorTareaFirma
          extended by es.mcu.yingo.tareas.iniciador.IniciadorTareaFirmaFichero
All Implemented Interfaces:
Iniciador

public class IniciadorTareaFirmaFichero
extends IniciadorTareaFirma

Iniciador utilizado en las tareas de firma, que se utiliza para generar un xml con con un fichero embebido. El fichero pdf puede ser uno existente o se podrá crear con los campos de salida de las tareas indicadas en la propiedad tareasAFirmar
. El fichero embebido podrá ser cualquier fichero. Si la propiedad 'adjuntosZip' está activa y se ha creado un fichero pdf. Se generará un fichero zip con el fichero creado y los adjuntos de las tareas indicadas en la propiedad tareasAFirmar
. El fichero generado se añade en el map de datos en base 64, con la clave indicada en la propiedad cadenaSolicitudSinFirmar

Author:
raquel.herrero

Field Summary
private  java.lang.Boolean adjuntosZip
          Se generará un fichero zip, con el pdf construido y los adjuntos de las tareas
private  java.lang.String datoFicheroAFirmar
          Nombre del campo donde se encuentra el el fichero a firmar, en el caso que no generarlo, con el que se construirá el xml
private  java.lang.String datoFicheroAGuardar
          Nombre del campo donde se guardará y mostrará el fichero a firmar
private  GeneradorPdfExpediente generadorPdf
          Objeto que genera el documento pdf que se va a firmar
private  java.util.List<java.lang.String> listaCamposExcluir
          Lista con los identificadores de los campos que se quieren excluir del fichero pdf
private  UtilFichero utilFicheroReal
          Util fichero real, para el fichero zip
private  UtilFichero utilFicheroSesion
          Util fichero real, para el fichero zip
 
Fields inherited from class es.mcu.yingo.tareas.iniciador.IniciadorAbstracto
logger
 
Constructor Summary
IniciadorTareaFirmaFichero()
           
 
Method Summary
private  java.lang.String copiarFicheroRealTemporal(java.lang.String rutaFicheroReal)
          Copia el fichero real en la parte temporal.
private  void crearDatoBasico(Datos datoFichero, java.lang.String ficheroSalida)
          Rellena el objeto dato pasado por parametro, con el fichero pdf que se acaba de crear, en la ruta temporal.
private  boolean existenFicheros(java.util.Collection<Datos> datos)
          Método privado que comprueba si existen ficheros en una colección de datos
private  java.lang.String generarZip(java.util.Collection<Datos> datos, java.lang.String rutaPdf, Datos datoFichero)
          Genera un fichero comprimido zip, con los ficheros existentes en la lista de tareas a firmas, junto con el fichero pdf generado anteriormente.
 java.lang.Boolean getAdjuntosZip()
           
 java.lang.String getDatoFicheroAFirmar()
           
 java.lang.String getDatoFicheroAGuardar()
           
 GeneradorPdfExpediente getGeneradorPdf()
           
 java.util.List<java.lang.String> getListaCamposExcluir()
           
 UtilFichero getUtilFicheroReal()
           
 UtilFichero getUtilFicheroSesion()
           
private  void introducirCampoFicheroENZip(java.util.Vector<EnlaceZip> rutasFichero, java.util.Collection<Datos> resultadoFicheros)
          Introduce las rutas reales de los ficheros que encuentra junto con las rutas de destino en el fichero zip.
private  void introducirFicheroENZip(java.util.Vector<EnlaceZip> rutasFichero, java.lang.String rutaOrigen, java.lang.String rutaDestino)
          Genera un par ruta temporal zip que define el lugar donde se encuentra el fichero fisicamente y el lugar donde se introducirá en el zip
private  Datos obtenerDatoFichero(java.lang.String idAplicacion, java.lang.String codExpediente, Usuario usuario)
          Se obtienen el fichero que se añadirá al xml.
 java.util.Map<java.lang.String,java.lang.String> obtenerDatos(Usuario usuario, java.lang.String idAplicacion, java.lang.String codExpediente, java.util.HashMap<java.lang.String,java.lang.String> datosSalida)
          Añade al map de datos, un campo con el fichero xml que se debe firmar en base 64
protected  java.util.Collection<Datos> obtenerListaDatos(java.lang.String idAplicacion, java.lang.String codExpediente, Usuario usuario)
          Se obtienen la lista de los datos de las tareas que se encuentran en la propiedad 'tareasAFirmar'.
protected  java.lang.String[] obtenerRutaReal(java.util.Vector<EnlaceZip> ez)
          Extrae en un String[] los distintos path que muestran la ruta a los ficheros en disco desde donde se extraeran los datos para añadirlos al fichero .zip
protected  java.lang.String[] obtenerRutaZip(java.util.Vector<EnlaceZip> ez)
          Extrae en un String[] los distintos path que va a llevar el fichero .zip
private  Datos recuperarDatoDescripcion(java.util.Collection<Datos> listaDatos, Campo campo)
          Recupera un dato concreto de la coleccion y modifica el nombre por la descripción, para mostrarla en el pdf.
 void setAdjuntosZip(java.lang.Boolean adjuntosZip)
           
 void setDatoFicheroAFirmar(java.lang.String datoFicheroAFirmar)
           
 void setDatoFicheroAGuardar(java.lang.String datoFicheroAGuardar)
           
 void setGeneradorPdf(GeneradorPdfExpediente generadorPdf)
           
 void setListaCamposExcluir(java.util.List<java.lang.String> listaCamposExcluir)
           
 void setUtilFicheroReal(UtilFichero utilFicheroReal)
           
 void setUtilFicheroSesion(UtilFichero utilFicheroSesion)
           
 
Methods inherited from class es.mcu.yingo.tareas.iniciador.IniciadorTareaFirma
getBaseDatos, getCadenaSolicitudSinFirmar, getDaoConsultas, getGeneradorXml, getSpringContextUtil, getTareasAFirmar, setBaseDatos, setCadenaSolicitudSinFirmar, setDaoConsultas, setGeneradorXml, setSpringContextUtil, setTareasAFirmar
 
Methods inherited from class es.mcu.yingo.tareas.iniciador.IniciadorAbstracto
inicializarTarea, obtenerRoles
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

datoFicheroAFirmar

private java.lang.String datoFicheroAFirmar
Nombre del campo donde se encuentra el el fichero a firmar, en el caso que no generarlo, con el que se construirá el xml


datoFicheroAGuardar

private java.lang.String datoFicheroAGuardar
Nombre del campo donde se guardará y mostrará el fichero a firmar


generadorPdf

private GeneradorPdfExpediente generadorPdf
Objeto que genera el documento pdf que se va a firmar


adjuntosZip

private java.lang.Boolean adjuntosZip
Se generará un fichero zip, con el pdf construido y los adjuntos de las tareas


utilFicheroReal

private UtilFichero utilFicheroReal
Util fichero real, para el fichero zip


utilFicheroSesion

private UtilFichero utilFicheroSesion
Util fichero real, para el fichero zip


listaCamposExcluir

private java.util.List<java.lang.String> listaCamposExcluir
Lista con los identificadores de los campos que se quieren excluir del fichero pdf

Constructor Detail

IniciadorTareaFirmaFichero

public IniciadorTareaFirmaFichero()
Method Detail

obtenerDatos

public java.util.Map<java.lang.String,java.lang.String> obtenerDatos(Usuario usuario,
                                                                     java.lang.String idAplicacion,
                                                                     java.lang.String codExpediente,
                                                                     java.util.HashMap<java.lang.String,java.lang.String> datosSalida)
                                                              throws TareaYingoException
Añade al map de datos, un campo con el fichero xml que se debe firmar en base 64

Overrides:
obtenerDatos in class IniciadorTareaFirma
Parameters:
usuario -
idAplicacion -
codExpediente -
Returns:
Throws:
TareaYingoException

obtenerDatoFichero

private Datos obtenerDatoFichero(java.lang.String idAplicacion,
                                 java.lang.String codExpediente,
                                 Usuario usuario)
                          throws YingoException
Se obtienen el fichero que se añadirá al xml. Únicamente se usa cuando se firma un fichero ya existente. Realiza una copia temporal para tratarlo

Parameters:
idAplicacion -
codExpediente -
Returns:
Throws:
YingoException

generarZip

private java.lang.String generarZip(java.util.Collection<Datos> datos,
                                    java.lang.String rutaPdf,
                                    Datos datoFichero)
                             throws YingoException
Genera un fichero comprimido zip, con los ficheros existentes en la lista de tareas a firmas, junto con el fichero pdf generado anteriormente.

Parameters:
datos -
rutaPdf -
Returns:
Throws:
YingoException

existenFicheros

private boolean existenFicheros(java.util.Collection<Datos> datos)
Método privado que comprueba si existen ficheros en una colección de datos. *

Parameters:
datos -
Returns:

crearDatoBasico

private void crearDatoBasico(Datos datoFichero,
                             java.lang.String ficheroSalida)
Rellena el objeto dato pasado por parametro, con el fichero pdf que se acaba de crear, en la ruta temporal.

Parameters:
datoFichero -
ficheroSalida -

introducirFicheroENZip

private void introducirFicheroENZip(java.util.Vector<EnlaceZip> rutasFichero,
                                    java.lang.String rutaOrigen,
                                    java.lang.String rutaDestino)
Genera un par ruta temporal zip que define el lugar donde se encuentra el fichero fisicamente y el lugar donde se introducirá en el zip

Parameters:
rutasFichero -
string -
string2 -

introducirCampoFicheroENZip

private void introducirCampoFicheroENZip(java.util.Vector<EnlaceZip> rutasFichero,
                                         java.util.Collection<Datos> resultadoFicheros)
Introduce las rutas reales de los ficheros que encuentra junto con las rutas de destino en el fichero zip. Los ficheros que se adjuntan en el zip, independientemente del que hemos creado, poseen rutas reales.

Parameters:
rutasFichero -
resultadoFicheros -

obtenerRutaReal

protected java.lang.String[] obtenerRutaReal(java.util.Vector<EnlaceZip> ez)
Extrae en un String[] los distintos path que muestran la ruta a los ficheros en disco desde donde se extraeran los datos para añadirlos al fichero .zip

Parameters:
Vector - ez
Returns:
String[]

obtenerRutaZip

protected java.lang.String[] obtenerRutaZip(java.util.Vector<EnlaceZip> ez)
Extrae en un String[] los distintos path que va a llevar el fichero .zip

Parameters:
Vector - ez
Returns:
String[]

obtenerListaDatos

protected java.util.Collection<Datos> obtenerListaDatos(java.lang.String idAplicacion,
                                                        java.lang.String codExpediente,
                                                        Usuario usuario)
Se obtienen la lista de los datos de las tareas que se encuentran en la propiedad 'tareasAFirmar'.

Overrides:
obtenerListaDatos in class IniciadorTareaFirma
Parameters:
idAplicacion -
codExpediente -
usuario -
Returns:

recuperarDatoDescripcion

private Datos recuperarDatoDescripcion(java.util.Collection<Datos> listaDatos,
                                       Campo campo)
Recupera un dato concreto de la coleccion y modifica el nombre por la descripción, para mostrarla en el pdf. También excluye aquellos campos que se encuentren en la propiedad 'listaCamposExcluir'

Parameters:
listaDatos -
element -
Returns:

copiarFicheroRealTemporal

private java.lang.String copiarFicheroRealTemporal(java.lang.String rutaFicheroReal)
                                            throws java.security.NoSuchAlgorithmException,
                                                   java.io.IOException,
                                                   YingoException
Copia el fichero real en la parte temporal. Si el hash de los ficheros son diferentes provoca una excepción

Parameters:
rutaFicheroReal -
Returns:
Throws:
java.security.NoSuchAlgorithmException
java.io.IOException
YingoException

getDatoFicheroAFirmar

public java.lang.String getDatoFicheroAFirmar()
Returns:
the datoFicheroAFirmar

setDatoFicheroAFirmar

public void setDatoFicheroAFirmar(java.lang.String datoFicheroAFirmar)
Parameters:
datoFicheroAFirmar - the datoFicheroAFirmar to set

getGeneradorPdf

public GeneradorPdfExpediente getGeneradorPdf()
Returns:
the generadorPdf

setGeneradorPdf

public void setGeneradorPdf(GeneradorPdfExpediente generadorPdf)
Parameters:
generadorPdf - the generadorPdf to set

getAdjuntosZip

public java.lang.Boolean getAdjuntosZip()
Returns:
the adjuntosZip

setAdjuntosZip

public void setAdjuntosZip(java.lang.Boolean adjuntosZip)
Parameters:
adjuntosZip - the adjuntosZip to set

getUtilFicheroReal

public UtilFichero getUtilFicheroReal()
Returns:
the utilFicheroReal

setUtilFicheroReal

public void setUtilFicheroReal(UtilFichero utilFicheroReal)
Parameters:
utilFicheroReal - the utilFicheroReal to set

getUtilFicheroSesion

public UtilFichero getUtilFicheroSesion()
Returns:
the utilFicheroSesion

setUtilFicheroSesion

public void setUtilFicheroSesion(UtilFichero utilFicheroSesion)
Parameters:
utilFicheroSesion - the utilFicheroSesion to set

getListaCamposExcluir

public java.util.List<java.lang.String> getListaCamposExcluir()
Returns:
the listaCamposExcluir

setListaCamposExcluir

public void setListaCamposExcluir(java.util.List<java.lang.String> listaCamposExcluir)
Parameters:
listaCamposExcluir - the listaCamposExcluir to set

getDatoFicheroAGuardar

public java.lang.String getDatoFicheroAGuardar()
Returns:
the datoFicheroAGuardar

setDatoFicheroAGuardar

public void setDatoFicheroAGuardar(java.lang.String datoFicheroAGuardar)
Parameters:
datoFicheroAGuardar - the datoFicheroAGuardar to set