Add singleton EventBus instance
This commit is contained in:
parent
856e81b090
commit
70bcfd5125
2
pom.xml
2
pom.xml
@ -5,7 +5,7 @@
|
||||
|
||||
<groupId>dev.kske</groupId>
|
||||
<artifactId>event-bus</artifactId>
|
||||
<version>0.0.1</version>
|
||||
<version>0.0.2</version>
|
||||
|
||||
<name>Event Bus</name>
|
||||
<description>An event handling framework for Java utilizing annotations.</description>
|
||||
|
@ -6,6 +6,9 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
/**
|
||||
* Event listeners can be registered at an event bus to be notified when an event is dispatched.
|
||||
* <p>
|
||||
* A singleton instance of this class can be lazily created and acquired using the
|
||||
* {@link EventBus#getInstance()} method.
|
||||
* <p>
|
||||
* This is a thread-safe implementation.
|
||||
*
|
||||
* @author Kai S. K. Engelbart
|
||||
@ -14,6 +17,20 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
*/
|
||||
public final class EventBus {
|
||||
|
||||
private static EventBus singletonInstance;
|
||||
|
||||
/**
|
||||
* Produces a singleton instance of the event bus. It is lazily initialized on the first call.
|
||||
*
|
||||
* @return a singleton instance of the event bus.
|
||||
* @since 0.0.2
|
||||
*/
|
||||
public static EventBus getInstance() {
|
||||
if (singletonInstance == null)
|
||||
singletonInstance = new EventBus();
|
||||
return singletonInstance;
|
||||
}
|
||||
|
||||
private final Map<Class<? extends IEvent>, Collection<EventHandler>> bindings
|
||||
= new ConcurrentHashMap<>();
|
||||
private final Set<EventListener> registeredListeners = ConcurrentHashMap.newKeySet();
|
||||
|
Loading…
x
Reference in New Issue
Block a user