public class LambdaManager
extends java.lang.Object
| Constructor and Description |
|---|
LambdaManager(java.util.Map<java.lang.Class<?>,java.util.List<AHandler>> handlers,
java.util.function.Supplier<java.util.List<AHandler>> listSupplier,
IGenerator generator) |
| Modifier and Type | Method and Description |
|---|---|
static LambdaManager |
basic(IGenerator generator)
Create a new
LambdaManager instance using HashMap and ArrayListThis implementation is not thread safe |
<T> T |
call(T event)
Call all handlers for the given event
|
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 class
|
void |
register(java.util.function.Consumer<?> consumer,
java.lang.Class<?>... events)
Register a
Consumer as an event handler for the given events |
void |
register(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 |
register(java.lang.Object owner)
Register all non-static event handlers in the given object class
|
void |
register(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Register a
Runnable as an event handler for the given events |
void |
register(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 |
setExceptionHandler(ExceptionHandler exceptionHandler) |
static LambdaManager |
threadSafe(IGenerator generator)
Create a new
LambdaManager instance using ConcurrentHashMap and CopyOnWriteArrayListThis implementation is thread safe but has a performance impact |
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 class
|
void |
unregister(java.util.function.Consumer consumer)
Unregister a
Consumer from all events |
void |
unregister(java.util.function.Consumer consumer,
java.lang.Class<?>... events)
Unregister a
Consumer from the given events |
void |
unregister(java.lang.Object owner)
Unregister all non-static event handlers from the given object class
|
void |
unregister(java.lang.Runnable runnable)
Unregister a
Runnable from all events |
void |
unregister(java.lang.Runnable runnable,
java.lang.Class<?>... events)
Unregister a
Runnable from the given events |
public LambdaManager(@Nonnull
java.util.Map<java.lang.Class<?>,java.util.List<AHandler>> handlers,
@Nonnull
java.util.function.Supplier<java.util.List<AHandler>> listSupplier,
@Nonnull
IGenerator generator)
handlers - The map which should be used to store the event to handler mappingslistSupplier - The supplier for the list which should be used to store the handlers for an eventgenerator - The IGenerator implementation which should be usedpublic static LambdaManager basic(@Nonnull IGenerator generator)
LambdaManager instance using HashMap and ArrayListgenerator - The IGenerator implementation which should be usedLambdaManager instancepublic static LambdaManager threadSafe(@Nonnull IGenerator generator)
LambdaManager instance using ConcurrentHashMap and CopyOnWriteArrayListgenerator - The IGenerator implementation which should be usedLambdaManager instancepublic void setExceptionHandler(@Nonnull
ExceptionHandler exceptionHandler)
exceptionHandler - The ExceptionHandler which should be used to handle exceptions@Nonnull
public <T> T call(@Nonnull
T event)
T - The event typeevent - The event instancepublic void register(@Nonnull
java.lang.Class<?> owner)
owner - The class which should be scanned for event handlerspublic void register(@Nullable
java.lang.Class<?> event,
@Nonnull
java.lang.Class<?> owner)
event - The event classowner - The class which should be scanned for event handlerspublic void register(@Nonnull
java.lang.Object owner)
owner - The object which should be scanned for event handlerspublic void register(@Nullable
java.lang.Class<?> event,
@Nonnull
java.lang.Object owner)
event - The event classowner - The object which should be scanned for event handlerspublic void register(@Nonnull
java.lang.Runnable runnable,
@Nonnull
java.lang.Class<?>... events)
Runnable as an event handler for the given eventsrunnable - The Runnable which should be registeredevents - The events for which the Runnable should be registeredpublic void register(@Nonnull
java.lang.Runnable runnable,
int priority,
@Nonnull
java.lang.Class<?>... events)
Runnable as an event handler for the given events with the given priorityrunnable - The Runnable which should be registeredpriority - The priority of the Runnableevents - The events for which the Runnable should be registeredpublic void register(@Nonnull
java.util.function.Consumer<?> consumer,
@Nonnull
java.lang.Class<?>... events)
Consumer as an event handler for the given eventsconsumer - The Consumer which should be registeredevents - The events for which the Consumer should be registeredpublic void register(@Nonnull
java.util.function.Consumer consumer,
int priority,
@Nonnull
java.lang.Class<?>... events)
Consumer as an event handler for the given events with the given priorityconsumer - The Consumer which should be registeredpriority - The priority of the Consumerevents - The events for which the Consumer should be registeredpublic void unregister(@Nonnull
java.lang.Class<?> owner)
owner - The class from which the static event handlers should be unregisteredpublic void unregister(@Nullable
java.lang.Class<?> event,
@Nonnull
java.lang.Class<?> owner)
event - The event classowner - The class from which the static event handlers should be unregisteredpublic void unregister(@Nonnull
java.lang.Object owner)
owner - The object from which the non-static event handlers should be unregisteredpublic void unregister(@Nullable
java.lang.Class<?> event,
@Nonnull
java.lang.Object owner)
event - The event classowner - The object from which the non-static event handlers should be unregisteredpublic void unregister(@Nonnull
java.lang.Runnable runnable)
Runnable from all eventsrunnable - The Runnable to unregisterpublic void unregister(@Nonnull
java.lang.Runnable runnable,
@Nonnull
java.lang.Class<?>... events)
Runnable from the given eventsrunnable - The Runnable to unregisterevents - The events from which the Runnable should be unregisteredpublic void unregister(@Nonnull
java.util.function.Consumer consumer)
Consumer from all eventsconsumer - The Consumer to unregisterpublic void unregister(@Nonnull
java.util.function.Consumer consumer,
@Nonnull
java.lang.Class<?>... events)
Consumer from the given eventsconsumer - The Consumer to unregisterevents - The events from which the Consumer should be unregistered