package org.limewire.listener; import org.limewire.listener.EventListenerList.EventListenerListContext; import org.limewire.logging.Log; /** * An implementation of an event multicaster. * This forwards all received events to all listeners. */ public class EventMulticasterImpl<E> implements EventMulticaster<E> { private final EventListenerList<E> listeners; public EventMulticasterImpl() { this.listeners = new EventListenerList<E>(); } public EventMulticasterImpl(Class loggerKey) { this.listeners = new EventListenerList<E>(loggerKey); } public EventMulticasterImpl(Log log) { this.listeners = new EventListenerList<E>(log); } public EventMulticasterImpl(EventListenerListContext context) { this.listeners = new EventListenerList<E>(context); } public EventListenerListContext getListenerContext() { return listeners.getContext(); } @Override public void handleEvent(E event) { broadcast(event); } @Override public void broadcast(E event) { listeners.broadcast(event); } @Override public void addListener(EventListener<E> eventListener) { listeners.addListener(eventListener); } @Override public boolean removeListener(EventListener<E> eventListener) { return listeners.removeListener(eventListener); } }