r01f.marshalling.simple
Class SimpleMarshallerBase

java.lang.Object
  extended by r01f.marshalling.simple.SimpleMarshallerBase
All Implemented Interfaces:
Marshaller
Direct Known Subclasses:
SimpleMarshaller.SimpleMarshallerReusableImpl, SimpleMarshaller.SimpleMarshallerSingleUseImpl

abstract class SimpleMarshallerBase
extends java.lang.Object
implements Marshaller

Marshaller de XML a objetos y viceversa La forma habitual de utilizar es la siguiente: [CASO 1]: La definición del mapeo se carga desde un fichero XML de mapeo // obtener una instancia del marshaller Marshaller marshaller = new SimpleMarshallerFactory().create().addBeans(mapFile); // Pasar de objetos a XML MyObj myObjInstance = marshaller.beanFrom(xml); // Pasar del XML a objetos String xml = marshaller.xmlFrom(myObjInstance); [CASO 2]: La definición del mapeo se carga desde un fichero XML de mapeo // obtener una instancia del marshaller Marshaller marshaller = new SimpleMarshallerFactory().addBeans(MyClass.class); // Pasar de objetos a XML MyObj myObjInstance = marshaller.beanFrom(xml); // Pasar del XML a objetos String xml = marshaller.xmlFrom(myObjInstance); Para inicializar el Marshaller es necesario un XML de definición de cómo hacer las transformaciones hay detalles de cómo configurar el XML de definición en MarshallerMappingsFromXMLLoader


Field Summary
private  java.nio.charset.Charset _charSet
           
(package private)  MarshallerMappings _mappings
          Contiene la cache de mapeo utilizada en los procesos de marshalling/unmarshalling El mapeo se puede obtener de un fichero de definición en XML o de anotaciones en las propias clases Java IMPORTANTE!!
private  TextEncoder _textEncoder
           
 
Constructor Summary
SimpleMarshallerBase()
           
 
Method Summary
 Marshaller addBeans(java.lang.Class<?>... annotatedTypes)
          Añade los mapeos examinando las anotaciones de los beans que se pasan como parametro NOTA: Unicamente es necesario pasar los "beans principales" ya que automaticamente va recorriendo los beans "hijo" presentes como miembro o componentes de una colección / mapa
 Marshaller addBeans(java.io.InputStream mapsIS)
          Añade los mapeos del stream que se pasa como parametro
 Marshaller addBeans(java.lang.String mapFilesPath)
          Añade los mapeos del fichero cuya ruta (que tiene que ser accesible en el classPath) se pasa como parametro
<T> T
beanFromXml(java.io.InputStream beanXmlIS)
          Obtiene un objeto a partir de un xml en forma de String
<T> T
beanFromXml(org.w3c.dom.Node beanXmlNode)
          Obtiene un objeto a partir de un objeto Node del DOM XML
<T> T
beanFromXml(java.lang.String beanXml)
          Obtiene un objeto a partir de un xml en forma de String
 Marshaller usingEncoder(TextEncoder encoder)
          Establece el encoder a utilizar
 java.lang.String xmlFromBean(java.lang.Object bean)
          Obtiene una cadena xml a partir de un objeto
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_mappings

MarshallerMappings _mappings
Contiene la cache de mapeo utilizada en los procesos de marshalling/unmarshalling El mapeo se puede obtener de un fichero de definición en XML o de anotaciones en las propias clases Java IMPORTANTE!! - Si se van a hacer muchas operaciones de marshalling/unmarshalling, conviene CACHEAR este objeto, es decir, que este objeto sea UNICO, puesto que se reutiliza una y otra vez Ej: persistencia de objetos en BBDD en formato XML: se está continuamente transformando objetos a XML... es NECESARIO cachear el mapeo - Si únicamente se va a hacer UNA OPERACIÓN de marshalling/unmarshalling sobre un determinado tipo de objeto, NO tiene sentido mantener una cache de la definición del mapeo. Ej: carga de configuración de un XML: se pasa el XML a objetos y lo que se cachean con los objetos... NO es necesario volver a pasar de XML a objetos


_charSet

private java.nio.charset.Charset _charSet

_textEncoder

private TextEncoder _textEncoder
Constructor Detail

SimpleMarshallerBase

SimpleMarshallerBase()
Method Detail

addBeans

public Marshaller addBeans(java.lang.String mapFilesPath)
                    throws MarshallerException
Description copied from interface: Marshaller
Añade los mapeos del fichero cuya ruta (que tiene que ser accesible en el classPath) se pasa como parametro

Specified by:
addBeans in interface Marshaller
Parameters:
mapFilesPath - el path al fichero de mapeo
Throws:
MarshallerException - si el fichero de mapeo es incorrecto

addBeans

public Marshaller addBeans(java.io.InputStream mapsIS)
                    throws MarshallerException
Description copied from interface: Marshaller
Añade los mapeos del stream que se pasa como parametro

Specified by:
addBeans in interface Marshaller
Throws:
MarshallerException - si el fichero de mapeos es incorrecto

addBeans

public Marshaller addBeans(java.lang.Class<?>... annotatedTypes)
                    throws MarshallerException
Description copied from interface: Marshaller
Añade los mapeos examinando las anotaciones de los beans que se pasan como parametro NOTA: Unicamente es necesario pasar los "beans principales" ya que automaticamente va recorriendo los beans "hijo" presentes como miembro o componentes de una colección / mapa

Specified by:
addBeans in interface Marshaller
Parameters:
annotatedTypes - beans "principales" independientes entre sí desde donde comenzar a buscar anotaciones para componer los mapeos
Throws:
MarshallerException - si hay algún error al componer los mapeos

usingEncoder

public Marshaller usingEncoder(TextEncoder encoder)
Description copied from interface: Marshaller
Establece el encoder a utilizar

Specified by:
usingEncoder in interface Marshaller
Parameters:
encoder - encoder

beanFromXml

public <T> T beanFromXml(java.lang.String beanXml)
              throws MarshallerException
Description copied from interface: Marshaller
Obtiene un objeto a partir de un xml en forma de String

Specified by:
beanFromXml in interface Marshaller
Returns:
El objeto creado por el marshaller que representa el fichero XML.
Throws:
MarshallerException

beanFromXml

public <T> T beanFromXml(java.io.InputStream beanXmlIS)
              throws MarshallerException
Description copied from interface: Marshaller
Obtiene un objeto a partir de un xml en forma de String

Specified by:
beanFromXml in interface Marshaller
Returns:
El objeto creado por el marshaller que representa el fichero XML.
Throws:
MarshallerException

beanFromXml

public <T> T beanFromXml(org.w3c.dom.Node beanXmlNode)
              throws MarshallerException
Description copied from interface: Marshaller
Obtiene un objeto a partir de un objeto Node del DOM XML

Specified by:
beanFromXml in interface Marshaller
Parameters:
beanXmlNode - el objeto Node del DOM XML
Returns:
el objeto creado por el marshaller que representa el ficheor XML
Throws:
MarshallerException

xmlFromBean

public java.lang.String xmlFromBean(java.lang.Object bean)
                             throws MarshallerException
Description copied from interface: Marshaller
Obtiene una cadena xml a partir de un objeto

Specified by:
xmlFromBean in interface Marshaller
Parameters:
bean - el objeto a partir del cual debe crearse el XML
Returns:
cadena que representa el XML creado por el marshaller.
Throws:
MarshallerException