Add Callback Event Handling #26

Merged
kske merged 3 commits from f/callback-handler into develop 2021-11-05 08:49:07 +01:00
2 changed files with 31 additions and 30 deletions
Showing only changes of commit d3abb0aca3 - Show all commits

View File

@ -256,67 +256,68 @@ public final class EventBus {
* Registers a callback listener, which is a consumer that is invoked when an event occurs. The * Registers a callback listener, which is a consumer that is invoked when an event occurs. The
* listener is not polymorphic and has the {@link #DEFAULT_PRIORITY}. * listener is not polymorphic and has the {@link #DEFAULT_PRIORITY}.
* *
* @param <E> the event type the listener listens for * @param <E> the event type the listener listens for
* @param eventType the event type the listener listens for * @param eventType the event type the listener listens for
* @param callback the callback that is invoked when an event occurs * @param eventListener the callback that is invoked when an event occurs
* @since 1.2.0 * @since 1.2.0
* @see #registerListener(Class, Consumer, boolean, int) * @see #registerListener(Class, Consumer, boolean, int)
*/ */
public <E> void registerListener(Class<E> eventType, Consumer<E> callback) { public <E> void registerListener(Class<E> eventType, Consumer<E> eventListener) {
registerListener(eventType, callback, false, DEFAULT_PRIORITY); registerListener(eventType, eventListener, false, DEFAULT_PRIORITY);
} }
/** /**
* Registers a callback listener, which is a consumer that is invoked when an event occurs. The * Registers a callback listener, which is a consumer that is invoked when an event occurs. The
* listener has the {@link #DEFAULT_PRIORITY}. * listener has the {@link #DEFAULT_PRIORITY}.
* *
* @param <E> the event type the listener listens for * @param <E> the event type the listener listens for
* @param eventType the event type the listener listens for * @param eventType the event type the listener listens for
* @param callback the callback that is invoked when an event occurs * @param eventListener the callback that is invoked when an event occurs
* @param polymorphic whether the listener is also invoked for subtypes of the event type * @param polymorphic whether the listener is also invoked for subtypes of the event type
* @since 1.2.0 * @since 1.2.0
* @see #registerListener(Class, Consumer, boolean, int) * @see #registerListener(Class, Consumer, boolean, int)
*/ */
public <E> void registerListener(Class<E> eventType, Consumer<E> callback, public <E> void registerListener(Class<E> eventType, Consumer<E> eventListener,
kske marked this conversation as resolved Outdated
Outdated
Review

Consumer<E> eventListener?

`Consumer<E> eventListener`?
boolean polymorphic) { boolean polymorphic) {
registerListener(eventType, callback, polymorphic, DEFAULT_PRIORITY); registerListener(eventType, eventListener, polymorphic, DEFAULT_PRIORITY);
} }
/** /**
* Registers a callback listener, which is a consumer that is invoked when an event occurs. The * Registers a callback listener, which is a consumer that is invoked when an event occurs. The
* listener is not polymorphic. * listener is not polymorphic.
* *
* @param <E> the event type the listener listens for * @param <E> the event type the listener listens for
* @param eventType the event type the listener listens for * @param eventType the event type the listener listens for
* @param callback the callback that is invoked when an event occurs * @param eventListener the callback that is invoked when an event occurs
* @param priority the priority to assign to the listener * @param priority the priority to assign to the listener
* @since 1.2.0 * @since 1.2.0
* @see #registerListener(Class, Consumer, boolean, int) * @see #registerListener(Class, Consumer, boolean, int)
*/ */
public <E> void registerListener(Class<E> eventType, Consumer<E> callback, int priority) { public <E> void registerListener(Class<E> eventType, Consumer<E> eventListener, int priority) {
kske marked this conversation as resolved Outdated
Outdated
Review

eventListener?

eventListener?
registerListener(eventType, callback, false, priority); registerListener(eventType, eventListener, false, priority);
} }
/** /**
* Registers a callback listener, which is a consumer that is invoked when an event occurs. * Registers a callback listener, which is a consumer that is invoked when an event occurs.
* *
* @param <E> the event type the listener listens for * @param <E> the event type the listener listens for
* @param eventType the event type the listener listens for * @param eventType the event type the listener listens for
* @param callback the callback that is invoked when an event occurs * @param eventListener the callback that is invoked when an event occurs
* @param polymorphic whether the listener is also invoked for subtypes of the event type * @param polymorphic whether the listener is also invoked for subtypes of the event type
* @param priority the priority to assign to the listener * @param priority the priority to assign to the listener
* @since 1.2.0 * @since 1.2.0
*/ */
public <E> void registerListener(Class<E> eventType, Consumer<E> callback, boolean polymorphic, public <E> void registerListener(Class<E> eventType, Consumer<E> eventListener,
kske marked this conversation as resolved Outdated
Outdated
Review

eventListener?

eventListener?
boolean polymorphic,
int priority) { int priority) {
Objects.requireNonNull(callback); Objects.requireNonNull(eventListener);
if (registeredListeners.contains(callback)) if (registeredListeners.contains(eventListener))
throw new EventBusException(callback + " already registered!"); throw new EventBusException(eventListener + " already registered!");
logger.log(Level.INFO, "Registering callback event listener {0}", logger.log(Level.INFO, "Registering callback event listener {0}",
callback.getClass().getName()); eventListener.getClass().getName());
registeredListeners.add(callback); registeredListeners.add(eventListener);
bindHandler(new CallbackEventHandler(eventType, callback, polymorphic, priority)); bindHandler(new CallbackEventHandler(eventType, eventListener, polymorphic, priority));
} }
/** /**

View File

@ -45,7 +45,7 @@ public interface EventHandler {
int getPriority(); int getPriority();
/** /**
* @return whether this handler is polymorphic * @return whether this handler also accepts subtypes of the event type
kske marked this conversation as resolved Outdated
Outdated
Review

... accepts subtypes of the event type as well

... accepts subtypes of the event type as well
* @since 1.2.0 * @since 1.2.0
* @see Polymorphic * @see Polymorphic
*/ */