void |
handleEvent(Event event)
Rozsyła otrzymany komunikat do wszystkich obserwatorów, delegując
obsługę zdarzenia do metody signalEvent(net.ranides.assira.events.Event)
EventRouterDispatcher
public EventRouterDispatcher()
addEventListener
public <T extends Event> void addEventListener(Class<T> event,
EventListener<? super T> listener)
- Description copied from interface:
EventRouter
- Rejestruje obserwatora, który otrzyma wszystkie zdarzenia o podanym typie.
- Specified by:
addEventListener in interface EventRouter
removeEventListener
public <T extends Event> void removeEventListener(Class<T> event,
EventListener<? super T> listener)
- Description copied from interface:
EventRouter
- Usuwa obserwatora, którego wcześniej zarejestrowano dla zdarzeń o
podanym typie. Jeśli zajestrowano go również dla zdarzeń o innych typach
- zostają one nadal. Jeśli zarejestrowano go wielokrotnie - musi zostać
usunięty również wielokrotnie.
- Specified by:
removeEventListener in interface EventRouter
removeAllEventListeners
public void removeAllEventListeners()
- Description copied from interface:
EventRouter
- Usuwa wszystkie zarejestrowane obserwatory.
- Specified by:
removeAllEventListeners in interface EventRouter
getEventListeners
public Collection<EventBinding<?>> getEventListeners()
- Specified by:
getEventListeners in interface EventRouter
signalEvent
public boolean signalEvent(Event event)
- Sygnalizuje podane zdarzenie rozsyłając komunikat do wszystkich obserwatorów.
Jeśli rozesłanie komunikatu nie jest możliwe, zwraca
false.
Metoda czeka na obsłużenie komunikatu przez wszystkich zarejestrowanych obserwatorów.
Obsługa komunikatu jest uruchamiana natychmiastowo, w bieżącym wątku
(t.j. w tym samym, który zasygnalizował zdarzenie).
Interesującym przypadkiem jest przekazanie Dispatcher'owi obserwatora,
który jest EventRouterThread'em. Taki obserwator w bieżącym wątku
obsłuży zdarzenie w swoim imieniu, ale ta obsługa, to nic więcej, niż zapis do
wewnętrznej kolejki. Dokładniej, zgodnie z dokumentacją:
- Specified by:
signalEvent in interface EventRouter
- Parameters:
event -
- Returns:
- true - jeśli zdarzenie może być przekazane odbiorcom.
handleEvent
public void handleEvent(Event event)
- Rozsyła otrzymany komunikat do wszystkich obserwatorów, delegując
obsługę zdarzenia do metody
signalEvent(net.ranides.assira.events.Event)
- Specified by:
handleEvent in interface EventListener<Event>
- Parameters:
event -
dispose
public void dispose()
- Description copied from interface:
EventRouter
- Kończy działanie routera i zwalnia wszystkie zasoby.
- Specified by:
dispose in interface EventRouter
Copyright © 2013. All Rights Reserved.
|