com.ejie.r01f.xml.marshalling
Class XOMap

java.lang.Object
  extended bycom.ejie.r01f.xml.marshalling.XOMap
All Implemented Interfaces:
java.io.Serializable

public class XOMap
extends java.lang.Object
implements java.io.Serializable

Obtiene una representación en memoria de la definición en XML de una jerarquia de clases. Un ejemplo del XML es: Trukos de definición de mapeos: - Una lista / mapa de objetos complejos: En el objeto padre que tiene como miembro la lista / mapa incluir un miembro: Incluir la definición del objeto hijo (ElementoHijoClass): ... todos los miembros ... Si se trata de un mapa uno de los miembros del objeto hijo debe tener el atributo isOID='true' lo que va a hacer que se indexe en el mapa utilizando el valor de este miembro Otra posibilidad es incluir el atributo oidAccessorMethod en la definición de la clase hijo, que se utiliza para indicar cual es el método a llamar para obtener la clave para indexar cada instancia de la clase en un mapa - Un mapa de Strings en el que la clave del mapa es el propio tag: (en este caso además cada elemento será CDATA o no segun el valor del atributo) Ejemplo: val1 val2 - Una lista de Strings, enteros, etc Ejemplo: 1 2 ... - Una miembro tipo fecha con formateo al serializar a XML - Para utilizar metodos get/set en una clase establecer la propiedad useAccesors='true' en la definicion de la clase - Para especificar un método para obtener el oid de un objeto establecer la propiedad oidAccessorMethod='getKey' en la definición de la clase. Esta propiedad es util cuando el oid no se compone a partir de una un unico miembro (en cuyo caso se pondría ) sino que se compone por ejemplo concatenando los valores de varios miembros Se utilizan dos clases auxiliares: - ClassMap: Modela una clase (nombre, paquete, miembros, tag por defecto de la que procede, etc) - MemberMap: Modela un miembro de una clase (nombre, tag del que procede, etc) Internamente se mantienen dos mapas: _objClases: Relaciona las clases (objetos ClassMap) con el nombre de la clase java _xmlClasses: Relaciona las clases (objetos ClassMap) con el nombre del tag xml del que procede Al final en memoria se tiene una estructura como la siguiente: Clase1 |_ Miembro 1 (String) |_ Miembro 2 (Clase 3) --------| |_ Miembro 3 (Clase 2) ----| | | | | | |--------------------------| | Clase 2 | |_ Miembro 1 (String) | |_ Miembro 2 (Clase 3) ----| | | | | | |--------------------------| | |------------------------------| | Clase 3 |_ Miembro 1 (Long) |_ Miembro 2 (String)

See Also:
Serialized Form

Field Summary
static int COLLECTION_ARRAY
           
static int COLLECTION_ARRAYLIST
           
static java.lang.String[] COLLECTION_DESCS
           
static int COLLECTION_HASHMAP
           
static int COLLECTION_HASHTABLE
           
static int COLLECTION_LINKEDHASHMAP
           
static int COLLECTION_LIST
           
static int COLLECTION_MAP
           
static int COLLECTION_NO_COLLECTION
           
static int COLLECTION_STATEMAP
           
static int COLLECTION_VECTOR
           
static int COLLECTION_XMLMAP
           
static int DATATYPE_boolean
           
static int DATATYPE_Boolean
           
static int DATATYPE_Collection
           
static int DATATYPE_Date
           
static int DATATYPE_double
           
static int DATATYPE_Double
           
static int DATATYPE_float
           
static int DATATYPE_Float
           
static int DATATYPE_int
           
static int DATATYPE_Integer
           
static int DATATYPE_long
           
static int DATATYPE_Long
           
static int DATATYPE_null
           
static int DATATYPE_Object
           
static int DATATYPE_SQLDate
           
static int DATATYPE_String
           
static int DATATYPE_XML
           
static java.lang.String[] DATATYPES_DESCS
           
static int RELATION_AGGREGATION
           
static int RELATION_COMPOSITION
           
static java.lang.String[] RELATION_DESCS
           
static int RELATION_NO_RELATION
           
 
Constructor Summary
XOMap()
          Constructor vacio
XOMap(java.io.InputStream is)
          Constructor en base a un inputStream de la definición del mapeo
XOMap(java.lang.String inXMLStr)
          Constructor en base a un String con el mapeo
 
Method Summary
 java.util.Collection getClasses()
          Devuelve una colección con la definición de las clases
 ClassMap getClassFromClassName(java.lang.String className)
          Obtiene la definición de una clase a partir del nombre de la clase
 ClassMap getClassFromXMLTag(java.lang.String tagName)
          Obtiene la definición de una clase a partir del tag xml
 java.lang.String getEncoding()
          Devuelve el encoding de los xml que se transforman con el mapeador
 void loadFromXML(java.io.InputStream is)
          Carga el mapa de clases que ha llegado en formato XML
 void setClassMap(ClassMap newClassMap)
          Establece un mapeo de una clase
 void setEncoding(java.lang.String theEncoding)
          Establece el encoding de los xml que se transforman con el mapeador
 java.lang.String toString()
          Devuelve la representación en String de las clases
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

DATATYPE_null

public static final int DATATYPE_null
See Also:
Constant Field Values

DATATYPE_String

public static final int DATATYPE_String
See Also:
Constant Field Values

DATATYPE_Integer

public static final int DATATYPE_Integer
See Also:
Constant Field Values

DATATYPE_int

public static final int DATATYPE_int
See Also:
Constant Field Values

DATATYPE_Long

public static final int DATATYPE_Long
See Also:
Constant Field Values

DATATYPE_long

public static final int DATATYPE_long
See Also:
Constant Field Values

DATATYPE_Double

public static final int DATATYPE_Double
See Also:
Constant Field Values

DATATYPE_double

public static final int DATATYPE_double
See Also:
Constant Field Values

DATATYPE_Float

public static final int DATATYPE_Float
See Also:
Constant Field Values

DATATYPE_float

public static final int DATATYPE_float
See Also:
Constant Field Values

DATATYPE_Boolean

public static final int DATATYPE_Boolean
See Also:
Constant Field Values

DATATYPE_boolean

public static final int DATATYPE_boolean
See Also:
Constant Field Values

DATATYPE_Date

public static final int DATATYPE_Date
See Also:
Constant Field Values

DATATYPE_SQLDate

public static final int DATATYPE_SQLDate
See Also:
Constant Field Values

DATATYPE_Object

public static final int DATATYPE_Object
See Also:
Constant Field Values

DATATYPE_Collection

public static final int DATATYPE_Collection
See Also:
Constant Field Values

DATATYPE_XML

public static final int DATATYPE_XML
See Also:
Constant Field Values

DATATYPES_DESCS

public static final java.lang.String[] DATATYPES_DESCS

COLLECTION_NO_COLLECTION

public static final int COLLECTION_NO_COLLECTION
See Also:
Constant Field Values

COLLECTION_ARRAY

public static final int COLLECTION_ARRAY
See Also:
Constant Field Values

COLLECTION_HASHTABLE

public static final int COLLECTION_HASHTABLE
See Also:
Constant Field Values

COLLECTION_HASHMAP

public static final int COLLECTION_HASHMAP
See Also:
Constant Field Values

COLLECTION_XMLMAP

public static final int COLLECTION_XMLMAP
See Also:
Constant Field Values

COLLECTION_STATEMAP

public static final int COLLECTION_STATEMAP
See Also:
Constant Field Values

COLLECTION_MAP

public static final int COLLECTION_MAP
See Also:
Constant Field Values

COLLECTION_VECTOR

public static final int COLLECTION_VECTOR
See Also:
Constant Field Values

COLLECTION_ARRAYLIST

public static final int COLLECTION_ARRAYLIST
See Also:
Constant Field Values

COLLECTION_LIST

public static final int COLLECTION_LIST
See Also:
Constant Field Values

COLLECTION_LINKEDHASHMAP

public static final int COLLECTION_LINKEDHASHMAP
See Also:
Constant Field Values

COLLECTION_DESCS

public static final java.lang.String[] COLLECTION_DESCS

RELATION_COMPOSITION

public static final int RELATION_COMPOSITION
See Also:
Constant Field Values

RELATION_AGGREGATION

public static final int RELATION_AGGREGATION
See Also:
Constant Field Values

RELATION_NO_RELATION

public static final int RELATION_NO_RELATION
See Also:
Constant Field Values

RELATION_DESCS

public static final java.lang.String[] RELATION_DESCS
Constructor Detail

XOMap

public XOMap()
Constructor vacio


XOMap

public XOMap(java.io.InputStream is)
      throws org.xml.sax.SAXException
Constructor en base a un inputStream de la definición del mapeo

Parameters:
is -
Throws:
org.xml.sax.SAXException

XOMap

public XOMap(java.lang.String inXMLStr)
      throws org.xml.sax.SAXException
Constructor en base a un String con el mapeo

Parameters:
inXMLStr -
Throws:
org.xml.sax.SAXException
Method Detail

getEncoding

public java.lang.String getEncoding()
Devuelve el encoding de los xml que se transforman con el mapeador

Returns:
el encoding

setEncoding

public void setEncoding(java.lang.String theEncoding)
Establece el encoding de los xml que se transforman con el mapeador

Parameters:
theEncoding - el nuevo encoding

loadFromXML

public void loadFromXML(java.io.InputStream is)
                 throws org.xml.sax.SAXException
Carga el mapa de clases que ha llegado en formato XML

Parameters:
is - Chorro de entrada del XML
Throws:
org.xml.sax.SAXException - si no se puede cargar el XML

getClasses

public java.util.Collection getClasses()
Devuelve una colección con la definición de las clases


getClassFromXMLTag

public ClassMap getClassFromXMLTag(java.lang.String tagName)
Obtiene la definición de una clase a partir del tag xml

Parameters:
tagName - Tag XML en el que se define la clase

getClassFromClassName

public ClassMap getClassFromClassName(java.lang.String className)
Obtiene la definición de una clase a partir del nombre de la clase

Parameters:
className - Nombre de la clase

setClassMap

public void setClassMap(ClassMap newClassMap)
Establece un mapeo de una clase

Parameters:
newClassMap - La definición del mapeo de la clase

toString

public java.lang.String toString()
Devuelve la representación en String de las clases