r01f.marshalling.simple
Class SimpleMarshallerMappingsFromAnnotationsLoader

java.lang.Object
  extended by r01f.marshalling.simple.SimpleMarshallerMappingsFromAnnotationsLoader

 class SimpleMarshallerMappingsFromAnnotationsLoader
extends java.lang.Object

Clase que se encarga de obtener los mapeos de un bean a partir de anotaciones java


Field Summary
private  java.util.Map<java.lang.String,BeanMap> _loadedBeans
           
 
Constructor Summary
SimpleMarshallerMappingsFromAnnotationsLoader(java.lang.Class<?>... types)
          Constructor en base a los tipos
 
Method Summary
private  void _beanMapFromBeanAnnotations(java.lang.Class<?> type)
          Obtiene el mapeo de un bean inspeccionando las anotaciones
private static DataTypes.DataType _dataTypeFromType(java.lang.reflect.Field field)
          Obtiene el tipo de dato a partir de la definición de la clase
private static FieldMap _fieldMapFromField(java.lang.Class<?> type, java.lang.reflect.Field field)
          Devuelve un esqueleto de objeto FieldMap a partir de un Field de un Type Este esqueleto unicamente incluye: - el nombre del field - el tipo de dato - si es oid o no
private static java.lang.String _fieldName(java.lang.reflect.Field f)
          Obtiene el nombre de un miembro teniendo en cuenta que el nombre puede comenzar por el prefijo "_" en cuyo caso se elimina NOTA: Normalmente el prefijo se indica con la anotación Accessors, PERO el problema es que esta anotación SOLO se mantiene en el codigo, y NO en tiempo de ejecución
private static java.lang.String _nodeNameFromAnnotation(java.lang.String name, java.lang.String defaultName)
          Obtiene el nombre de un nodo XML a partir de lo indicado en una anotacion XmlRootElement, XmlElement o XmlAttribute teniendo en cuenta que si NO se indica valor en la propiedad name(), el valor por defecto es ##default
private  void _recursiveMapBean(DataTypes.DataType dataType)
          Llamada recursiva si se trata de: - Un objeto complejo (no un int, long, string, etc) - Una colección de objetos complejos
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_loadedBeans

private java.util.Map<java.lang.String,BeanMap> _loadedBeans
Constructor Detail

SimpleMarshallerMappingsFromAnnotationsLoader

public SimpleMarshallerMappingsFromAnnotationsLoader(java.lang.Class<?>... types)
                                              throws MarshallerException
Constructor en base a los tipos

Parameters:
types - tipos cuyas anotaciones hay que procesar
Throws:
MarshallerException
Method Detail

_beanMapFromBeanAnnotations

private void _beanMapFromBeanAnnotations(java.lang.Class<?> type)
                                  throws MarshallerException
Obtiene el mapeo de un bean inspeccionando las anotaciones

Parameters:
bean - el bean
Throws:
MarshallerException

_recursiveMapBean

private void _recursiveMapBean(DataTypes.DataType dataType)
                        throws MarshallerException
Llamada recursiva si se trata de: - Un objeto complejo (no un int, long, string, etc) - Una colección de objetos complejos

Parameters:
dataType - el tipo de dato del miembro
Throws:
MarshallerException - si no se puede mapear

_fieldMapFromField

private static FieldMap _fieldMapFromField(java.lang.Class<?> type,
                                           java.lang.reflect.Field field)
Devuelve un esqueleto de objeto FieldMap a partir de un Field de un Type Este esqueleto unicamente incluye: - el nombre del field - el tipo de dato - si es oid o no

Parameters:
type - el tipo
field - el field
Returns:

_nodeNameFromAnnotation

private static java.lang.String _nodeNameFromAnnotation(java.lang.String name,
                                                        java.lang.String defaultName)
Obtiene el nombre de un nodo XML a partir de lo indicado en una anotacion XmlRootElement, XmlElement o XmlAttribute teniendo en cuenta que si NO se indica valor en la propiedad name(), el valor por defecto es ##default

Parameters:
name - nombre del indicado en el valor name() de la anotación (puede ser null)
defaultName - valor por defecto en caso de que NO se indique nada en el valor name() de la anotación
Returns:

_dataTypeFromType

private static DataTypes.DataType _dataTypeFromType(java.lang.reflect.Field field)
Obtiene el tipo de dato a partir de la definición de la clase

Parameters:
type - el tipo
Returns:
el tipo de dato

_fieldName

private static java.lang.String _fieldName(java.lang.reflect.Field f)
Obtiene el nombre de un miembro teniendo en cuenta que el nombre puede comenzar por el prefijo "_" en cuyo caso se elimina NOTA: Normalmente el prefijo se indica con la anotación Accessors, PERO el problema es que esta anotación SOLO se mantiene en el codigo, y NO en tiempo de ejecución

Parameters:
type - el tipo
f - el miembro del tipo
Returns:
el nombre del miembro eliminando los prefijos indicados en Accessors