m-chrzan.xyz
aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
diff options
context:
space:
mode:
authorMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 19:50:46 +0100
committerMagdalena Grodzińska <mag.grodzinska@gmail.com>2019-12-23 19:53:22 +0100
commit4c728b0ba906799afd30f0a337b540cf167a0cfd (patch)
treed9d453d9402a8af5de8ee76a0d5b7141952822ea /src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
parent9d24163dc71c345fb2197f91abb62478e1e9e3ee (diff)
Make timer inherit from module, move to modules package
Diffstat (limited to 'src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java')
-rw-r--r--src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
new file mode 100644
index 0000000..dd6a5f8
--- /dev/null
+++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Module.java
@@ -0,0 +1,31 @@
+package pl.edu.mimuw.cloudatlas.agent.modules;
+
+import pl.edu.mimuw.cloudatlas.agent.Executor;
+import pl.edu.mimuw.cloudatlas.agent.message.AgentMessage;
+
+/*
+ * A Module is a (potentially stateful) event handler.
+ */
+public abstract class Module {
+ private AgentMessage.AgentModule moduleType;
+ private Executor executor;
+
+ public Module(AgentMessage.AgentModule moduleType) {
+ this.moduleType = moduleType;
+ }
+
+ public abstract void handle(AgentMessage event) throws InterruptedException ;
+
+ public void setExecutor(Executor executor) {
+ this.executor = executor;
+ }
+
+ public void sendMessage(AgentMessage event) throws InterruptedException {
+ this.executor.passMessage(event);
+ }
+
+ @Override
+ public String toString() {
+ return moduleType.toString();
+ }
+}