Class ALcdWeakStatusListener<T,R extends ILcdStatusSource>
- Type Parameters:
T- The type of the short-lived objectR- The type of the long-lived object, which is also the source of the status events this listener will receive
- All Implemented Interfaces:
ILcdStatusListener<R>,EventListener
An ILcdStatusListener implementation which only keeps a WeakReference to the object it
wants to update when change events are received. This avoids memory leaks, even without removing the
listener.
The class javadoc of ALcdWeakModelListener contains an example of a weak listener,
and some rules on the usage of weak listeners.
This particular listener has one extra rule compared to the general rules of weak listeners:
- The object to listen to must implement
ILcdStatusSource.
- Since:
- 2015.1
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedALcdWeakStatusListener(T aObjectToModify) Creates a newALcdWeakStatusListenerinstance which can updateaObjectToModifywhen it receives events. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidstatusChanged(TLcdStatusEvent<R> aStatusEvent) This method will be called when the status of anObjectto which this ILcdStatusListener has been registered has changed.protected abstract voidstatusChangedImpl(T aToModify, TLcdStatusEvent<R> aStatusEvent) This method is called each time aTLcdStatusEventis received by this listener, and the short-living object to modify passed in the constructor of this listener is not yet GC-ed.
-
Constructor Details
-
ALcdWeakStatusListener
Creates a new
ALcdWeakStatusListenerinstance which can updateaObjectToModifywhen it receives events.Warning: this listener can only be registered to a
ILcdStatusSource. The listener will throw exceptions when it receivesTLcdStatusEventinstances where the source is not anILcdStatusSourceinstance.- Parameters:
aObjectToModify- The object you want to modify when aTLcdStatusEventis received. This is a short-lived object, while the listener will be attached to a long-livingILcdStatusSourceobject
-
-
Method Details
-
statusChanged
This method will be called when the status of anObjectto which this ILcdStatusListener has been registered has changed.This method will check whether the short-living object is still available. If it is, this method will pass the short-living object and the event to the
statusChangedImpl(Object, TLcdStatusEvent)method. If the short-living object is already garbage collected, this method will de-register the listener from the source.- Specified by:
statusChangedin interfaceILcdStatusListener<T>- Parameters:
aStatusEvent- a TLcdStatusEvent detailing the status changes.
-
statusChangedImpl
This method is called each time a
TLcdStatusEventis received by this listener, and the short-living object to modify passed in the constructor of this listener is not yet GC-ed.- Parameters:
aToModify- The object to modify, as passed in the constructor of this class.aStatusEvent- The received event
-