abk.dao.sql
Class ADataIntrospector<K extends Serializable,T extends IDataItem<K>>

java.lang.Object
  extended by abk.dao.sql.ADataIntrospector<K,T>
Type Parameters:
K - Tipo de dato de la clave primaria.
T - Tipo de dato de una instancia.

public class ADataIntrospector<K extends Serializable,T extends IDataItem<K>>
extends Object

Clase que se encarga de la introspección de una clase de persistencia y obtener los parámetros de mapeo de la misma con


Field Summary
private static int CONST_MASK_DONT
           
private static int CONST_MASK_YES
           
private  Class<T> iItemClass
           
private  ADataProperty iKeyInfo
           
private static ACachedReference<ADataMapper.Cache> MAPPERCACHE
          Mapa ADataMapper.Cache usado para guardar los mapeadores de IDataItem ya compilados.
 
Constructor Summary
ADataIntrospector(Class<T> itemClass)
           
 
Method Summary
static void clearMapperCache()
          Libera la caché de mapeadores de entidades, para liberar memoria.
private  ADataProperty createProperty(PropertyDescriptor desc)
           
private  int findColumnSize(String colSizeName)
          Recupera el tamaño de la columna desde un campo estático de la clase Java del objeto.
protected  Class<T> getItemClass()
           
static Class<?> getItemType(Class<?> itemClass)
           
static Class<?> getKeyType(Class<?> itemClass)
          Infiere el tipo de dato indicado para K en una clase que implementa de IDataItem.
static
<K extends Serializable,T extends IDataItem<K>>
ADataMapper<K,T>
getMapper(Class<T> clazz)
          Compilador de la información de mapeo de una clase.
private  int initColumnFlags(Column col, Class<?> type, int flags)
           
private  void initColumnInfo(ADataProperty info, Field field)
          Inicializa la información de la columna a partir de las anotaciones del getter y del nombre de la propiedad.
private  void initTableInfo(ADataMapper<K,T> mapper)
           
private  ADataMapper<K,T> introspect()
          Ejecuta la creación del mapeador de propiedades de persistencia a partir de las propiedades de la clase de Bean.
private static boolean isTransient(Method method)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONST_MASK_YES

private static final int CONST_MASK_YES
See Also:
Constant Field Values

CONST_MASK_DONT

private static final int CONST_MASK_DONT
See Also:
Constant Field Values

MAPPERCACHE

private static final ACachedReference<ADataMapper.Cache> MAPPERCACHE
Mapa ADataMapper.Cache usado para guardar los mapeadores de IDataItem ya compilados.


iItemClass

private Class<T extends IDataItem<K>> iItemClass

iKeyInfo

private ADataProperty iKeyInfo
Constructor Detail

ADataIntrospector

public ADataIntrospector(Class<T> itemClass)
Method Detail

getItemClass

protected final Class<T> getItemClass()

getMapper

public static final <K extends Serializable,T extends IDataItem<K>> ADataMapper<K,T> getMapper(Class<T> clazz)
                                                                                  throws IntrospectionException
Compilador de la información de mapeo de una clase. La compilación solamente se realiza una vez, el resto de llamadas para una misma clase recuperan el resultado de la primera llamada.

Type Parameters:
K - Clase del ID de la entidad.
T - Tipo de dato para el que se construye el objeto de transferencia.
Parameters:
clazz - Clase del tipo de objeto que se usará para la transferencia.
Returns:
El objeto de transferencia creado.
Throws:
IntrospectionException
NullPointerException - si clazz es nulo.

clearMapperCache

public static final void clearMapperCache()
Libera la caché de mapeadores de entidades, para liberar memoria. La caché volverá a construirse si se vuelven a mapear objetos.


introspect

private ADataMapper<K,T> introspect()
                                                                       throws IntrospectionException
Ejecuta la creación del mapeador de propiedades de persistencia a partir de las propiedades de la clase de Bean.

Returns:
Mapeador construido mediante introspección.
Throws:
IntrospectionException - si se produce un error de introspección.

createProperty

private ADataProperty createProperty(PropertyDescriptor desc)

initTableInfo

private final void initTableInfo(ADataMapper<K,T> mapper)

initColumnInfo

private final void initColumnInfo(ADataProperty info,
                                  Field field)
Inicializa la información de la columna a partir de las anotaciones del getter y del nombre de la propiedad.

Parameters:
info - Información de la propiedad que se esta inicializando.
field - Campo de la clase que almacena el valor correspondiente a la propiedad, donde están las anotaciones que configuran el mapeo de datos.

initColumnFlags

private int initColumnFlags(Column col,
                            Class<?> type,
                            int flags)

findColumnSize

private final int findColumnSize(String colSizeName)
Recupera el tamaño de la columna desde un campo estático de la clase Java del objeto.

Parameters:
colSizeName - Nombre del campo entero, estático, público y final.
Returns:
Valor del campo colSizeName como entero, siempre que este campo sea una instancia de Number o un entero. Si el campo no existe o no es accesible, devuelve 255.

getKeyType

public static final Class<?> getKeyType(Class<?> itemClass)
Infiere el tipo de dato indicado para K en una clase que implementa de IDataItem.

Parameters:
itemClass - Clase descenciente de una clase genérica cuyo primer tipo parametrizado se desea recuperar.
Returns:
Clase del primer argumento de la clase genérica que se le pasa.
Throws:
GenericSignatureFormatError - si lo lanza el API de reflexión de Java.
TypeNotPresentException - si lo lanza el API de reflexión de Java.
MalformedParameterizedTypeException - si lo lanza el API de reflexión de Java.
IllegalArgumentException - si la clase de item no desciende directamente de una clase genérica.
ClassCastException - si la clase de la clave recuperada no desciende de Serializable.
See Also:
Class.getGenericSuperclass(), ParameterizedType.getActualTypeArguments()

getItemType

public static final Class<?> getItemType(Class<?> itemClass)

isTransient

private static final boolean isTransient(Method method)


Copyright © 2024. All rights reserved.