Skip to content

Commit 91d76b0

Browse files
committed
feat: added basic event code
1 parent 4b4b03c commit 91d76b0

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.codejive.context.events;
2+
3+
public interface Event {
4+
EventTarget target();
5+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.codejive.context.events;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
public class EventEmitter<T extends Event> {
7+
private final List<EventListener<T>> listeners = new ArrayList<>();
8+
9+
public void addListener(EventListener<T> listener) {
10+
listeners.add(listener);
11+
}
12+
13+
public void removeListener(EventListener<T> listener) {
14+
listeners.remove(listener);
15+
}
16+
17+
public void dispatch(T event) {
18+
for (EventListener<T> listener : listeners) {
19+
listener.handleEvent(event);
20+
}
21+
}
22+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package org.codejive.context.events;
2+
3+
public interface EventListener<T extends Event> {
4+
void handleEvent(T event);
5+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.codejive.context.events;
2+
3+
public interface EventTarget {}

0 commit comments

Comments
 (0)