abk.dao.sql
Class ADataItem<K extends Serializable>

java.lang.Object
  extended by abk.dao.sql.ADataItem<K>
All Implemented Interfaces:
IDataItem<K>, IResettable, Serializable, Cloneable

public abstract class ADataItem<K extends Serializable>
extends Object
implements IDataItem<K>

Clase base para la implementación de objetos de persistencia simples.

Se clase se utiliza para extenderlar a los objetos de persistencia que se necesiten. Por ejemplo:

 @Table(name = "MI_TABLA", sequence = "MI_TAB_ID_SEQ")
 public class MiEntidad extends ADataItem<Integer> {
 
    // Serializable //////////////////////////////////////////////
 
    private static final long serialVersionUID = 1L;
 
    // Propiedades ///////////////////////////////////////////////
 
    @Column(name = "C_TAB_ID", id = true)
    private Integer cTabId;
 
    // getters y setters /////////////////////////////////////////
 
    @Override
    public Integer getcTabId() {
       return cTabId;
    }
 
    @Override
    public void setcTabId(Integer cTabId) {
       this.cTabId = cTabId;
    }
 
    // Opcional: sobrecargar los metodos de IDataItem ////////////
 
    @Override
    public Integer primaryKey() {
       return getcTabId();
    }
 
    @Override
    public void primaryKey(Integer id) {
       setcTabId(id);
    }
 
    // Cloneable /////////////////////////////////////////////////
 
    @Override
    public MiEntidad clone() {
       MiEntidad clon = (MiEntidad) super.clone();
       // Otras acciones de clonado
       return clon;
    }
 }
 

See Also:
Serialized Form

Field Summary
private  Class<K> iKeyClass
          Clase de la propiedad ID.
private static long serialVersionUID
           
 
Constructor Summary
protected ADataItem()
          Constructor que infiere el tipo de la clave a partir de la declaración de la clase que le invoca.
 
Method Summary
private  ADataItem<K> cast0(Object clon)
           
 ADataItem<K> clone()
          Sobrecarga el método Object.clone() para que devuelve un ADataItem y suprime el lanzamiento de la excepción CloneNotSupportedException.
 ADataItem<K> clone(Map<Object,Object> refs)
          Devuelve una objeto que es una copia profunda de esta instancia, ya sea buscándolo entre el mapa que se le pasa, o creando un duplicado nuevo que se inserta también en el mapa, si en el mapa no existe aún ningún duplicado para esta instancia.
protected abstract  ADataItem<K> deepReplace(Map<Object,Object> refs)
           
 Class<K> keyClass()
          Devuelve la clase de la clave primaria del objeto.
 boolean keyEquals(Object obj)
          Compara si el objeto que se le pasa es igual que el actual.
 int keyHashCode()
          Devuelve el hash code resultado del valor del ID y del nombre completo de la clase.
(package private)  ADataMapper<K,ADataItem<K>> keyMapper()
           
 K primaryKey()
          Devuelve la clave primaria que identifica el registro del objeto.
 void primaryKey(K key)
          Fija el valor de la clave primaria de la instancia.
 String toString()
          Convierte el objeto en una cadena mostrando su nombre simple de clase y el valor de su ID.
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface abk.util.IResettable
reset
 

Field Detail

serialVersionUID

private static final long serialVersionUID
See Also:
Constant Field Values

iKeyClass

private final transient Class<K extends Serializable> iKeyClass
Clase de la propiedad ID.

Constructor Detail

ADataItem

protected ADataItem()
Constructor que infiere el tipo de la clave a partir de la declaración de la clase que le invoca.

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:
ADataIntrospector.getKeyType(Class)
Method Detail

toString

public String toString()
Convierte el objeto en una cadena mostrando su nombre simple de clase y el valor de su ID.

Overrides:
toString in class Object
Returns:
Representación imprimible del objeto a partir de su clave.

keyClass

public final Class<K> keyClass()
Description copied from interface: IDataItem
Devuelve la clase de la clave primaria del objeto.

Specified by:
keyClass in interface IDataItem<K extends Serializable>
Returns:
Clase de la clave primaria del objeto.

cast0

private final ADataItem<K> cast0(Object clon)

deepReplace

protected abstract ADataItem<K> deepReplace(Map<Object,Object> refs)

clone

public ADataItem<K> clone()
Sobrecarga el método Object.clone() para que devuelve un ADataItem y suprime el lanzamiento de la excepción CloneNotSupportedException.

Overrides:
clone in class Object
Throws:
UnsupportedOperationException - si internamente se produce un CloneNotSupportedException

clone

public ADataItem<K> clone(Map<Object,Object> refs)
Description copied from interface: IDataItem
Devuelve una objeto que es una copia profunda de esta instancia, ya sea buscándolo entre el mapa que se le pasa, o creando un duplicado nuevo que se inserta también en el mapa, si en el mapa no existe aún ningún duplicado para esta instancia.

Specified by:
clone in interface IDataItem<K extends Serializable>
Parameters:
refs - Mapa que asocia instancias en la clave con sus duplicados como valor.
Returns:
Duplicado de esta instancia.

keyMapper

ADataMapper<K,ADataItem<K>> keyMapper()

keyHashCode

public int keyHashCode()
Devuelve el hash code resultado del valor del ID y del nombre completo de la clase.

Returns:
Valor del hash code.

keyEquals

public boolean keyEquals(Object obj)
Compara si el objeto que se le pasa es igual que el actual. Se considera que dos instancias de ADataItem son iguales si obj es una instancia de la misma clase o de una clase descendiente de la clase de la instancia actual y su ID es igual, incluido el nulo. Las clases descendiente deberían sobrecargar este método si tienen otra clave única con la que comparar, además de la primaria.

Parameters:
obj - Objeto con el que se compara.
Returns:
true si obj es de la misma clase o de una clase descendiente y tiene el mismo ID, aunque sea nulo.

primaryKey

public K primaryKey()
Description copied from interface: IDataItem
Devuelve la clave primaria que identifica el registro del objeto.

Specified by:
primaryKey in interface IDataItem<K extends Serializable>
Returns:
Clave primaria del registro que contiene el dato. Si el objeto no ha sido registrado, se debe devolver null.

primaryKey

public void primaryKey(K key)
Description copied from interface: IDataItem
Fija el valor de la clave primaria de la instancia.

Specified by:
primaryKey in interface IDataItem<K extends Serializable>
Parameters:
key - Nueva clave primaria de la instancia.


Copyright © 2024. All rights reserved.