45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package pm.event;
|
|
|
|
import pm.Event;
|
|
import pm.event.task.Continuous;
|
|
import pm.value.Action;
|
|
|
|
public abstract class EventHandler extends EventListener {
|
|
protected static EventSpreader eventSpreader;
|
|
|
|
public static void initialise(EventSpreader eventSpreader) {
|
|
EventHandler.eventSpreader = eventSpreader;
|
|
}
|
|
|
|
protected void initialise() {
|
|
eventSpreader.add(this);
|
|
}
|
|
|
|
public void event(Event event) {
|
|
System.out.println(event);
|
|
if (event instanceof Feedback) {
|
|
feedback((Feedback) event);
|
|
} else if (event instanceof Task) {
|
|
task((Task) event);
|
|
}
|
|
}
|
|
|
|
protected void feedback(Feedback feedback) {}
|
|
|
|
protected void task(Task task) {
|
|
Action action = task.getAction();
|
|
if (task instanceof Continuous) {
|
|
Continuous continuous = (Continuous) task;
|
|
do {
|
|
action(action);
|
|
continuous.nextIteration();
|
|
sleep(continuous.getSleep());
|
|
} while (run && !continuous.getStop());
|
|
continuous.reset();
|
|
} else {
|
|
action(action);
|
|
}
|
|
}
|
|
|
|
protected void action(Action action) {}
|
|
} |