package jrummikub.util; import java.util.HashSet; /** * Simple single parameter event generator * * @param * type of the event parameter */ public class Event1 implements IEvent1 { private HashSet> listeners = new HashSet>(); @Override public Connection add(final IListener1 listener) { listeners.add(listener); return new Connection() { @Override public void remove() { Event1.this.remove(listener); } }; } @Override public void remove(IListener1 listener) { listeners.remove(listener); } /** * Generate a single event * * @param value * the event parameter */ public void emit(T value) { for (IListener1 listener : new HashSet>(listeners)) { listener.handle(value); } } }