UP-4484 Improve performance of MessageBusImpl processing

Minor refactoring to be able to conveniently use default
implementation in tests
This commit is contained in:
Denis Zhdanov
2015-07-06 11:42:00 +03:00
parent 417010e654
commit 8eaabb8c6f
@@ -27,26 +27,16 @@ import java.util.concurrent.atomic.AtomicReference;
public class MessageBusFactory {
private static final AtomicReference<Impl> ourImpl = new AtomicReference<Impl>(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<Impl> ourImpl = new AtomicReference<Impl>(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);