From 8609c6a90c2ae655058fdb09ec3d5a0f00c685ee Mon Sep 17 00:00:00 2001 From: kske Date: Tue, 18 Jan 2022 15:00:18 +0100 Subject: [PATCH] Simplify binding cache usage --- .../java/dev/kske/eventbus/core/EventBus.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/dev/kske/eventbus/core/EventBus.java b/core/src/main/java/dev/kske/eventbus/core/EventBus.java index 1d39e1e..dc94a7f 100644 --- a/core/src/main/java/dev/kske/eventbus/core/EventBus.java +++ b/core/src/main/java/dev/kske/eventbus/core/EventBus.java @@ -193,9 +193,7 @@ public final class EventBus { * @since 1.2.0 */ private NavigableSet getHandlersFor(Class eventType) { - if (bindingCache.containsKey(eventType)) { - return bindingCache.get(eventType); - } else { + return bindingCache.computeIfAbsent(eventType, k -> { // Get handlers defined for the event class TreeSet handlers = @@ -208,9 +206,8 @@ public final class EventBus { if (handler.isPolymorphic()) handlers.add(handler); - bindingCache.put(eventType, handlers); return handlers; - } + }); } /** @@ -396,13 +393,13 @@ public final class EventBus { private void bindHandler(EventHandler handler) { // Bind handler - bindings.putIfAbsent(handler.getEventType(), new TreeSet<>(byPriority)); logger.log(Level.DEBUG, "Binding event handler {0}", handler); - bindings.get(handler.getEventType()).add(handler); + bindings.computeIfAbsent(handler.getEventType(), k -> new TreeSet<>(byPriority)) + .add(handler); // Insert handler into cache - bindingCache.putIfAbsent(handler.getEventType(), new TreeSet<>(byPriority)); - bindingCache.get(handler.getEventType()).add(handler); + bindingCache.computeIfAbsent(handler.getEventType(), k -> new TreeSet<>(byPriority)) + .add(handler); // Handler is polymorphic => insert where applicable if (handler.isPolymorphic())