es.mcu.yingo.firma
Class GeneradorXmlFicheroImpl

java.lang.Object
  extended by es.mcu.yingo.firma.GeneradorXmlFicheroImpl
All Implemented Interfaces:
GeneradorXml

public class GeneradorXmlFicheroImpl
extends java.lang.Object
implements GeneradorXml

Genera un archivo xml embebiendo un fichero. Dicho archivo se genera de modo que sea adecuado para que sea firmado posteriormente el contenido del xml "SolicitudFirmada", donde el primer nodo es "SolicitudID"

Author:
raquel.herrero

Field Summary
protected  org.apache.commons.logging.Log logger
          Log de la aplicación
private  java.lang.Long tamañoMaximoEmbebido
          Tamaño máximo para embeber
private  java.lang.String urlNamespaceDs
          Url napespace Ds
private  java.lang.String urlNamespaceEtsi
          Url napespace Etsi
private  UtilFichero utilFicheroSesion
          Utilidad para el manejo de ficheros
 
Constructor Summary
GeneradorXmlFicheroImpl()
           
 
Method Summary
private  void anadirCampoFichero(Datos campo, org.dom4j.Element eDatos)
          Añade el campo fichero embebido en el XML, dentro del nodo solicitudId.
private  org.dom4j.Element anadirNodoDatos(org.dom4j.Element eSolicitudId, Datos dato)
          Añade el nodo del fichero que hay que añadir al xml, de los datos que se reciben buscamos aquel que coincida con el nombre del fichero y que sea un fichero.
private  org.dom4j.Element anadirNodoSolicitudFichero(org.dom4j.Element eSolicitudFirmada)
          Se añade el nodo de solicitudId al nodo de solicitud firmacda
private  org.dom4j.Element anadirNodoSolicitudFirmada(org.dom4j.Document documento)
          Crea el nodo principal \"SolicitudFirmada\" del documento
 java.lang.String generarXmlParaFirma(java.util.Collection<Datos> datos)
          Genera el xml a partir de un fichero que será embebido
 java.lang.Long getTamañoMaximoEmbebido()
           
 java.lang.String getUrlNamespaceDs()
           
 java.lang.String getUrlNamespaceEtsi()
           
 UtilFichero getUtilFicheroSesion()
           
 void setTamañoMaximoEmbebido(java.lang.Long tamañoMaximoEmbebido)
           
 void setUrlNamespaceDs(java.lang.String urlNamespaceDs)
           
 void setUrlNamespaceEtsi(java.lang.String urlNamespaceEtsi)
           
 void setUtilFicheroSesion(UtilFichero utilFicheroSesion)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger
Log de la aplicación


utilFicheroSesion

private UtilFichero utilFicheroSesion
Utilidad para el manejo de ficheros


urlNamespaceDs

private java.lang.String urlNamespaceDs
Url napespace Ds


urlNamespaceEtsi

private java.lang.String urlNamespaceEtsi
Url napespace Etsi


tamañoMaximoEmbebido

private java.lang.Long tamañoMaximoEmbebido
Tamaño máximo para embeber

Constructor Detail

GeneradorXmlFicheroImpl

public GeneradorXmlFicheroImpl()
Method Detail

generarXmlParaFirma

public java.lang.String generarXmlParaFirma(java.util.Collection<Datos> datos)
                                     throws java.lang.Exception
Genera el xml a partir de un fichero que será embebido

Specified by:
generarXmlParaFirma in interface GeneradorXml
Parameters:
datos -
tarea -
Returns:
Throws:
java.lang.Exception

anadirNodoSolicitudFirmada

private org.dom4j.Element anadirNodoSolicitudFirmada(org.dom4j.Document documento)
Crea el nodo principal \"SolicitudFirmada\" del documento

Parameters:
documento -
Returns:

anadirNodoSolicitudFichero

private org.dom4j.Element anadirNodoSolicitudFichero(org.dom4j.Element eSolicitudFirmada)
Se añade el nodo de solicitudId al nodo de solicitud firmacda

Parameters:
eSolicitudFirmada -
Returns:

anadirNodoDatos

private org.dom4j.Element anadirNodoDatos(org.dom4j.Element eSolicitudId,
                                          Datos dato)
                                   throws java.security.NoSuchAlgorithmException,
                                          java.io.IOException,
                                          YingoException
Añade el nodo del fichero que hay que añadir al xml, de los datos que se reciben buscamos aquel que coincida con el nombre del fichero y que sea un fichero.

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

anadirCampoFichero

private void anadirCampoFichero(Datos campo,
                                org.dom4j.Element eDatos)
                         throws java.security.NoSuchAlgorithmException,
                                FicheroYingoException,
                                java.io.IOException
Añade el campo fichero embebido en el XML, dentro del nodo solicitudId. Si el fichero posee un tamaño mayor que la propiedad 'tamañoMaximoEmbebido', se añadirá el hash sha1 del fichero codificado en base64. Si el fichero posee un tamaño menor, se añade la codificación en base64 del fichero.

Parameters:
campo -
datos -
eDatos -
Throws:
java.security.NoSuchAlgorithmException
FicheroYingoException
java.io.IOException

getUrlNamespaceDs

public java.lang.String getUrlNamespaceDs()
Returns:
the urlNamespaceDs

setUrlNamespaceDs

public void setUrlNamespaceDs(java.lang.String urlNamespaceDs)
Parameters:
urlNamespaceDs - the urlNamespaceDs to set

getUrlNamespaceEtsi

public java.lang.String getUrlNamespaceEtsi()
Returns:
the urlNamespaceEtsi

setUrlNamespaceEtsi

public void setUrlNamespaceEtsi(java.lang.String urlNamespaceEtsi)
Parameters:
urlNamespaceEtsi - the urlNamespaceEtsi to set

getUtilFicheroSesion

public UtilFichero getUtilFicheroSesion()
Returns:
the utilFicheroSesion

setUtilFicheroSesion

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

getTamañoMaximoEmbebido

public java.lang.Long getTamañoMaximoEmbebido()
Returns:
the tamañoMaximoEmbebido

setTamañoMaximoEmbebido

public void setTamañoMaximoEmbebido(java.lang.Long tamañoMaximoEmbebido)
Parameters:
tamañoMaximoEmbebido - the tamañoMaximoEmbebido to set