Package de.mhus.lib.core
Class MEventHandler<L>
- java.lang.Object
-
- de.mhus.lib.core.MLog
-
- de.mhus.lib.core.MEventHandler<L>
-
- Direct Known Subclasses:
MObserverHandler
public class MEventHandler<L> extends MLog implements MRegistry<L>
-
-
Constructor Summary
Constructors Constructor Description MEventHandler()Create the handler in normal mode.MEventHandler(boolean weakHandler)Create the handler and specify if all listeners have to be weak.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(L listener)Returns true if the listener instance is already registered for this event handler.voidfire()voidfire(Object event, Object... values)voidfireMethod(Method method, Object... values)Iterable<L>getListeners()Use this to iterate into the listeners and if you be sure the listeners do not try to change the event handler (register/unregister).Object[]getListenersArray()Returns a array of all registered (normal or weak) listeners.booleanisWeakHandler()Return true if the handler only store weak references (also by register()).voidonFire(L listener, Object event, Object... values)voidregister(L listener)Register a listener for this kind of events.voidregisterWeak(L listener)Register the listener as a weak reference.intsize()Amount of registered listeners.voidunregister(L listener)Unregister normal or weak listener from the handler.
-
-
-
Constructor Detail
-
MEventHandler
public MEventHandler()
Create the handler in normal mode.
-
MEventHandler
public MEventHandler(boolean weakHandler)
Create the handler and specify if all listeners have to be weak.- Parameters:
weakHandler- If true handler is in weak mode. All registered handlers are weak.
-
-
Method Detail
-
register
public void register(L listener)
Register a listener for this kind of events. If the handler is weak the listener will registered weak. A listener can only register one time. A second registration will be ignored.
-
unregister
public void unregister(L listener)
Unregister normal or weak listener from the handler.- Specified by:
unregisterin interfaceMRegistry<L>- Parameters:
listener- Listener for the events.
-
registerWeak
public void registerWeak(L listener)
Register the listener as a weak reference.- Specified by:
registerWeakin interfaceMRegistry<L>- Parameters:
listener- Listener for the events.
-
contains
public boolean contains(L listener)
Returns true if the listener instance is already registered for this event handler.- Parameters:
listener- Listener for the events.- Returns:
- true if the listener is registered as normal or weak.
-
getListenersArray
public Object[] getListenersArray()
Returns a array of all registered (normal or weak) listeners. The list should not be cashed - this will prevent weak listeners to be removed from the memory. The list should be used to fire events to the listeners if the listeners are able to change the event handler (register / unregister).- Returns:
- All registered listeners
-
getListeners
public Iterable<L> getListeners()
Use this to iterate into the listeners and if you be sure the listeners do not try to change the event handler (register/unregister). This method will save resources if only normal or only weak listeners are registered.- Returns:
- Iterable object for all listeners.
-
size
public int size()
Amount of registered listeners.- Returns:
- the size
-
isWeakHandler
public boolean isWeakHandler()
Return true if the handler only store weak references (also by register()).- Returns:
- flag
-
fire
public void fire()
-
-