From 83cbde6ec376bf6936029e91ac2f1b0b8704543c Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Wed, 2 Feb 2011 20:29:41 +0000 Subject: [PATCH] Begin gemaakt met devices die events kunnen sturen naar applications via main opdat actions worden uitgevoerd. --- java/src/pm/Main.java | 30 +++++++++++++++---- java/src/pm/action/Action.java | 5 ++++ .../pm/applicatie/voorbeeld/Voorbeeld.java | 9 ++++++ java/src/pm/application/Application.java | 15 ++++++++++ java/src/pm/device/Device.java | 27 +++++------------ java/src/pm/device/Features.java | 11 ------- java/src/pm/device/example/Example.java | 18 +++++++++++ .../device/exampledevice/ExampleDevice.java | 22 -------------- java/src/pm/device/feature/Feature.java | 5 ---- java/src/pm/device/feature/Restart.java | 8 ----- java/src/pm/event/Event.java | 13 +++----- 11 files changed, 82 insertions(+), 81 deletions(-) create mode 100644 java/src/pm/action/Action.java create mode 100644 java/src/pm/applicatie/voorbeeld/Voorbeeld.java create mode 100644 java/src/pm/application/Application.java delete mode 100644 java/src/pm/device/Features.java create mode 100644 java/src/pm/device/example/Example.java delete mode 100644 java/src/pm/device/exampledevice/ExampleDevice.java delete mode 100644 java/src/pm/device/feature/Feature.java delete mode 100644 java/src/pm/device/feature/Restart.java diff --git a/java/src/pm/Main.java b/java/src/pm/Main.java index d4da883..91e8a46 100644 --- a/java/src/pm/Main.java +++ b/java/src/pm/Main.java @@ -1,27 +1,45 @@ package pm; import java.util.ArrayList; +import java.util.Queue; +import java.util.concurrent.ConcurrentLinkedQueue; +import pm.applicatie.voorbeeld.Voorbeeld; +import pm.application.Application; import pm.device.Device; -import pm.device.Features; -import pm.device.exampledevice.ExampleDevice; +import pm.device.example.Example; +import pm.event.Event; public class Main { + ArrayList applicationList; ArrayList deviceList; + Queue eventQueue; public Main() { + applicationList = new ArrayList(); deviceList = new ArrayList(); + eventQueue = new ConcurrentLinkedQueue(); + } + + public void addApplication(Application application) { + applicationList.add(application); + } + + public boolean removeApplication(Application application) { + return applicationList.remove(application); } public void addDevice(Device device) { deviceList.add(device); - if (device.hasFeature(Features.RESTART)) { - device.start(); - } + } + + public boolean removeDevie(Device device) { + return deviceList.remove(device); } public void start() { - addDevice(new ExampleDevice()); + addDevice(new Example(eventQueue)); + addApplication(new Voorbeeld()); } public static void main(String[] args) { diff --git a/java/src/pm/action/Action.java b/java/src/pm/action/Action.java new file mode 100644 index 0000000..a4abf8f --- /dev/null +++ b/java/src/pm/action/Action.java @@ -0,0 +1,5 @@ +package pm.action; + +public enum Action { + START +} diff --git a/java/src/pm/applicatie/voorbeeld/Voorbeeld.java b/java/src/pm/applicatie/voorbeeld/Voorbeeld.java new file mode 100644 index 0000000..ac60819 --- /dev/null +++ b/java/src/pm/applicatie/voorbeeld/Voorbeeld.java @@ -0,0 +1,9 @@ +package pm.applicatie.voorbeeld; + +import pm.application.Application; + +public class Voorbeeld extends Application { + protected void start() { + System.out.println("jeheee!"); + } +} diff --git a/java/src/pm/application/Application.java b/java/src/pm/application/Application.java new file mode 100644 index 0000000..6c11eac --- /dev/null +++ b/java/src/pm/application/Application.java @@ -0,0 +1,15 @@ +package pm.application; + +import pm.action.Action; + +public abstract class Application { + public void invoke(Action action) { + switch (action) { + case START: + start(); + break; + } + } + + protected abstract void start(); +} diff --git a/java/src/pm/device/Device.java b/java/src/pm/device/Device.java index e91e1a2..0bf3ca6 100644 --- a/java/src/pm/device/Device.java +++ b/java/src/pm/device/Device.java @@ -1,31 +1,18 @@ package pm.device; import java.util.ArrayList; +import java.util.Queue; -import pm.device.feature.Feature; +import pm.event.Event; public abstract class Device { - protected ArrayList featureList; + protected Queue eventQueue; - protected Device() { - featureList = new ArrayList(); + protected Device(Queue eventQueue) { + this.eventQueue = eventQueue; + initialise(); } - public void addFeature(Feature feature) { - if (!hasFeature(feature)) { - if (this instanceof feature.getClass()) { - - } - featureList.add(feature); - } - } - - public void removeFeature(Feature feature) { - featureList.remove(feature); - } - - public boolean hasFeature(Feature feature) { - return featureList.contains(feature); - } + public void initialise() {} } diff --git a/java/src/pm/device/Features.java b/java/src/pm/device/Features.java deleted file mode 100644 index 371b14c..0000000 --- a/java/src/pm/device/Features.java +++ /dev/null @@ -1,11 +0,0 @@ -package pm.device; - -import pm.device.feature.Feature; -import pm.device.feature.Restart; - -public enum Features { - Restart ((Class)Restart.class); - - Features(Class feature) { - } -} diff --git a/java/src/pm/device/example/Example.java b/java/src/pm/device/example/Example.java new file mode 100644 index 0000000..00574d6 --- /dev/null +++ b/java/src/pm/device/example/Example.java @@ -0,0 +1,18 @@ +package pm.device.example; + +import java.util.Queue; + +import pm.action.Action; +import pm.device.Device; +import pm.event.Event; + +public class Example extends Device { + public Example(Queue eventQueue) { + super(eventQueue); + } + + public void initialise() { + Event event = new Event(Action.START); + eventQueue.add(event); + } +} diff --git a/java/src/pm/device/exampledevice/ExampleDevice.java b/java/src/pm/device/exampledevice/ExampleDevice.java deleted file mode 100644 index 5dcdd94..0000000 --- a/java/src/pm/device/exampledevice/ExampleDevice.java +++ /dev/null @@ -1,22 +0,0 @@ -package pm.device.exampledevice; - -import pm.device.Device; -import pm.device.Features; - -public class ExampleDevice extends Device { - public ExampleDevice() { - addFeature(Features.Restart); - } - - public void start() { - - } - - public void stop() { - - } - - public void restart() { - - } -} diff --git a/java/src/pm/device/feature/Feature.java b/java/src/pm/device/feature/Feature.java deleted file mode 100644 index bb5d699..0000000 --- a/java/src/pm/device/feature/Feature.java +++ /dev/null @@ -1,5 +0,0 @@ -package pm.device.feature; - -public interface Feature { - public void apply(); -} diff --git a/java/src/pm/device/feature/Restart.java b/java/src/pm/device/feature/Restart.java deleted file mode 100644 index c4aa17b..0000000 --- a/java/src/pm/device/feature/Restart.java +++ /dev/null @@ -1,8 +0,0 @@ -package pm.device.feature; - -public interface Restart extends Feature { - public static final String feature = "RESTART"; - - public void stop(); - public void restart(); -} \ No newline at end of file diff --git a/java/src/pm/event/Event.java b/java/src/pm/event/Event.java index d2c1776..d153005 100644 --- a/java/src/pm/event/Event.java +++ b/java/src/pm/event/Event.java @@ -1,16 +1,11 @@ package pm.event; -import pm.device.feature.Feature; +import pm.action.Action; public class Event { - public Feature feature; + protected Action action; - public Event(Feature feature) { - this.feature = feature; + public Event(Action action) { + this.action = action; } - - public void Apply() { - feature.apply(); - } - }