-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEventListener.java
More file actions
35 lines (28 loc) · 934 Bytes
/
EventListener.java
File metadata and controls
35 lines (28 loc) · 934 Bytes
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
33
34
35
public class EventListener extends Thread {
private String messageToListenFor;
private String messageToReplyWith;
private Tracker eventTracker;
public EventListener(String message, String reply) {
this(message, reply, EventTracker.getInstance());
}
public EventListener(String message, String reply, Tracker tracker) {
this.messageToListenFor = message;
this.messageToReplyWith = reply;
this.eventTracker = tracker;
}
public void run() {
while (!readyToQuit())
if (shouldReply())
reply();
}
public boolean readyToQuit() {
return eventTracker.has("quit");
}
public boolean shouldReply() {
return eventTracker.has(messageToListenFor);
}
public void reply() {
EventHandler e = () -> System.out.println(messageToReplyWith);
eventTracker.handle(messageToListenFor, e);
}
}