From e040f6ab1b994cbcc3d4aadbe18582bd2fad788b Mon Sep 17 00:00:00 2001 From: kske Date: Mon, 15 Feb 2021 09:25:16 +0100 Subject: [PATCH] Simplify binding access calls in EventBus --- .../java/dev/kske/eventbus/core/EventBus.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/event-bus-core/src/main/java/dev/kske/eventbus/core/EventBus.java b/event-bus-core/src/main/java/dev/kske/eventbus/core/EventBus.java index ae39625..2248668 100644 --- a/event-bus-core/src/main/java/dev/kske/eventbus/core/EventBus.java +++ b/event-bus-core/src/main/java/dev/kske/eventbus/core/EventBus.java @@ -51,11 +51,12 @@ public final class EventBus { return instance; } - private final Map, TreeSet> bindings - = new ConcurrentHashMap<>(); - private final Set registeredListeners = ConcurrentHashMap.newKeySet(); - private final ThreadLocal dispatchState - = ThreadLocal.withInitial(DispatchState::new); + private final Map, TreeSet> bindings = + new ConcurrentHashMap<>(); + private final Set registeredListeners = + ConcurrentHashMap.newKeySet(); + private final ThreadLocal dispatchState = + ThreadLocal.withInitial(DispatchState::new); /** * Dispatches an event to all event handlers registered for it in descending order of their @@ -97,9 +98,7 @@ public final class EventBus { private List getHandlersFor(Class eventClass) { // Get handlers defined for the event class - Set handlers - = bindings.containsKey(eventClass) ? bindings.get(eventClass) - : new TreeSet<>(); + Set handlers = bindings.getOrDefault(eventClass, new TreeSet<>()); // Get subtype handlers for (var binding : bindings.entrySet()) @@ -151,20 +150,18 @@ public final class EventBus { // Initialize and bind the handler var handler = new EventHandler(listener, method, annotation); - if (!bindings.containsKey(handler.getEventType())) - bindings.put(handler.getEventType(), new TreeSet<>()); + bindings.putIfAbsent(handler.getEventType(), new TreeSet<>()); logger.log(Level.DEBUG, "Binding event handler {0}", handler); bindings.get(handler.getEventType()) .add(handler); handlerBound = true; } - if(!handlerBound) + if (!handlerBound) logger.log( Level.WARNING, "No event handlers bound for event listener {0}", - listener.getClass().getName() - ); + listener.getClass().getName()); } /**