Package dev.comfast.experimental.events
Class EventsManager<T>
java.lang.Object
dev.comfast.experimental.events.EventsManager<T>
- Type Parameters:
T- Class which will be passed in every event.
Manager for events. Please use
EventsApi.get(String, Class) to create/get instances of this class.-
Method Summary
Modifier and TypeMethodDescriptionvoidaction(BeforeEvent<T> event, Runnable actionFunc) Embed action between events: "before", "after" and "failed".<R> Raction(BeforeEvent<T> event, Supplier<R> actionFunc) Embed action between events: "before", "after" and "failed".voidaddListener(String listenerKey, EventListener<T> listener) Add listener to this manager.voidnotifyAfter(AfterEvent<T> e) Notify all event listeners about failed event.voidnotifyBefore(BeforeEvent<T> e) Notify all event listeners about failed event.voidnotifyFailed(FailedEvent<T> e) Notify all event listeners about failed event.voidremoveListener(String name) Remove listener by its key
-
Method Details
-
addListener
Add listener to this manager.- Parameters:
listenerKey- Unique key to access / remove listenerlistener- Listener instance
-
removeListener
Remove listener by its key -
notifyBefore
Notify all event listeners about failed event.var beforeEvent = new BeforeEvent<>(null, "someAction"); manager.notifyBefore(beforeEvent); // do someAction() -
notifyAfter
Notify all event listeners about failed event.var beforeEvent = new BeforeEvent<>(null, "someAction"); manager.notifyBefore(beforeEvent); var someResult = someAction(); manager.notifyAfter(beforeEvent.passed(someResult)); -
notifyFailed
Notify all event listeners about failed event.var beforeEvent = new BeforeEvent<>(null, "someAction"); manager.notifyBefore(beforeEvent); try { something failed } catch(Exception e) { manager.notifyFailed(beforeEvent.failed(e)); throw e; } -
action
Embed action between events: "before", "after" and "failed".- See Also:
-
action
Embed action between events: "before", "after" and "failed".Capture action result to be available in AfterEvent
- Type Parameters:
R- type of action result- Parameters:
event- new instance of BeforeEvent. Created it just before action call.actionFunc- action to call- Returns:
- action result
-