es.mcu.yingo.tareas.exportadores
Class ExportadorZip

java.lang.Object
  extended by es.mcu.yingo.tareas.exportadores.ExportadorAbstracto
      extended by es.mcu.yingo.tareas.exportadores.ExportadorZip
All Implemented Interfaces:
Exportador

public class ExportadorZip
extends ExportadorAbstracto

Exportador que crea un fichero en formato zip, con los ficheros que se han subido al servidor y con un fichero en formato csv, con los campos de las distintas tareas de los expedientes almacenados


Field Summary
private  int caracterCalificadorTexto
          Delimita donde empieza y termina el texto en cada celda del fichero csv
private  int caracterSeparador
          Caracter separador
private  java.util.List<java.lang.String> clavesExportar
          Lista de claves
private  java.util.List<java.lang.String> clavesFicheros
          Lista de claves para los ficheros
private  java.lang.String formatoFecha
          Formato de fecha a utilizar
private  java.lang.String nombreFicheroCsv
          Nombre que tendrá el fichero csv
private  UtilFichero utilFichero
          Utilidad para el manejo de ficheros
 
Fields inherited from class es.mcu.yingo.tareas.exportadores.ExportadorAbstracto
logger
 
Constructor Summary
ExportadorZip()
          Costructor
 
Method Summary
protected  java.io.InputStream _exportar(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> lista)
          Método privado que recoge la excepciones
private  void anadirFicheroExportado(java.lang.StringBuilder cadenaCSV, java.util.List<CodVal> listaNombreListaFicheros)
          Añade a la lista el fichero exportado
private  java.io.InputStream crearZip(java.util.List<CodVal> listaNombreListaFicheros)
          Crea el zip recorrien la lista de CodVal donde en cod está guardado el nombre del fichero en el zip y en val el inputStream del fichero
private  void escribirCabecera(java.util.Map<java.lang.String,java.lang.Object> mapDatos, java.lang.StringBuilder cadenaCSV)
          Escribe la cabecera CSV del Map de datos
private  void escribirFicheroEnZip(java.io.InputStream in, java.lang.String nombreFichero, java.util.zip.ZipOutputStream out)
          Escribe el inputStream del fichero en el OutputStream del fichero zip Con el nombre.
 int getCaracterCalificadorTexto()
          Caracter para indicar donde empieza el texto en un fichero csv
 int getCaracterSeparador()
          Caracter separador para las celdas del fichero csv
 java.util.List<java.lang.String> getClavesExportar()
          Lista de claves (campos) que forman la cabecera del fichero csv
 java.util.List<java.lang.String> getClavesFicheros()
          Lista de claves para los ficheros
 java.lang.String getFormatoFecha()
          Formato de la fecha
 java.lang.String getNombreFicheroCsv()
          Nombre del fichero csv
 UtilFichero getUtilFichero()
          Objeto para la manipulación de ficheros
private  void procesarFichero(java.lang.String pathRelativoFichero, java.lang.Integer numeroRegistro, java.util.List<CodVal> listaNombreListaFicheros)
          Procesa el fichero obteniendo el InputStream del fichero.
(package private)  void procesarMap(java.util.Map<java.lang.String,java.lang.Object> mapReg, java.lang.StringBuilder cadenaCSV, java.lang.Integer numeroRegistro)
          Procesa el map obteniendo el fichero CSV y los ficheros adjuntos
private  void procesarMapFicheros(java.util.Map<java.lang.String,java.lang.Object> mapReg, java.lang.Integer numeroRegistro, java.util.List<CodVal> listaNombreListaFicheros)
          Procesa el map para obtener los ficheros
private  java.util.List<CodVal> procesarTodo(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> lista)
          Procesa la lista de Map.
private  java.lang.String procesarValor(java.lang.Object value)
          Procesa el valor según del tipo que sea
 void setCaracterCalificadorTexto(int caracterCalificadorTexto)
          Caracter para indicar donde empieza el texto en un fichero csv
 void setCaracterSeparador(int caracterSeparador)
          Caracter separador para las celdas del fichero csv
 void setClavesExportar(java.util.List<java.lang.String> clavesExportar)
          Lista de claves (campos) que forman la cabecera del fichero csv
 void setClavesFicheros(java.util.List<java.lang.String> clavesFicheros)
          Lista de claves para los ficheros
 void setFormatoFecha(java.lang.String formatoFecha)
          Formato de la fecha
 void setNombreFicheroCsv(java.lang.String nombreFicheroCsv)
          Nombre del fichero csv
 void setUtilFichero(UtilFichero utilFichero)
          Objeto para la manipulación de ficheros
 
Methods inherited from class es.mcu.yingo.tareas.exportadores.ExportadorAbstracto
exportar, getMimeFicheroExportado, getNombreFicheroExportado, setMimeFicheroExportado, setNombreFicheroExportado
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

clavesExportar

private java.util.List<java.lang.String> clavesExportar
Lista de claves


clavesFicheros

private java.util.List<java.lang.String> clavesFicheros
Lista de claves para los ficheros


utilFichero

private UtilFichero utilFichero
Utilidad para el manejo de ficheros


caracterSeparador

private int caracterSeparador
Caracter separador


caracterCalificadorTexto

private int caracterCalificadorTexto
Delimita donde empieza y termina el texto en cada celda del fichero csv


nombreFicheroCsv

private java.lang.String nombreFicheroCsv
Nombre que tendrá el fichero csv


formatoFecha

private java.lang.String formatoFecha
Formato de fecha a utilizar

Constructor Detail

ExportadorZip

public ExportadorZip()
Costructor

Method Detail

_exportar

protected java.io.InputStream _exportar(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> lista)
                                 throws java.lang.Exception
Método privado que recoge la excepciones

Specified by:
_exportar in class ExportadorAbstracto
Parameters:
lista -
Returns:
Throws:
java.io.IOException
FicheroYingoException
java.lang.Exception

procesarTodo

private java.util.List<CodVal> procesarTodo(java.util.List<java.util.Map<java.lang.String,java.lang.Object>> lista)
                                     throws java.io.UnsupportedEncodingException,
                                            java.io.FileNotFoundException,
                                            FicheroYingoException
Procesa la lista de Map. Crea el fichero de exportación y añade los ficheros. Todo lo devuelve en una lista de CodVal donde el cod es el nombre del fichero en el zip y val es el InputStream del fichero

Parameters:
lista -
Returns:
Throws:
java.io.UnsupportedEncodingException
FicheroYingoException
java.io.FileNotFoundException

anadirFicheroExportado

private void anadirFicheroExportado(java.lang.StringBuilder cadenaCSV,
                                    java.util.List<CodVal> listaNombreListaFicheros)
                             throws java.io.UnsupportedEncodingException
Añade a la lista el fichero exportado

Parameters:
cadenaCSV -
listaNombreListaFicheros -
Throws:
java.io.UnsupportedEncodingException

crearZip

private java.io.InputStream crearZip(java.util.List<CodVal> listaNombreListaFicheros)
                              throws java.io.IOException
Crea el zip recorrien la lista de CodVal donde en cod está guardado el nombre del fichero en el zip y en val el inputStream del fichero

Parameters:
listaNombreListaFicheros -
Returns:
Throws:
java.io.IOException

escribirFicheroEnZip

private void escribirFicheroEnZip(java.io.InputStream in,
                                  java.lang.String nombreFichero,
                                  java.util.zip.ZipOutputStream out)
                           throws java.io.IOException
Escribe el inputStream del fichero en el OutputStream del fichero zip Con el nombre. Después se cirre el inputStream de entrada

Parameters:
in -
nombreFichero -
out -
Throws:
java.io.IOException

procesarMap

void procesarMap(java.util.Map<java.lang.String,java.lang.Object> mapReg,
                 java.lang.StringBuilder cadenaCSV,
                 java.lang.Integer numeroRegistro)
Procesa el map obteniendo el fichero CSV y los ficheros adjuntos

Parameters:
mapDatos -
cadenaCSV -
numeroRegistro -

procesarValor

private java.lang.String procesarValor(java.lang.Object value)
Procesa el valor según del tipo que sea

Parameters:
value -
Returns:

procesarMapFicheros

private void procesarMapFicheros(java.util.Map<java.lang.String,java.lang.Object> mapReg,
                                 java.lang.Integer numeroRegistro,
                                 java.util.List<CodVal> listaNombreListaFicheros)
                          throws java.io.FileNotFoundException,
                                 FicheroYingoException
Procesa el map para obtener los ficheros

Parameters:
mapReg -
numeroRegistro -
listaNombreListaFicheros -
Throws:
FicheroYingoException
java.io.FileNotFoundException

procesarFichero

private void procesarFichero(java.lang.String pathRelativoFichero,
                             java.lang.Integer numeroRegistro,
                             java.util.List<CodVal> listaNombreListaFicheros)
                      throws java.io.FileNotFoundException,
                             FicheroYingoException
Procesa el fichero obteniendo el InputStream del fichero. Como nombre del fichero dentro del zip se obtiene de la concatenación del número de registro y el nombre del fichero sin path

Parameters:
pathRelativoFichero -
numeroRegistro -
listaNombreListaFicheros -
Throws:
java.io.FileNotFoundException
FicheroYingoException

escribirCabecera

private void escribirCabecera(java.util.Map<java.lang.String,java.lang.Object> mapDatos,
                              java.lang.StringBuilder cadenaCSV)
Escribe la cabecera CSV del Map de datos

Parameters:
mapDatos -
cadenaCSV -

getClavesExportar

public java.util.List<java.lang.String> getClavesExportar()
Lista de claves (campos) que forman la cabecera del fichero csv

Returns:
the clavesExportar

setClavesExportar

public void setClavesExportar(java.util.List<java.lang.String> clavesExportar)
Lista de claves (campos) que forman la cabecera del fichero csv

Parameters:
clavesExportar - the clavesExportar to set

getClavesFicheros

public java.util.List<java.lang.String> getClavesFicheros()
Lista de claves para los ficheros

Returns:
the clavesFicheros

setClavesFicheros

public void setClavesFicheros(java.util.List<java.lang.String> clavesFicheros)
Lista de claves para los ficheros

Parameters:
clavesFicheros - the clavesFicheros to set

getUtilFichero

public UtilFichero getUtilFichero()
Objeto para la manipulación de ficheros

Returns:
the utilFichero

setUtilFichero

public void setUtilFichero(UtilFichero utilFichero)
Objeto para la manipulación de ficheros

Parameters:
utilFichero - the utilFichero to set

getNombreFicheroCsv

public java.lang.String getNombreFicheroCsv()
Nombre del fichero csv

Returns:
the nombreFicheroCsv

setNombreFicheroCsv

public void setNombreFicheroCsv(java.lang.String nombreFicheroCsv)
Nombre del fichero csv

Parameters:
nombreFicheroCsv - the nombreFicheroCsv to set

getCaracterSeparador

public int getCaracterSeparador()
Caracter separador para las celdas del fichero csv

Returns:
the caracterSeparador

setCaracterSeparador

public void setCaracterSeparador(int caracterSeparador)
Caracter separador para las celdas del fichero csv

Parameters:
caracterSeparador - the caracterSeparador to set

getFormatoFecha

public java.lang.String getFormatoFecha()
Formato de la fecha

Returns:
the formatoFecha

setFormatoFecha

public void setFormatoFecha(java.lang.String formatoFecha)
Formato de la fecha

Parameters:
formatoFecha - the formatoFecha to set

getCaracterCalificadorTexto

public int getCaracterCalificadorTexto()
Caracter para indicar donde empieza el texto en un fichero csv

Returns:
the caracterCalificadorTexto

setCaracterCalificadorTexto

public void setCaracterCalificadorTexto(int caracterCalificadorTexto)
Caracter para indicar donde empieza el texto en un fichero csv

Parameters:
caracterCalificadorTexto - the caracterCalificadorTexto to set