Package org.openstreetmap.josm.tools
Class ListenableWeakReference<T>
- java.lang.Object
-
- java.lang.ref.Reference<T>
-
- java.lang.ref.WeakReference<T>
-
- org.openstreetmap.josm.tools.ListenableWeakReference<T>
-
- Type Parameters:
T
- The weak reference
- Direct Known Subclasses:
AbstractProperty.WeakPreferenceAdapter
public class ListenableWeakReference<T> extends java.lang.ref.WeakReference<T>
This is a special weak reference that notifies a listener when it is no longer available. A special dereferenced-thread is used for this, so make sure your code is thread-safe.- Since:
- 12181
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.ref.ReferenceQueue<java.lang.Object>
GLOBAL_QUEUE
private java.lang.Runnable
runOnDereference
private static java.lang.Thread
thread
-
Constructor Summary
Constructors Constructor Description ListenableWeakReference(T referent)
Create a newListenableWeakReference
ListenableWeakReference(T referent, java.lang.Runnable runOnDereference)
Create a newListenableWeakReference
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static void
clean()
private static void
ensureQueueStarted()
protected void
onDereference()
This method is called after the object is dereferenced.
-
-
-
Field Detail
-
GLOBAL_QUEUE
private static final java.lang.ref.ReferenceQueue<java.lang.Object> GLOBAL_QUEUE
-
thread
private static java.lang.Thread thread
-
runOnDereference
private final java.lang.Runnable runOnDereference
-
-
Constructor Detail
-
ListenableWeakReference
public ListenableWeakReference(T referent)
Create a newListenableWeakReference
- Parameters:
referent
- The object that is referenced
-
ListenableWeakReference
public ListenableWeakReference(T referent, java.lang.Runnable runOnDereference)
Create a newListenableWeakReference
- Parameters:
referent
- The object that is referencedrunOnDereference
- The runnable to run when the object is no longer referenced.
-
-
Method Detail
-
onDereference
protected void onDereference()
This method is called after the object is dereferenced.
-
ensureQueueStarted
private static void ensureQueueStarted()
-
clean
private static void clean()
-
-