|
@@ -122,7 +122,6 @@ public final class EventFactory {
|
|
this.clazz = Objects.requireNonNull(clazz);
|
|
this.clazz = Objects.requireNonNull(clazz);
|
|
this.function = function;
|
|
this.function = function;
|
|
this.listeners = emptyArray();
|
|
this.listeners = emptyArray();
|
|
- update();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
private T[] emptyArray() {
|
|
private T[] emptyArray() {
|
|
@@ -135,19 +134,22 @@ public final class EventFactory {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public T invoker() {
|
|
public T invoker() {
|
|
|
|
+ if (invoker == null) {
|
|
|
|
+ update();
|
|
|
|
+ }
|
|
return invoker;
|
|
return invoker;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void register(T listener) {
|
|
public void register(T listener) {
|
|
listeners = ArrayUtils.add(listeners, listener);
|
|
listeners = ArrayUtils.add(listeners, listener);
|
|
- update();
|
|
|
|
|
|
+ invoker = null;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void unregister(T listener) {
|
|
public void unregister(T listener) {
|
|
listeners = ArrayUtils.removeElement(listeners, listener);
|
|
listeners = ArrayUtils.removeElement(listeners, listener);
|
|
- update();
|
|
|
|
|
|
+ invoker = null;
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -158,7 +160,7 @@ public final class EventFactory {
|
|
@Override
|
|
@Override
|
|
public void clearListeners() {
|
|
public void clearListeners() {
|
|
listeners = emptyArray();
|
|
listeners = emptyArray();
|
|
- update();
|
|
|
|
|
|
+ invoker = null;
|
|
}
|
|
}
|
|
|
|
|
|
public void update() {
|
|
public void update() {
|