Return proper type

This commit is contained in:
TheMode 2021-06-02 19:28:02 +02:00
parent 0d6dde3ff5
commit f6fe41cfe9
2 changed files with 8 additions and 8 deletions

View File

@ -18,15 +18,15 @@ public interface EventNode<T extends Event> {
return create(Event.class);
}
static <E extends Event> EventNode<E> conditional(@NotNull Class<E> type,
@NotNull Predicate<E> predicate) {
static <E extends Event> EventNodeConditional<E> conditional(@NotNull Class<E> type,
@NotNull Predicate<E> predicate) {
return new EventNodeConditional<>(type, predicate);
}
static <E extends Event, H extends EventHandler> EventNode<E> map(@NotNull Class<E> eventType,
@NotNull Class<H> handlerType,
@NotNull Function<E, H> handlerGetter) {
return new EventNodeMap<>(eventType, handlerGetter);
static <E extends Event, H extends EventHandler> EventNodeList<E, H> list(@NotNull Class<E> eventType,
@NotNull Class<H> handlerType,
@NotNull Function<E, H> handlerGetter) {
return new EventNodeList<>(eventType, handlerGetter);
}
void call(@NotNull T event);

View File

@ -7,13 +7,13 @@ import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.function.Function;
public class EventNodeMap<T extends Event, H extends EventHandler> extends EventNodeImpl<T> {
public class EventNodeList<T extends Event, H extends EventHandler> extends EventNodeImpl<T> {
private final Function<T, H> handlerGetter;
private final List<H> entries = new CopyOnWriteArrayList<>();
protected EventNodeMap(Class<T> eventType, Function<T, H> handlerGetter) {
protected EventNodeList(Class<T> eventType, Function<T, H> handlerGetter) {
super(eventType);
this.handlerGetter = handlerGetter;
}