blob: 6d9522ba518b50cd96487e5882f1a516411f8b74 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package jrummikub.util;
import java.util.HashSet;
/** Simple parameterless event generator */
public class Event implements IEvent {
private HashSet<IListener> listeners = new HashSet<IListener>();
@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<IListener>(listeners)) {
listener.handle();
}
}
}
|