public class LambdaManager
extends java.lang.Object
| Constructor and Description |
|---|
LambdaManager(java.util.function.Supplier<java.util.Map> mapSupplier,
java.util.function.Supplier<java.util.List<AHandler>> listSupplier,
IGenerator generator) |
| Modifier and Type | Method and Description |
|---|---|
static LambdaManager |
basic(IGenerator generator)
|
<T> T |
call(T event)
Call all handlers for the given event.
|
<T> T |
callParents(T event)
Call all handlers for the given event and all parent classes of the event (including interfaces).
|
void |
register(java.lang.Class<?> owner)
Register all static event handlers in the given class.
|
void |
register(java.lang.Class<?> event,
java.lang.Class<?> owner)
Register all static event handlers for the given event in the given class.
|
void |
register(java.lang.Class<?> event,
java.lang.Object owner)
Register all non-static event handlers for the given event in the given object's class.
|
void |
register(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Deprecated.
|
void |
register(java.util.function.Consumer<?> consumer,
int priority,
java.lang.Class<?>... events)
Deprecated.
|
void |
register(java.lang.Object owner)
Register all non-static event handlers in the given object's class.
|
void |
register(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Deprecated.
|
void |
register(java.lang.Runnable runnable,
int priority,
java.lang.Class<?>... events)
Deprecated.
|
void |
registerConsumer(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Register a
Consumer as an event handler for the given events. |
void |
registerConsumer(java.util.function.Consumer<?> consumer,
int priority,
java.lang.Class<?>... events)
Register a
Consumer as an event handler for the given events with the given priority. |
void |
registerRunnable(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Register a
Runnable as an event handler for the given events. |
void |
registerRunnable(java.lang.Runnable runnable,
int priority,
java.lang.Class<?>... events)
Register a
Runnable as an event handler for the given events with the given priority. |
void |
registerSuper(java.lang.Class<?> event,
java.lang.Object owner)
Register all non-static event handlers for the given event in the given object's class and all its super classes.
|
void |
registerSuper(java.lang.Object owner)
Register all non-static event handlers for the given object's class and all its super classes.
|
LambdaManager |
setAlwaysCallParents(boolean alwaysCallParents)
Always call all event handlers for parent classes of the event (including interfaces).
|
LambdaManager |
setEventFilter(IEventFilter eventFilter)
Set the event filter which is used to validate registered and called events.
|
LambdaManager |
setExceptionHandler(IExceptionHandler exceptionHandler)
Set the
IExceptionHandler which is used to handle thrown exceptions in event handlers. |
LambdaManager |
setRegisterSuperHandler(boolean registerSuperHandler)
Register all event handlers from super classes.
|
static LambdaManager |
threadSafe(IGenerator generator)
|
java.lang.String |
toString()
Generate a debug output of all registered events and handlers.
|
void |
unregister(java.lang.Class<?> owner)
Unregister all static event handlers from the given class.
|
void |
unregister(java.lang.Class<?> event,
java.lang.Class<?> owner)
Unregister all static event handlers for the given event from the given class.
|
void |
unregister(java.lang.Class<?> event,
java.lang.Object owner)
Unregister all non-static event handlers for the given event from the given object's class.
|
void |
unregister(java.util.function.Consumer<?> consumer)
Deprecated.
|
void |
unregister(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Deprecated.
|
void |
unregister(java.lang.Object owner)
Unregister all non-static event handlers from the given object's class.
|
void |
unregister(java.lang.Runnable runnable)
Deprecated.
|
void |
unregister(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Deprecated.
|
void |
unregisterAll(java.lang.Class<?> event)
Unregister all handlers for the given event.
|
void |
unregisterAll(java.lang.Class<?> event,
java.util.function.BiPredicate<java.lang.Class<?>,java.util.Optional<java.lang.Object>> filter)
Unregister all handlers for the given event which match the given filter.
|
void |
unregisterAll(java.lang.Class<?> event,
java.util.function.Predicate<java.lang.Class<?>> filter)
Unregister all handlers for the given event which match the given filter.
|
void |
unregisterAll(java.lang.Class<?> event,
java.util.function.Predicate<java.lang.Class<?>> filter,
boolean staticHandlers)
Unregister all handlers for the given event which match the given filter.
|
void |
unregisterConsumer(java.util.function.Consumer<?> consumer)
Unregister a
Consumer from all events. |
void |
unregisterConsumer(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Unregister a
Consumer from the given events. |
void |
unregisterRunnable(java.lang.Runnable runnable)
Unregister a
Runnable from all events. |
void |
unregisterRunnable(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Unregister a
Runnable from the given events. |
public LambdaManager(java.util.function.Supplier<java.util.Map> mapSupplier,
java.util.function.Supplier<java.util.List<AHandler>> listSupplier,
IGenerator generator)
mapSupplier - The supplier for the maps used to store the event to handler mappingslistSupplier - The supplier for the list used to store the handlers for an eventgenerator - The IGenerator implementation which should be usedpublic static LambdaManager basic(IGenerator generator)
LambdaManager instance using a HashMap and ArrayList.generator - The IGenerator implementation which should be usedLambdaManager instancepublic static LambdaManager threadSafe(IGenerator generator)
LambdaManager instance using a ConcurrentHashMap and CopyOnWriteArrayList.generator - The IGenerator implementation which should be usedLambdaManager instancepublic LambdaManager setEventFilter(@Nullable IEventFilter eventFilter)
eventFilter - The Consumer which should be used to filter eventsLambdaManager instancepublic LambdaManager setExceptionHandler(IExceptionHandler exceptionHandler)
IExceptionHandler which is used to handle thrown exceptions in event handlers.exceptionHandler - The IExceptionHandler which should be used to handle exceptionsLambdaManager instancepublic LambdaManager setRegisterSuperHandler(boolean registerSuperHandler)
registerSuperHandler - If super classes should be scanned for event handlersLambdaManager instancepublic LambdaManager setAlwaysCallParents(boolean alwaysCallParents)
call(Object) to callParents(Object).alwaysCallParents - If all event handlers for parent classes should be calledLambdaManager instance@Nonnull public <T> T call(T event)
T - The event typeevent - The event instance@Nonnull public <T> T callParents(T event)
RuntimeException -> Exception -> Throwable -> Serializable -> ObjectT - The event typeevent - The event instancepublic void register(java.lang.Class<?> owner)
owner - The class which should be scannedpublic void register(@Nullable
java.lang.Class<?> event,
java.lang.Class<?> owner)
event - The event classowner - The class which should be scannedpublic void register(java.lang.Object owner)
owner - The object which should be scannedpublic void register(@Nullable
java.lang.Class<?> event,
java.lang.Object owner)
event - The event classowner - The object which should be scannedpublic void registerSuper(java.lang.Object owner)
owner - The object which should be scannedpublic void registerSuper(@Nullable
java.lang.Class<?> event,
java.lang.Object owner)
event - The event classowner - The object which should be scannedpublic void registerRunnable(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Runnable as an event handler for the given events.runnable - The Runnable which should be registeredevents - The events for which the Runnable should be registeredpublic void registerRunnable(java.lang.Runnable runnable,
int priority,
java.lang.Class<?>... events)
Runnable as an event handler for the given events with the given priority.runnable - The Runnable which should be registeredpriority - The priority of the Runnableevents - The events for which the Runnable should be registeredpublic void registerConsumer(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Consumer as an event handler for the given events.Consumer will be called with the event instance as parameter.
When using wrong type args this will result in a ClassCastException.consumer - The Consumer which should be registeredevents - The events for which the Consumer should be registeredpublic void registerConsumer(java.util.function.Consumer<?> consumer,
int priority,
java.lang.Class<?>... events)
Consumer as an event handler for the given events with the given priority.Consumer will be called with the event instance as parameter.
When using wrong type args this will result in a ClassCastException.consumer - The Consumer which should be registeredpriority - The priority of the Consumerevents - The events for which the Consumer should be registered@Deprecated
public void register(java.lang.Runnable runnable,
java.lang.Class<?>... events)
registerRunnable(Runnable, Class[]) instead@Deprecated
public void register(java.lang.Runnable runnable,
int priority,
java.lang.Class<?>... events)
registerRunnable(Runnable, int, Class[]) instead@Deprecated
public void register(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
registerConsumer(Consumer, Class[]) instead@Deprecated
public void register(java.util.function.Consumer<?> consumer,
int priority,
java.lang.Class<?>... events)
registerConsumer(Consumer, int, Class[]) insteadpublic void unregister(java.lang.Class<?> owner)
owner - The class from which the static event handlers should be unregisteredpublic void unregister(java.lang.Class<?> event,
java.lang.Class<?> owner)
event - The event classowner - The class from which the static event handlers should be unregisteredpublic void unregister(java.lang.Object owner)
owner - The object from which the non-static event handlers should be unregisteredpublic void unregister(java.lang.Class<?> event,
java.lang.Object owner)
event - The event classowner - The object from which the non-static event handlers should be unregisteredpublic void unregisterRunnable(java.lang.Runnable runnable)
Runnable from all events.runnable - The Runnable to unregisterpublic void unregisterRunnable(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Runnable from the given events.runnable - The Runnable to unregisterevents - The events from which the Runnable should be unregisteredpublic void unregisterConsumer(java.util.function.Consumer<?> consumer)
Consumer from all events.consumer - The Consumer to unregisterpublic void unregisterConsumer(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Consumer from the given events.consumer - The Consumer to unregisterevents - The events from which the Consumer should be unregistered@Deprecated public void unregister(java.lang.Runnable runnable)
unregisterRunnable(Runnable) instead@Deprecated
public void unregister(java.lang.Runnable runnable,
java.lang.Class<?>... events)
unregisterRunnable(Runnable, Class[]) instead@Deprecated public void unregister(java.util.function.Consumer<?> consumer)
unregisterConsumer(Consumer) instead@Deprecated
public void unregister(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
unregisterConsumer(Consumer, Class[]) insteadpublic void unregisterAll(java.lang.Class<?> event)
event - The event classpublic void unregisterAll(java.lang.Class<?> event,
java.util.function.Predicate<java.lang.Class<?>> filter)
event - The event classfilter - The filter which should be used to filter the handlerspublic void unregisterAll(java.lang.Class<?> event,
java.util.function.Predicate<java.lang.Class<?>> filter,
boolean staticHandlers)
event - The event classfilter - The filter which should be used to filter the handlersstaticHandlers - If static handlers should be unregisteredpublic void unregisterAll(java.lang.Class<?> event,
java.util.function.BiPredicate<java.lang.Class<?>,java.util.Optional<java.lang.Object>> filter)
event - The event classfilter - The filter which should be used to filter the handlerspublic java.lang.String toString()
toString in class java.lang.Object