Class DefaultEventManager
java.lang.Object
eu.cloudnetservice.driver.impl.event.DefaultEventManager
- All Implemented Interfaces:
eu.cloudnetservice.driver.event.EventManager
@Singleton
@Provides(eu.cloudnetservice.driver.event.EventManager.class)
public final class DefaultEventManager
extends Object
implements eu.cloudnetservice.driver.event.EventManager
The default implementation of an event manager.
- Since:
- 4.0
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<T extends eu.cloudnetservice.driver.event.Event>
Tprotected @NonNull eu.cloudnetservice.driver.event.EventManagerregisterListener(@NonNull eu.cloudnetservice.driver.inject.InjectionLayer<?> layer, @NonNull Object listener) Registers all methods in the given listener class which are annotated withEventListenerand are taking only one argument with a subtype ofEvent.@NonNull eu.cloudnetservice.driver.event.EventManagerregisterListener(@NonNull Class<?> listenerClass) @NonNull eu.cloudnetservice.driver.event.EventManagerregisterListener(@NonNull Object listener) protected voidsafeRemove(@NonNull Predicate<eu.cloudnetservice.driver.event.RegisteredEventListener> predicate) Safely removes the all registered event listeners which are matching the given predicate.@NonNull eu.cloudnetservice.driver.event.EventManagerunregisterListener(Object @NonNull ... listeners) @NonNull eu.cloudnetservice.driver.event.EventManagerunregisterListeners(@NonNull ClassLoader classLoader) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface eu.cloudnetservice.driver.event.EventManager
callEvent, registerListeners
-
Field Details
-
bakeLock
-
listeners
-
-
Constructor Details
-
DefaultEventManager
public DefaultEventManager()
-
-
Method Details
-
unregisterListeners
@NonNull public @NonNull eu.cloudnetservice.driver.event.EventManager unregisterListeners(@NonNull @NonNull ClassLoader classLoader) - Specified by:
unregisterListenersin interfaceeu.cloudnetservice.driver.event.EventManager
-
unregisterListener
-
callEvent
-
registerListener
-
registerListener
-
registerListener
@NonNull protected @NonNull eu.cloudnetservice.driver.event.EventManager registerListener(@NonNull @NonNull eu.cloudnetservice.driver.inject.InjectionLayer<?> layer, @NonNull @NonNull Object listener) Registers all methods in the given listener class which are annotated withEventListenerand are taking only one argument with a subtype ofEvent.This method accepts public, protected, default (package) access, and private methods but will not include inherited methods at all.
All methods which are not annotated with
EventListener, are static and are not taking one or more arguments are silently ignored.- Parameters:
layer- the injection layer to use to get instances needed for event listeners.listener- the instance of the listener to register the methods in.- Returns:
- the same event manager as used to call the method, for chaining.
- Throws:
NullPointerException- if the given listener or injection layer is null.IllegalArgumentException- if an event listener target doesn't take an event as it's first argument.
-
safeRemove
protected void safeRemove(@NonNull @NonNull Predicate<eu.cloudnetservice.driver.event.RegisteredEventListener> predicate) Safely removes the all registered event listeners which are matching the given predicate.- Parameters:
predicate- the predicate all listeners to remove must match.- Throws:
NullPointerException- if the given predicate is null.
-