package jrummikub.util; import java.util.HashSet; /** Simple parameterless event generator */ public class Event implements IEvent { private HashSet listeners = new HashSet(); @Override public Connection add(final IListener listener) { listeners.add(listener); return new Connection() { @Override public void remove() { Event.this.remove(listener); } }; } @Override public void remove(IListener listener) { listeners.remove(listener); } /** Generate a single event */ public void emit() { for (IListener listener : new HashSet(listeners)) { listener.handle(); } } }