package jrummikub.util; import java.util.HashSet; /** * Simple single parameter event generator * * @param * type of the first event parameter * @param * type of the second event parameter * @param * type of third event parameter */ public class Event3 implements IEvent3 { private HashSet> listeners = new HashSet>(); @Override public Connection add(final IListener3 listener) { listeners.add(listener); return new Connection() { @Override public void remove() { Event3.this.remove(listener); } }; } @Override public void remove(IListener3 listener) { listeners.remove(listener); } /** * Generate a single event * * @param value1 * the first event parameter * @param value2 * the second event parameter * @param value3 * the third event parameter */ public void emit(T1 value1, T2 value2, T3 value3) { for (IListener3 listener : new HashSet>(listeners)) { listener.handle(value1, value2, value3); } } }