mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
UP-4484 Improve performance of MessageBusImpl processing
Minor refactoring to be able to conveniently use default implementation in tests
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user