abk.util
Class ACachedMap<K,V>

java.lang.Object
  extended by abk.util.ACachedReference<Map<K,Reference<V>>>
      extended by abk.util.ACachedMap<K,V>
Type Parameters:
K - Tipo de la clave del mapa.
V - Tipo de las instancias referencias, con instancia de Reference<V>.

public class ACachedMap<K,V>
extends ACachedReference<Map<K,Reference<V>>>

Clase que implementa una referencia volátil a un mapa caché que asocia claves con referencias, igualmente dinámicas, a una instancia.

Se supone que a partir del valor de clave se puede reconstruir el valor de la instancia (desde base de datos, o fichero de propiedades, por ejemplo), funcionando este mapa como una caché de estos valores, que podrá ser borrada por el Garbage Collector si fuese necesaria la memoria.


Nested Class Summary
static interface ACachedMap.Factory<K,V>
          Interfaz para crear nuevas instancias de un tipo a partir del valor de su clave primaria.
 
Field Summary
private  ACachedMap.Factory<K,V> iFactory
          Instancia para volver a crear/recuperar instancias a partir de su clave.
 
Constructor Summary
protected ACachedMap(ACachedMap.Factory<K,V> factory)
          Constructor del mapa cacheado, basado en un mapa de tipo WeakHashMap.
protected ACachedMap(ACachedMap.Factory<K,V> valueFactory, Instantiator<Map<K,Reference<V>>> mapFactory)
          Constructor del mapa cacheado.
 
Method Summary
static
<K,V> ACachedMap<K,V>
create(ACachedMap.Factory<K,V> factory)
          Constructor del mapa cacheado, basado en un mapa de tipo WeakHashMap.
static
<K,V> ACachedMap<K,V>
create(ACachedMap.Factory<K,V> valueFactory, Instantiator<Map<K,Reference<V>>> mapFactory)
          Constructor del mapa cacheado.
 V getValue(K key)
          Devuelve el valor archivado en caché para la clave, recuperándolo a través del ACachedMap.Factory si no estuviera cacheado su valor.
 V putValue(K key, V value)
          Coloca un nuevo valor en la caché.
 
Methods inherited from class abk.util.ACachedReference
clear, create, get
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

iFactory

private final ACachedMap.Factory<K,V> iFactory
Instancia para volver a crear/recuperar instancias a partir de su clave.

Constructor Detail

ACachedMap

protected ACachedMap(ACachedMap.Factory<K,V> valueFactory,
                     Instantiator<Map<K,Reference<V>>> mapFactory)
Constructor del mapa cacheado.

Parameters:
valueFactory - Factoria de los valores.
mapFactory - Factoría del mapa.
Throws:
NullArgumentException - si cualquier de los dos argumentos es nulo.

ACachedMap

protected ACachedMap(ACachedMap.Factory<K,V> factory)
Constructor del mapa cacheado, basado en un mapa de tipo WeakHashMap.

Parameters:
factory - Factoria de los valores.
Throws:
NullPointerException - si cualquier factory es nulo.
Method Detail

create

public static final <K,V> ACachedMap<K,V> create(ACachedMap.Factory<K,V> valueFactory,
                                                 Instantiator<Map<K,Reference<V>>> mapFactory)
Constructor del mapa cacheado.

Type Parameters:
K - Tipo de dato de la clave.
V - Tipo de datos del valor.
Parameters:
valueFactory - Factoria de los valores.
mapFactory - Factoría del mapa.
Returns:
Nuevo mapa volátil de caché.
Throws:
NullPointerException - si cualquier de los dos argumentos es nulo.

create

public static final <K,V> ACachedMap<K,V> create(ACachedMap.Factory<K,V> factory)
Constructor del mapa cacheado, basado en un mapa de tipo WeakHashMap.

Type Parameters:
K - Tipo de dato de la clave.
V - Tipo de datos del valor.
Parameters:
factory - Factoria de los valores.
Returns:
Nuevo mapa volátil de caché.
Throws:
NullPointerException - si cualquier factory es nulo.

putValue

public V putValue(K key,
                  V value)
Coloca un nuevo valor en la caché.

Parameters:
key - Clave del valor.
value - Valor que se guarda.
Returns:
Valor anterior guardado, si lo hubiera, o nu en otro caso.

getValue

public V getValue(K key)
Devuelve el valor archivado en caché para la clave, recuperándolo a través del ACachedMap.Factory si no estuviera cacheado su valor.

Parameters:
key - Clave de la instancia.
Returns:
Valor de la instancia.


Copyright © 2024. All rights reserved.