Nu wordt de methode dynamisch geladen via de enum met een beetje reflectie. Als de methode niet bestaat, worden exceptions gegooid.
This commit is contained in:
@@ -1,5 +1,18 @@
|
|||||||
package pm.action;
|
package pm.action;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
public enum Action {
|
public enum Action {
|
||||||
START
|
START ("start"),
|
||||||
|
TEST ("test");
|
||||||
|
|
||||||
|
protected String action;
|
||||||
|
|
||||||
|
Action(String action) {
|
||||||
|
this.action = action;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Method getMethod(Object object) throws Exception {
|
||||||
|
return object.getClass().getMethod(action);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,23 @@
|
|||||||
package pm.applicatie.voorbeeld;
|
package pm.applicatie.voorbeeld;
|
||||||
|
|
||||||
|
import pm.action.Action;
|
||||||
import pm.application.Application;
|
import pm.application.Application;
|
||||||
|
|
||||||
public class Voorbeeld extends Application {
|
public class Voorbeeld extends Application {
|
||||||
protected void start() {
|
public Voorbeeld() {
|
||||||
|
try {
|
||||||
|
invoke(Action.TEST);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void start() {
|
||||||
System.out.println("jeheee!");
|
System.out.println("jeheee!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void test() {
|
||||||
|
System.out.println("neheee!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ package pm.application;
|
|||||||
import pm.action.Action;
|
import pm.action.Action;
|
||||||
|
|
||||||
public abstract class Application {
|
public abstract class Application {
|
||||||
public void invoke(Action action) {
|
public void invoke(Action action) throws Exception {
|
||||||
switch (action) {
|
try {
|
||||||
case START:
|
action.getMethod(this).invoke(this);
|
||||||
start();
|
} catch (Exception e) {
|
||||||
break;
|
throw new Exception("Failed to invoke action");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package pm.device;
|
package pm.device;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
|
|
||||||
import pm.event.Event;
|
import pm.event.Event;
|
||||||
|
|||||||
Reference in New Issue
Block a user