|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectabk.dao.sql.ADataMapper<K,T>
K
- Tipo de dato de la clave de T.T
- Tipo del objeto para el que se implementa las operaciones de transmisión.public class ADataMapper<K extends Serializable,T extends IDataItem<K>>
Implementa las operaciones de transmisión de datos desde un ResultSet hacia una instancia y desde ésta hacia un PreparedStatement.
Nested Class Summary | |
---|---|
static class |
ADataMapper.Cache
|
Field Summary | |
---|---|
private Class<T> |
iItemClass
Clase correspondiente a T. |
private ADataProperty |
iKeyInfo
Información para el mapeo de la propiedad de la clave primaria. |
private Map<String,ADataProperty> |
iProperties
Mapa con los campos de T que forman parte del objeto de transferencia de datos. |
private String |
iSequenceName
Nombre de la secuencia, si se usan secuencias (solamente para bases de datos Oracle. |
private String |
iTableName
Nombre de la tabla en la base de datos. |
private String |
iTupla
Caché de la tupla completa de columnas de la entidad. |
private ALogger |
logger
|
Constructor Summary | |
---|---|
ADataMapper(Class<T> itemClass)
Constructor. |
Method Summary | ||
---|---|---|
T |
createObject()
Crea un nuevo objeto T. |
|
protected void |
finalize()
|
|
Object |
get(T obj,
String name)
Devuelve el valor del campo de un objeto de la clase T. |
|
|
get(T obj,
String name,
Class<S> klass)
Devuelve un campo de objeto con el tipo de objeto definido por la clase S. |
|
protected
|
get(T obj,
String name,
Class<S> wrapper,
Class<?> raw)
Devuelve un campo de objeto con el tipo de objeto definido por la clase S, soportando la equivalencia entre clases nativas y envolventes. |
|
Boolean |
getBoolean(T ot,
String name)
Devuelve como Boolean la propiedad cuyo nombre se indica. |
|
Byte |
getByte(T ot,
String name)
Devuelve como Byte la propiedad cuyo nombre se indica. |
|
Character |
getCharacter(T ot,
String name)
Devuelve como Character la propiedad cuyo nombre se indica. |
|
String |
getClassName()
Utilería para llamar directamente a getItemClass() .getName() . |
|
(package private) Collection<ADataProperty> |
getColumns()
|
|
private static Object |
getDataItemValue(ResultSet rs,
int col,
ADataProperty info)
Crea un nuevo objeto IDataItem y lo inicializa desde la base de datos si el tipo de objeto es Column.loadable(), en otro caso se devuelve un objeto vacío a excepción de su clave primaria. |
|
Double |
getDouble(T ot,
String name)
Devuelve como Double la propiedad cuyo nombre se indica. |
|
private static Enum<?> |
getEnumValue(Class<?> type,
String name)
Devuelve la constante correspondiente a un nombre. |
|
Float |
getFloat(T ot,
String name)
Devuelve como Float la propiedad cuyo nombre se indica. |
|
Integer |
getInteger(T ot,
String name)
Devuelve como Integer la propiedad cuyo nombre se indica. |
|
Class<T> |
getItemClass()
Devuelve la clase del tipo de objeto que se utiliza para la transmisión. |
|
Class<K> |
getKeyClass()
Devuelve la clase de la propiedad clave ID. |
|
ADataProperty |
getKeyInfo()
Devuelve la información sobre las propiedades de la clave primaria de la entidad. |
|
Long |
getLong(T ot,
String name)
Devuelve como Long la propiedad cuyo nombre se indica. |
|
Map<String,ADataProperty> |
getProperties()
Devuelve el mapa de propiedades de la entidad. |
|
String |
getSequenceName()
Devuelve el nombre de la secuencia para obtener el siguiente valor del ID en bases de datos Oracle. |
|
Short |
getShort(T ot,
String name)
Devuelve como Short la propiedad cuyo nombre se indica. |
|
String |
getString(T ot,
String name)
Devuelve como String la propiedad cuyo nombre se indica. |
|
String |
getTableName()
Devuelve el nombre de la tabla de entidad mapeada. |
|
static Object |
getValueFrom(ResultSet rs,
int col,
ADataProperty info)
Recoge el valor del campo desde la posición indicada de un ResultSet. |
|
ADataProperty |
info(String name)
Devuelve del descriptor de la propiedad correspondiente a name. |
|
ADataProperty |
infoByColumnLabel(String label)
Recupera la información de una propiedad a partir del nombre de su columna en la base de datos. |
|
void |
set(T obj,
String name,
Object value)
Establece el valor de un campo de la clase T. |
|
static void |
setFrom(IDataItem<? extends Serializable> data,
ResultSet rs,
Collection<ADataProperty> infos)
Actualiza los valores del objeto con las columnas homónimas del ResultSet. |
|
void |
setFrom(T data,
ResultSet rs)
Actualiza los valores del objeto con las columnas homónimas del ResultSet. |
|
void |
setKeyInfo(ADataProperty keyInfo)
Asigna la información sobre las propiedades de la clave primaria de la entidad. |
|
void |
setProperties(Map<String,ADataProperty> properties)
Asigna el mapa de propiedades de la entidad. |
|
void |
setSequenceName(String name)
Establece el nombre de la secuencia para obtener el siguiente valor del ID en bases de datos Oracle. |
|
void |
setTableName(String tableName)
Asigna el nombre de la tabla de la base de datos en la que se mapea la entidad. |
|
List<ADataProperty> |
subset(int mask)
Devuelve una colección de propiedades filtrando por una máscara de bits que deben tener activos. |
|
List<ADataProperty> |
subset(int maskYes,
int maskOff)
Devuelve una colección de propiedades filtrando por una máscara de bits que deben tener activos y otra máscara con los bits que deben tener a cero. |
|
static List<ADataProperty> |
subset(Iterable<ADataProperty> columns,
int mask)
Devuelve una colección de propiedades filtrando por una máscara de bits que deben tener activos. |
|
static List<ADataProperty> |
subset(Iterable<ADataProperty> columns,
int maskYes,
int maskOff)
Devuelve una colección de propiedades filtrando por una máscara de bits que deben tener activos y otra máscara con los bits que deben tener a cero. |
|
List<ADataProperty> |
subset(ResultSet rs)
Devuelve una colección de informaciones de propiedad correspondiente a las columnas de un ResultSet en el objecto de transferencia actual. |
|
String |
tupla()
Devuelve la tupla completa de nombres de columnas de la entidad. |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final ALogger logger
private final Class<T extends IDataItem<K>> iItemClass
private Map<String,ADataProperty> iProperties
private String iTableName
private ADataProperty iKeyInfo
private String iSequenceName
private String iTupla
Constructor Detail |
---|
public ADataMapper(Class<T> itemClass)
null
.
itemClass
- Clasde del item para la nueva instancia.
NullArgumentException
- si itemClass es null
.Method Detail |
---|
Collection<ADataProperty> getColumns()
public final String getTableName()
public final void setTableName(String tableName)
tableName
- Nuevo nombre de la tabla.public final Class<T> getItemClass()
public final String getClassName()
getItemClass()
.getName()
.
public final Map<String,ADataProperty> getProperties()
public final void setProperties(Map<String,ADataProperty> properties)
properties
- Nuevo mapa de propiedades.public final T createObject()
null
.
IllegalStateException
- si ClassUtils.createObject(Class) la
lanza.
SecurityException
- si ClassUtils.createObject(Class) la
lanza.
ExceptionInInitializerError
- si ClassUtils.createObject(Class) la
lanza.public final ADataProperty getKeyInfo()
public final void setKeyInfo(ADataProperty keyInfo)
keyInfo
- Información a asignar.public final String getSequenceName()
null
si no se ha definido ninguna
secuencia para la generación automática de ID's de fila.public final void setSequenceName(String name)
name
- Nombre de la secuencia en la base de datos.public Class<K> getKeyClass()
protected void finalize() throws Throwable
finalize
in class Object
Throwable
public ADataProperty info(String name)
name
- Nombre de la propiedad.
null
si existe un propiedad con ese
nombre.
NullArgumentException
- si name es null
.public final ADataProperty infoByColumnLabel(String label)
label
- Columna de la base de datos asociada a la propiedad.
null
si existe un propiedad con ese
nombre de columna.
NullPointerException
- si label es null
.public final String tupla()
"COL_LABEL_1,COL_LABEL_2,...,COL_LABEL_N"
, donde COL_LABEL_X
es cada una de
las columnas correspondientes a las propiedades en iProperties.
public static final List<ADataProperty> subset(Iterable<ADataProperty> columns, int mask)
columns
- Vector completo de columnas a filtrar.mask
- Entero con la máscara bits que deben estar puestos a uno.
ADataProperty.iFlags
public static final List<ADataProperty> subset(Iterable<ADataProperty> columns, int maskYes, int maskOff)
columns
- Vector completo de columnas a filtrar.maskYes
- Entero con la máscara bits que deben estar puestos a uno.maskOff
- Entero con la máscar de bits que deben estar puestos a cero.
ADataProperty.iFlags
public final List<ADataProperty> subset(int mask)
mask
- Entero con la máscara bits que deben estar puestos a uno.
ADataProperty.iFlags
public final List<ADataProperty> subset(int maskYes, int maskOff)
maskYes
- Entero con la máscara bits que deben estar puestos a uno.maskOff
- Entero con la máscar de bits que deben estar puestos a cero.
ADataProperty.iFlags
public List<ADataProperty> subset(ResultSet rs) throws SQLException
rs
- Objeto a procesar.
null
en los valores devueltos.
NullPointerException
- si rs es null
.
SQLException
- si se produce algún error.private static final Enum<?> getEnumValue(Class<?> type, String name)
T extends Enum<T>
.
type
- Clase asociada a la enumeración.name
- Nombre de la constantes que buscamos.
IllegalArgumentException
- si type no es una enumeración o si name
no se corresponde a ninguna constante.
NullArgumentException
- si type o name son null
.private static final Object getDataItemValue(ResultSet rs, int col, ADataProperty info) throws SQLException
rs
- Valores de una fila recuperada desde una petición SQL.col
- Índice de la columna del ResultSet desde donde recuperar el valor. Si la
clave primaria tuviese más columnas, éstas deben continuar en las columnas
posterioresinfo
- Campo que se inicializa desde el ResultSet.
null
si el valor del ID en el
ResultSet era null
.
IllegalClassException
- si info no representa un tipo de dato compatible con
IDataItem.
SQLException
- si se produce un error en el acceso a la base de datos.public static final Object getValueFrom(ResultSet rs, int col, ADataProperty info) throws SQLException
info
- Campo que se inicializa desde el ResultSet.rs
- Valores de una fila recuperada desde una petición SQL.col
- Índice de la columna del ResultSet desde donde recuperar el valor.
NullPointerException
- si info o rs son null
.
SQLException
- si se recibe una excepción
SQLException.public static final void setFrom(IDataItem<? extends Serializable> data, ResultSet rs, Collection<ADataProperty> infos) throws SQLException
data
- Objeto que se actualiza.rs
- ResultSet desde donde se recogen los valores a poner.infos
- Colección con la información de las propiedades en el mismo orden que vienen en
el ResultSet.
NullPointerException
- si cualquiera de sus argumentos es null
.
SQLException
- si se produce un error en el acceso a los datos.public void setFrom(T data, ResultSet rs) throws SQLException
Puede sobrecargar este método si quiere mapear directamente el ResultSet para reducir el tiempo de procesamiento.
data
- Objeto que se actualiza.rs
- ResultSet desde donde se recogen los valores a poner.
NullPointerException
- si cualquiera de sus argumentos es null
.
SQLException
- si se produce un error en el acceso a los datos.setFrom(IDataItem,ResultSet,Collection)
,
subset(ResultSet)
public final void set(T obj, String name, Object value)
obj
- Objeto cuyo campo se establece.name
- Nombre del campo.value
- Nuevo valor del campo.
NullPointerException
- si name o obj son null
.
UnsupportedOperationException
- si no hay ninguna propiedad con el nombre
name.ADataProperty.set(Object,Object...)
public final Object get(T obj, String name)
obj
- Objeto cuyo valor de campo se pide.name
- Nombre del campo.
NullPointerException
- si name o obj son null
.
UnsupportedOperationException
- si no hay ninguna propiedad con el nombre
name.ADataProperty.get(Object, Object...)
public final <S> S get(T obj, String name, Class<S> klass)
S
- Tipo de objeto que se devuelve.obj
- Objeto cuyo campo se consulta.name
- Nombre del campo que se consulta.klass
- Clase del tipo de objeto que se desea devolver.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo S.protected final <S> S get(T obj, String name, Class<S> wrapper, Class<?> raw)
S
- Tipo de objeto que se devuelve.obj
- Objeto cuyo campo se consulta.name
- Nombre del campo que se consulta.wrapper
- Clase del tipo de objeto que se desea devolver. Por ejemplo
Integer.class
.raw
- Tipo de dato nativo vinculado correspondiente a una clase envolvente. Por
ejemplo, int.class
.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo S.public final String getString(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo String.public final Boolean getBoolean(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Boolean.public final Integer getInteger(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Integer.public final Long getLong(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Long.public final Short getShort(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Short.public final Byte getByte(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Byte.public final Character getCharacter(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo
Character.public final Float getFloat(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Float.public final Double getDouble(T ot, String name)
ot
- Objeto cuya propiedad se consulta.name
- Nombre de la propiedad que consultamos.
ClassCastException
- si el tipo de la propiedad no es asignable al tipo Double.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |