forked from Qortal/qortal
catbref
4 years ago
3 changed files with 44 additions and 0 deletions
@ -0,0 +1,5 @@ |
|||||||
|
package org.qortal.event; |
||||||
|
|
||||||
|
public interface Event { |
||||||
|
|
||||||
|
} |
@ -0,0 +1,33 @@ |
|||||||
|
package org.qortal.event; |
||||||
|
|
||||||
|
import java.util.ArrayList; |
||||||
|
import java.util.List; |
||||||
|
|
||||||
|
public enum EventBus { |
||||||
|
INSTANCE; |
||||||
|
|
||||||
|
private static final List<Listener> LISTENERS = new ArrayList<>(); |
||||||
|
|
||||||
|
public void addListener(Listener newListener) { |
||||||
|
synchronized (LISTENERS) { |
||||||
|
LISTENERS.add(newListener); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void removeListener(Listener listener) { |
||||||
|
synchronized (LISTENERS) { |
||||||
|
LISTENERS.remove(listener); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
public void notify(Event event) { |
||||||
|
List<Listener> clonedListeners; |
||||||
|
|
||||||
|
synchronized (LISTENERS) { |
||||||
|
clonedListeners = new ArrayList<>(LISTENERS); |
||||||
|
} |
||||||
|
|
||||||
|
for (Listener listener : clonedListeners) |
||||||
|
listener.listen(event); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue