Package io.microsphere.event
Class AbstractEventDispatcher
- java.lang.Object
-
- io.microsphere.event.AbstractEventDispatcher
-
- All Implemented Interfaces:
EventDispatcher,Listenable<EventListener<?>>
- Direct Known Subclasses:
DirectEventDispatcher,ParallelEventDispatcher
public abstract class AbstractEventDispatcher extends java.lang.Object implements EventDispatcher
The abstractEventDispatcherproviders the common implementation.- Since:
- 1.0.0
- See Also:
EventDispatcher,Listenable,ServiceLoader,EventListener,Event
-
-
Field Summary
-
Fields inherited from interface io.microsphere.event.EventDispatcher
DIRECT_EXECUTOR
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractEventDispatcher(java.util.concurrent.Executor executor)Constructor with an instance ofExecutor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddEventListener(EventListener<?> listener)Add aevent listenervoiddispatch(Event event)Dispatch a event to the registeredevent listenersprotected voiddoInListener(EventListener<?> listener, java.util.function.Consumer<java.util.Collection<EventListener>> consumer)java.util.List<EventListener<?>>getAllEventListeners()Get all registeredevent listenersjava.util.concurrent.ExecutorgetExecutor()TheExecutorto dispatch aeventprotected voidloadEventListenerInstances()Default, load the instances ofevent listenersbyServiceLoadervoidremoveEventListener(EventListener<?> listener)Remove aevent listenerprotected java.util.stream.Stream<EventListener>sortedListeners()protected java.util.stream.Stream<EventListener>sortedListeners(java.util.function.Predicate<? super java.util.Map.Entry<java.lang.Class<? extends Event>,java.util.List<EventListener>>> predicate)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.microsphere.event.Listenable
addEventListeners, addEventListeners, removeAllEventListeners, removeEventListeners
-
-
-
-
Method Detail
-
addEventListener
public void addEventListener(EventListener<?> listener) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
Description copied from interface:ListenableAdd aevent listener- Specified by:
addEventListenerin interfaceListenable<EventListener<?>>- Parameters:
listener- aevent listenerIf currentEventListeneris existed, returnfalse- Throws:
java.lang.NullPointerException- iflistenerargument isnulljava.lang.IllegalArgumentException- iflistenerargument is not concrete instance
-
removeEventListener
public void removeEventListener(EventListener<?> listener) throws java.lang.NullPointerException, java.lang.IllegalArgumentException
Description copied from interface:ListenableRemove aevent listener- Specified by:
removeEventListenerin interfaceListenable<EventListener<?>>- Parameters:
listener- aevent listener- Throws:
java.lang.NullPointerException- iflistenerargument isnulljava.lang.IllegalArgumentException
-
getAllEventListeners
public java.util.List<EventListener<?>> getAllEventListeners()
Description copied from interface:ListenableGet all registeredevent listeners- Specified by:
getAllEventListenersin interfaceListenable<EventListener<?>>- Returns:
- non-null read-only ordered
event listeners - See Also:
EventListener.getPriority()
-
sortedListeners
protected java.util.stream.Stream<EventListener> sortedListeners()
-
sortedListeners
protected java.util.stream.Stream<EventListener> sortedListeners(java.util.function.Predicate<? super java.util.Map.Entry<java.lang.Class<? extends Event>,java.util.List<EventListener>>> predicate)
-
dispatch
public void dispatch(Event event)
Description copied from interface:EventDispatcherDispatch a event to the registeredevent listeners- Specified by:
dispatchin interfaceEventDispatcher- Parameters:
event- aevent
-
getExecutor
public final java.util.concurrent.Executor getExecutor()
Description copied from interface:EventDispatcherTheExecutorto dispatch aevent- Specified by:
getExecutorin interfaceEventDispatcher- Returns:
- the non-null
Executor - See Also:
EventDispatcher.DIRECT_EXECUTOR
-
doInListener
protected void doInListener(EventListener<?> listener, java.util.function.Consumer<java.util.Collection<EventListener>> consumer)
-
loadEventListenerInstances
protected void loadEventListenerInstances()
Default, load the instances ofevent listenersbyServiceLoaderIt could be override by the sub-class
- See Also:
EventListener,ServiceLoader.load(Class)
-
-