From 8eaabb8c6f77d8802e64e9654dc4a9dd9e24d201 Mon Sep 17 00:00:00 2001 From: Denis Zhdanov Date: Mon, 6 Jul 2015 11:40:59 +0300 Subject: [PATCH] UP-4484 Improve performance of MessageBusImpl processing Minor refactoring to be able to conveniently use default implementation in tests --- .../util/messages/MessageBusFactory.java | 30 +++++++++++-------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/platform/util/src/com/intellij/util/messages/MessageBusFactory.java b/platform/util/src/com/intellij/util/messages/MessageBusFactory.java index f91daed0dd2c..54496579bfca 100644 --- a/platform/util/src/com/intellij/util/messages/MessageBusFactory.java +++ b/platform/util/src/com/intellij/util/messages/MessageBusFactory.java @@ -27,26 +27,16 @@ import java.util.concurrent.atomic.AtomicReference; public class MessageBusFactory { - private static final AtomicReference ourImpl = new AtomicReference(new Impl() { - @NotNull - @Override - public MessageBus newMessageBus(@NotNull Object owner) { - return new MessageBusImpl.RootBus(owner); - } - - @NotNull - @Override - public MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { - return parentBus == null ? newMessageBus(owner) : new MessageBusImpl(owner, parentBus); - } - }); + private static final AtomicReference ourImpl = new AtomicReference(Impl.DEFAULT); private MessageBusFactory() {} + @NotNull public static MessageBus newMessageBus(@NotNull Object owner) { return ourImpl.get().newMessageBus(owner); } + @NotNull public static MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { return ourImpl.get().newMessageBus(owner, parentBus); } @@ -57,6 +47,20 @@ public class MessageBusFactory { public interface Impl { + Impl DEFAULT = new Impl() { + @NotNull + @Override + public MessageBus newMessageBus(@NotNull Object owner) { + return new MessageBusImpl.RootBus(owner); + } + + @NotNull + @Override + public MessageBus newMessageBus(@NotNull Object owner, @Nullable MessageBus parentBus) { + return parentBus == null ? newMessageBus(owner) : new MessageBusImpl(owner, parentBus); + } + }; + @NotNull MessageBus newMessageBus(@NotNull Object owner);