abk.util
Class ACachedReference<T>

java.lang.Object
  extended by abk.util.ACachedReference<T>
Type Parameters:
T - Tipo de dato referenciado.
Direct Known Subclasses:
ACachedMap

public class ACachedReference<T>
extends Object

Asocia un SoftReference<T> a una factoría de T, de forma que se instancia un nuevo objeto T cuando se necesita y la referencia sea nula.


Field Summary
private  Instantiator<T> iFactory
          Factoría para construir una nueva instancia cuando la referencia suave se anule.
private  Reference<T> iRef
          Referencia suave cacheada.
 
Constructor Summary
protected ACachedReference(Instantiator<T> factory)
           
 
Method Summary
 T clear()
          Anula la referencia suave que contiene.
static
<T> ACachedReference<T>
create(Instantiator<T> factory)
          Crea una nueva referencia cacheada usando la factoría que se le pasa.
 T get()
          Devuelve la instancia cacheada, instanciando una nueva si la referencia se hubiese perdido.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

iFactory

private final Instantiator<T> iFactory
Factoría para construir una nueva instancia cuando la referencia suave se anule.


iRef

private Reference<T> iRef
Referencia suave cacheada.

Constructor Detail

ACachedReference

protected ACachedReference(Instantiator<T> factory)
Method Detail

create

public static final <T> ACachedReference<T> create(Instantiator<T> factory)
Crea una nueva referencia cacheada usando la factoría que se le pasa.

Type Parameters:
T - Tipo de dato cacheado.
Parameters:
factory - Factoría para construir una nueva instancia cuando la referencia suave se anule.
Returns:
Instancia de ACachedReference.

get

public T get()
Devuelve la instancia cacheada, instanciando una nueva si la referencia se hubiese perdido.

Returns:
Instancia cacheada.

clear

public T clear()
Anula la referencia suave que contiene.

Returns:
La referencia a la instancia que cacheaba, o null si no cacheaba ninguna.


Copyright © 2024. All rights reserved.