package org.infinispan.notifications; import java.util.Set; /** * Interface that denotes that the implementation can have listeners attached to it. * * @author Manik Surtani * @since 4.0 */ public interface Listenable { /** * Adds a listener to the component. Typically, listeners would need to be annotated with {@link Listener} and * further to that, contain methods annotated appropriately, otherwise the listener will not be registered. * <p/> * See the {@link Listener} annotation for more information. * <p/> * * @param listener must not be null. */ void addListener(Object listener); /** * Removes a listener from the component. * * @param listener listener to remove. Must not be null. */ void removeListener(Object listener); /** * @return a set of all listeners registered on this component. */ Set<Object> getListeners(); }