public final class EventDispatcher extends Object
Modifier and Type | Method and Description |
---|---|
boolean |
addListener(Class<? extends EventListener> clazz,
EventListener listener)
Adds a new
EventListener class instance. |
boolean |
addListener(Class<? extends EventListener> clazz,
EventListener listener,
int maxCalls)
Adds a new
EventListener class instance with a maximum number of EventListener calls. |
void |
clear()
Removes all
EventListener class type and listener instances. |
boolean |
equals(Object obj) |
<T extends EventListener> |
fireEvent(Class<T> clazz,
Consumer<T> consumer)
Handel the
Consumer lambda expression for all EventListener class instances of a
specific EventListener class type. |
int |
getListenerCount()
Returns the number of all
EventListener class instances. |
int |
getListenerCount(Class<? extends EventListener> clazz)
Returns the number of all
EventListener class instances associated with a specific EventListener class type. |
int |
getListenerCurrentCalls(Class<? extends EventListener> clazz,
EventListener listener)
Returns the number of current calls for the specific
EventListener class instance. |
int |
getListenerMaxCalls(Class<? extends EventListener> clazz,
EventListener listener)
Returns the number of maximum calls for the specific
EventListener class instance. |
int |
getListenerTypeCount()
Returns the number of all
EventListener class types. |
int |
hashCode() |
static EventDispatcher |
newInstance()
Factory method that creates a new
EventDispatcher instance. |
boolean |
removeListener(Class<? extends EventListener> clazz,
EventListener listener)
Removes a
EventListener class instance from a specific EventListener class type. |
boolean |
removeListenerType(Class<? extends EventListener> clazz)
Removes a specific
EventListener class type and all associated EventListener instances. |
public static EventDispatcher newInstance()
EventDispatcher
instance.EventDispatcher
instance.public boolean addListener(Class<? extends EventListener> clazz, EventListener listener)
EventListener
class instance.
The EventListener
class instance is assigned to a specific EventListener
class type.
A specific EventListener
class type assigns many EventListener
class instances.
clazz
- Represents a specific unique EventListener
class type.
If param is null
a NullPointerException
is thrown.listener
- Represents a specific EventListener
instance.
If param is null
a NullPointerException
is thrown.EventDispatcher
did not already contain the specific listener
instance.public boolean addListener(Class<? extends EventListener> clazz, EventListener listener, int maxCalls)
EventListener
class instance with a maximum number of EventListener
calls.
addListener(Class, java.util.EventListener)
The EventListener
class instance is assigned to a specific EventListener
class type.
A specific EventListener
class type assigns many EventListener
class instances.
clazz
- Represents a specific unique EventListener
class type.
If param is null
a NullPointerException
is thrown.listener
- Represents a specific EventListener
instance.
If param is null
a NullPointerException
is thrown.maxCalls
- Represents a maximum number of calls for the specific EventListener
instance.
The value -1 represents infinite calls.
If param is less or equal 0 (except -1) an IllegalArgumentException
is thrown.EventDispatcher
did not already contain the specific listener
instance.public boolean removeListener(Class<? extends EventListener> clazz, EventListener listener)
EventListener
class instance from a specific EventListener
class type.
EventListener
class type has no more EventListener
class instances it will also be removed.clazz
- Represents a specific EventListener
class type.listener
- Represents a specific EventListener
instance.EventDispatcher
contains the specific clazz
type and listener
instance.public boolean removeListenerType(Class<? extends EventListener> clazz)
EventListener
class type and all associated EventListener
instances.clazz
- Represents a specific EventListener
class type.EventDispatcher
contains the specific clazz
type and removed it.public void clear()
EventListener
class type and listener instances.
The current EventDispatcher
will be empty after this call returns.public int getListenerCount()
EventListener
class instances.EventListener
class instances.public int getListenerCount(Class<? extends EventListener> clazz)
EventListener
class instances associated with a specific EventListener
class type.clazz
- Represents a specific EventListener
class type.EventListener
class instances associated with a specific EventListener
class type.
clazz
type did not exist returns 0.public int getListenerTypeCount()
EventListener
class types.EventListener
class types.public int getListenerMaxCalls(Class<? extends EventListener> clazz, EventListener listener)
EventListener
class instance.clazz
- Represents a specific EventListener
class type.listener
- Represents a specific EventListener
instance.EventListener
class instance.
EventListener
instance did not exist returns 0.
EventListener
instance have infinite calls returns -1.public int getListenerCurrentCalls(Class<? extends EventListener> clazz, EventListener listener)
EventListener
class instance.clazz
- Represents a specific EventListener
class type.listener
- Represents a specific EventListener
instance.EventListener
class instance.
EventListener
instance did not exist returns 0.
EventListener
instance have infinite calls returns 0.public <T extends EventListener> boolean fireEvent(Class<T> clazz, Consumer<T> consumer)
Consumer
lambda expression for all EventListener
class instances of a
specific EventListener
class type.
addListener(Class, java.util.EventListener, int)
) value of the EventListener
class instance is reached the instance will be removed.
Consumer
input argument is automatically mapped to the clazz
type parameter.
Event methods can be handled like this:
fireEvent(SpecificEventListener.class, l -> l.specificEventListenerMethod(...));
or for multiple method calls
fireEvent(SpecificEventListener.class, l -> { l.specificEventListenerMethod(...); l.anotherSpecificEventListenerMethod(...); });
T
- A specific EventListener type that extends from EventListener
interface.clazz
- Represents a specific EventListener
class type.
Return False if param is null or current EventDispatcher
did not contain type.consumer
- Represents an operation normally for specific EventListener
instances.
Return False if param is null.Consumer
operation is successfully handled.Copyright © 2014. All rights reserved.