joiner -> invokerFactory

This commit is contained in:
asie 2019-02-07 13:11:10 +01:00
parent 9dffeebaf1
commit 004281cdac
3 changed files with 13 additions and 13 deletions

View file

@ -35,12 +35,12 @@ public final class EventFactory {
EventFactoryImpl.invalidate();
}
public static <T> Event<T> createArrayBacked(Class<T> type, Function<T[], T> joiner) {
return EventFactoryImpl.createArrayBacked(type, joiner);
public static <T> Event<T> createArrayBacked(Class<T> type, Function<T[], T> invokerFactory) {
return EventFactoryImpl.createArrayBacked(type, invokerFactory);
}
public static <T> Event<T> createArrayBacked(Class<T> type, T emptyInvoker, Function<T[], T> joiner) {
return EventFactoryImpl.createArrayBacked(type, emptyInvoker, joiner);
public static <T> Event<T> createArrayBacked(Class<T> type, T emptyInvoker, Function<T[], T> invokerFactory) {
return EventFactoryImpl.createArrayBacked(type, emptyInvoker, invokerFactory);
}
public static String getHandlerName(Object event) {

View file

@ -24,14 +24,14 @@ import java.util.function.Function;
class ArrayBackedEvent<T> extends Event<T> {
private final Class<T> type;
private final Function<T[], T> joiner;
private final Function<T[], T> invokerFactory;
private final T dummyInvoker;
private T[] handlers;
ArrayBackedEvent(Class<T> type, T dummyInvoker, Function<T[], T> joiner) {
ArrayBackedEvent(Class<T> type, T dummyInvoker, Function<T[], T> invokerFactory) {
this.type = type;
this.dummyInvoker = dummyInvoker;
this.joiner = joiner;
this.invokerFactory = invokerFactory;
update();
}
@ -41,12 +41,12 @@ class ArrayBackedEvent<T> extends Event<T> {
invoker = dummyInvoker;
} else {
//noinspection unchecked
invoker = joiner.apply((T[]) Array.newInstance(type, 0));
invoker = invokerFactory.apply((T[]) Array.newInstance(type, 0));
}
} else if (handlers.length == 1) {
invoker = handlers[0];
} else {
invoker = joiner.apply(handlers);
invoker = invokerFactory.apply(handlers);
}
}

View file

@ -37,12 +37,12 @@ public final class EventFactoryImpl {
ARRAY_BACKED_EVENTS.forEach(ArrayBackedEvent::update);
}
public static <T> Event<T> createArrayBacked(Class<T> type, Function<T[], T> joiner) {
return createArrayBacked(type, null /* buildEmptyInvoker(type, joiner) */, joiner);
public static <T> Event<T> createArrayBacked(Class<T> type, Function<T[], T> invokerFactory) {
return createArrayBacked(type, null /* buildEmptyInvoker(type, invokerFactory) */, invokerFactory);
}
public static <T> Event<T> createArrayBacked(Class<T> type, T emptyInvoker, Function<T[], T> joiner) {
ArrayBackedEvent<T> event = new ArrayBackedEvent<>(type, emptyInvoker, joiner);
public static <T> Event<T> createArrayBacked(Class<T> type, T emptyInvoker, Function<T[], T> invokerFactory) {
ArrayBackedEvent<T> event = new ArrayBackedEvent<>(type, emptyInvoker, invokerFactory);
ARRAY_BACKED_EVENTS.add(event);
return event;
}