es.mcu.yingo.firma
Class GeneradorPdfExpedienteAbstracto

java.lang.Object
  extended by es.mcu.yingo.firma.GeneradorPdfExpedienteAbstracto
All Implemented Interfaces:
GeneradorPdfExpediente
Direct Known Subclasses:
GeneradorPdfExpedienteImpl

public abstract class GeneradorPdfExpedienteAbstracto
extends java.lang.Object
implements GeneradorPdfExpediente

Genera un fichero pdf a partir de una colección de datos. El fichero que se genera se basa en una plantilla jasper.

Author:
raquel.herrero

Field Summary
private  BaseDatos baseDatos
          Utilidad que centraliza operaciones comunes con la base de datos de la aplicación
private  Campo campo
          Campo que almacenará el archivo pdf
private  java.lang.String extensionFichero
          Extensión del archivo
private  java.lang.String jasperInforme
          Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)
private  java.util.Map<java.lang.String,java.lang.String> listaImagenes
          Lista de imagenes que se insertan en el pdf
static java.lang.String PARAM_CLASECARGADORA
           
static java.lang.String PARAM_DAO
           
static java.lang.String PARAM_LISTADATOS_SUBREPORT
           
static java.lang.String PARAM_SUBREPORT
           
private  java.util.Map parametrosFijos
          Lista de parámetros fijos que se pasarán al informe PDF
private  ProcesadorStream procesadorStream
          Método que procesa el InputStream devolviendo otro objeto InputStream modificado
private  java.lang.String subReport
          Ruta interna del proyecto donde se encuentra la clase jasper compilada del subReport (.jasper)
private  UtilFichero utilFicheroSesion
          Utilidad de fichero que apunta al servidor de ficheros para datos de sesión
 
Constructor Summary
GeneradorPdfExpedienteAbstracto()
           
 
Method Summary
protected abstract  void anadirDatosSubReport(java.util.Collection<Datos> datosExpediente, java.util.Map<java.lang.String,java.lang.Object> parametros)
          Añade la lista de parametros para los datos necesarios en el subreport.
protected abstract  void anadirParamImagenes(Dao dao, java.lang.String codExpediente, java.util.Map<java.lang.String,java.lang.Object> parametros)
          Añade las inputStream de las imagenes que van en la plantilla del informe a crear
protected abstract  void anadirParamSolicitud(Dao dao, java.lang.String codExpediente, java.util.Map<java.lang.String,java.lang.Object> parametros)
          Añade la lista de parametros para los campos de la plantilla principal.
protected abstract  void anadirParamSubReport(java.util.Map<java.lang.String,java.lang.Object> parametros)
          Añade como parámetro el stream del subreport de la plantilla principal
private  void crearDatoBasico(Datos datoFichero, java.lang.String rutaRelativaFicheroTemporal)
          Rellena el objeto dato pasado por parametro, con el fichero pdf que se acaba de crear, en la ruta temporal.
private  void crearDirectorioTemporal(java.lang.String rutaRelativaTemp)
          Crea el directorio temporal que marca 'rutaRelativaTemp' al que apunta 'utilFicheroSesion'
private  java.lang.String crearRutaRelativaFicheroTemporal()
          Crea la ruta relativa del fichero temporal.
private  java.lang.String crearStreamPDF(Dao dao, java.lang.String codexpediente, java.util.Collection<Datos> datos)
          Crea el stream del PDF a partir de los datos cargados.
private  java.lang.String escribirPDF(net.sf.jasperreports.engine.JasperPrint miJasperPrint)
          Obtiene la fuente de datos del jasper desde el código de expedientes.
 java.lang.String generarPdfParaFirma(Dao dao, java.lang.String codexpediente, java.util.Collection<Datos> datos, Usuario usuario, Datos datoFichero)
          Genera el pdf a partir de los datos aplantillando la tarea
 BaseDatos getBaseDatos()
           
 Campo getCampo()
           
 java.lang.String getExtensionFichero()
          Extensión del archivo
 java.lang.String getJasperInforme()
          Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)
 java.util.Map<java.lang.String,java.lang.String> getListaImagenes()
           
 java.util.Map getParametrosFijos()
          Lista de parámetros fijos que se pasarán al informe PDF
 ProcesadorStream getProcesadorStream()
          Objeto que procesa el InputStream devolviendo otro objeto InputStream modificado
 java.lang.String getSubReport()
           
 UtilFichero getUtilFicheroSesion()
           
protected  java.util.Map obtenerParametrosInforme(Dao dao, java.lang.String codexpediente, java.util.Collection<Datos> datos)
          Obtiene los parámetros que se pasarán al informe PDF.
protected  java.io.InputStream obtenerStream(java.lang.String recurso)
          Obtiene el stream del recurso en el ClassPath
 void setBaseDatos(BaseDatos baseDatos)
           
 void setCampo(Campo campo)
           
 void setExtensionFichero(java.lang.String extensionFichero)
          Extensión del archivo
 void setJasperInforme(java.lang.String jasperInforme)
          Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)
 void setListaImagenes(java.util.Map<java.lang.String,java.lang.String> listaImagenes)
           
 void setParametrosFijos(java.util.Map parametrosFijos)
          Lista de parámetros fijos que se pasarán al informe PDF
 void setProcesadorStream(ProcesadorStream procesadorStream)
          Objeto que procesa el InputStream devolviendo otro objeto InputStream modificado
 void setSubReport(java.lang.String subReport)
           
 void setUtilFicheroSesion(UtilFichero utilFicheroSesion)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PARAM_CLASECARGADORA

public static final java.lang.String PARAM_CLASECARGADORA
See Also:
Constant Field Values

PARAM_DAO

public static final java.lang.String PARAM_DAO
See Also:
Constant Field Values

PARAM_SUBREPORT

public static java.lang.String PARAM_SUBREPORT

PARAM_LISTADATOS_SUBREPORT

public static java.lang.String PARAM_LISTADATOS_SUBREPORT

jasperInforme

private java.lang.String jasperInforme
Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)


subReport

private java.lang.String subReport
Ruta interna del proyecto donde se encuentra la clase jasper compilada del subReport (.jasper)


parametrosFijos

private java.util.Map parametrosFijos
Lista de parámetros fijos que se pasarán al informe PDF


campo

private Campo campo
Campo que almacenará el archivo pdf


extensionFichero

private java.lang.String extensionFichero
Extensión del archivo


utilFicheroSesion

private UtilFichero utilFicheroSesion
Utilidad de fichero que apunta al servidor de ficheros para datos de sesión


procesadorStream

private ProcesadorStream procesadorStream
Método que procesa el InputStream devolviendo otro objeto InputStream modificado


baseDatos

private BaseDatos baseDatos
Utilidad que centraliza operaciones comunes con la base de datos de la aplicación


listaImagenes

private java.util.Map<java.lang.String,java.lang.String> listaImagenes
Lista de imagenes que se insertan en el pdf

Constructor Detail

GeneradorPdfExpedienteAbstracto

public GeneradorPdfExpedienteAbstracto()
Method Detail

generarPdfParaFirma

public java.lang.String generarPdfParaFirma(Dao dao,
                                            java.lang.String codexpediente,
                                            java.util.Collection<Datos> datos,
                                            Usuario usuario,
                                            Datos datoFichero)
                                     throws java.lang.Exception
Genera el pdf a partir de los datos aplantillando la tarea

Specified by:
generarPdfParaFirma in interface GeneradorPdfExpediente
Parameters:
dao -
codexpediente -
datos -
usuario -
datoFichero; - devolverá el objeto Dato con los attributos del fichero pdf este dato no estará registrado en base de datos.
Returns:
Throws:
java.lang.Exception

crearDatoBasico

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

Parameters:
datoFichero -
rutaRelativaFicheroTemporal -

crearStreamPDF

private java.lang.String crearStreamPDF(Dao dao,
                                        java.lang.String codexpediente,
                                        java.util.Collection<Datos> datos)
                                 throws net.sf.jasperreports.engine.JRException,
                                        java.security.KeyStoreException,
                                        java.security.NoSuchAlgorithmException,
                                        java.security.cert.CertificateException,
                                        java.security.UnrecoverableKeyException,
                                        java.io.IOException,
                                        java.net.URISyntaxException,
                                        YingoException
Crea el stream del PDF a partir de los datos cargados.
Devuelve la ruta realativa del fichero temporal desde el directorio configurado en 'utilFicheroSesion'

Parameters:
dao -
idTarea -
codexpediente -
datos -
usuario -
Returns:
Throws:
net.sf.jasperreports.engine.JRException
java.security.KeyStoreException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateException
java.security.UnrecoverableKeyException
java.io.IOException
java.net.URISyntaxException
YingoException

obtenerStream

protected java.io.InputStream obtenerStream(java.lang.String recurso)
Obtiene el stream del recurso en el ClassPath

Parameters:
recurso -
Returns:

escribirPDF

private java.lang.String escribirPDF(net.sf.jasperreports.engine.JasperPrint miJasperPrint)
                              throws net.sf.jasperreports.engine.JRException,
                                     java.security.KeyStoreException,
                                     java.security.NoSuchAlgorithmException,
                                     java.security.cert.CertificateException,
                                     java.security.UnrecoverableKeyException,
                                     java.io.IOException,
                                     java.net.URISyntaxException,
                                     FicheroYingoException
Obtiene la fuente de datos del jasper desde el código de expedientes.
Devuelve la ruta relativa del fichero a partir del directorio temporal que está configurado en 'utilFicheroSesion'

Returns:
Throws:
FicheroYingoException
java.lang.Exception
net.sf.jasperreports.engine.JRException
java.security.KeyStoreException
java.security.NoSuchAlgorithmException
java.security.cert.CertificateException
java.security.UnrecoverableKeyException
java.io.IOException
java.net.URISyntaxException

crearRutaRelativaFicheroTemporal

private java.lang.String crearRutaRelativaFicheroTemporal()
                                                   throws FicheroYingoException
Crea la ruta relativa del fichero temporal. Devuelve la ruta relativa desde directorio temporal al que apunta 'utilFicheroSesion'

Returns:
Throws:
FicheroYingoException

crearDirectorioTemporal

private void crearDirectorioTemporal(java.lang.String rutaRelativaTemp)
                              throws FicheroYingoException
Crea el directorio temporal que marca 'rutaRelativaTemp' al que apunta 'utilFicheroSesion'

Throws:
FicheroYingoException

obtenerParametrosInforme

protected java.util.Map obtenerParametrosInforme(Dao dao,
                                                 java.lang.String codexpediente,
                                                 java.util.Collection<Datos> datos)
                                          throws YingoException
Obtiene los parámetros que se pasarán al informe PDF. En principio se añadiran los que son fijos para todos los informes cargados en el atributo parametrosFijos. Los métodos anadirParamSolicitud, añade los parámetros propios de la solicitud anadirParamImagenes, añade las imagenes del informe concreto anadirParamSubReport, subreport del informe anadirDatosSubReport, datos del subreport concreto, son métodos abstractos que se crearán en los informes concretos.

Parameters:
dao -
codexpediente -
datos -
Returns:
Throws:
YingoException

anadirParamSolicitud

protected abstract void anadirParamSolicitud(Dao dao,
                                             java.lang.String codExpediente,
                                             java.util.Map<java.lang.String,java.lang.Object> parametros)
                                      throws BaseDatosYingoException
Añade la lista de parametros para los campos de la plantilla principal.

Parameters:
dao -
codexpediente -
parametros -
Throws:
BaseDatosYingoException

anadirParamSubReport

protected abstract void anadirParamSubReport(java.util.Map<java.lang.String,java.lang.Object> parametros)
Añade como parámetro el stream del subreport de la plantilla principal

Parameters:
parametros -

anadirDatosSubReport

protected abstract void anadirDatosSubReport(java.util.Collection<Datos> datosExpediente,
                                             java.util.Map<java.lang.String,java.lang.Object> parametros)
Añade la lista de parametros para los datos necesarios en el subreport. Normalmente se añadirá una lista con los elementos.

Parameters:
datosExpediente -
parametros -

anadirParamImagenes

protected abstract void anadirParamImagenes(Dao dao,
                                            java.lang.String codExpediente,
                                            java.util.Map<java.lang.String,java.lang.Object> parametros)
Añade las inputStream de las imagenes que van en la plantilla del informe a crear

Parameters:
dao -
codexpediente -
parametros -

getJasperInforme

public java.lang.String getJasperInforme()
Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)

Returns:
the jasperInforme

setJasperInforme

public void setJasperInforme(java.lang.String jasperInforme)
Ruta interna del proyecto donde se encuentra la clase jasper compilada (.jasper)

Parameters:
jasperInforme - the jasperInforme to set

getParametrosFijos

public java.util.Map getParametrosFijos()
Lista de parámetros fijos que se pasarán al informe PDF

Returns:
the parametrosFijos

setParametrosFijos

public void setParametrosFijos(java.util.Map parametrosFijos)
Lista de parámetros fijos que se pasarán al informe PDF

Parameters:
parametrosFijos - the parametrosFijos to set

getCampo

public Campo getCampo()
Returns:
the campo

setCampo

public void setCampo(Campo campo)
Parameters:
campo - the campo to set

getExtensionFichero

public java.lang.String getExtensionFichero()
Extensión del archivo

Returns:
the extensionFichero

setExtensionFichero

public void setExtensionFichero(java.lang.String extensionFichero)
Extensión del archivo

Parameters:
extensionFichero - the extensionFichero to set

getProcesadorStream

public ProcesadorStream getProcesadorStream()
Objeto que procesa el InputStream devolviendo otro objeto InputStream modificado

Returns:
the procesadorStream

setProcesadorStream

public void setProcesadorStream(ProcesadorStream procesadorStream)
Objeto que procesa el InputStream devolviendo otro objeto InputStream modificado

Parameters:
procesadorStream - the procesadorStream to set

getUtilFicheroSesion

public UtilFichero getUtilFicheroSesion()

setUtilFicheroSesion

public void setUtilFicheroSesion(UtilFichero utilFicheroSesion)

getBaseDatos

public BaseDatos getBaseDatos()
Returns:
the baseDatos

setBaseDatos

public void setBaseDatos(BaseDatos baseDatos)
Parameters:
baseDatos - the baseDatos to set

getSubReport

public java.lang.String getSubReport()
Returns:
the subReport

setSubReport

public void setSubReport(java.lang.String subReport)
Parameters:
subReport - the subReport to set

getListaImagenes

public java.util.Map<java.lang.String,java.lang.String> getListaImagenes()
Returns:
the listaImagenes

setListaImagenes

public void setListaImagenes(java.util.Map<java.lang.String,java.lang.String> listaImagenes)
Parameters:
listaImagenes - the listaImagenes to set