From 843c3511b6abbe91779d01c7c04b842ee29c8f2c Mon Sep 17 00:00:00 2001 From: Nelson Tavares de Sousa <ntd@informatik.uni-kiel.de> Date: Fri, 6 Feb 2015 12:16:52 +0100 Subject: [PATCH] instead of passing a instance -> pass a StageExceptionHandler Class (type check possible) --- src/main/java/teetime/framework/Analysis.java | 12 ++++++------ .../java/teetime/framework/ExceptionHandling.java | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 84a8d6f4..22d83a56 100644 --- a/src/main/java/teetime/framework/Analysis.java +++ b/src/main/java/teetime/framework/Analysis.java @@ -28,7 +28,7 @@ public class Analysis implements UncaughtExceptionHandler { private final AnalysisConfiguration configuration; - private final StageExceptionHandler listener; + private final Class<? extends teetime.framework.exceptionHandling.StageExceptionHandler> listener; private boolean executionInterrupted = false; @@ -47,11 +47,11 @@ public class Analysis implements UncaughtExceptionHandler { * to be used for the analysis */ public Analysis(final AnalysisConfiguration configuration) { - this(configuration, false, new IgnoringStageListener()); + this(configuration, false, IgnoringStageListener.class); } public Analysis(final AnalysisConfiguration configuration, final boolean validationEnabled) { - this(configuration, validationEnabled, new IgnoringStageListener()); + this(configuration, validationEnabled, IgnoringStageListener.class); } /** @@ -62,11 +62,11 @@ public class Analysis implements UncaughtExceptionHandler { * @param listener * specific listener for the exception handling */ - public Analysis(final AnalysisConfiguration configuration, final StageExceptionHandler listener) { + public Analysis(final AnalysisConfiguration configuration, final Class<? extends StageExceptionHandler> listener) { this(configuration, false, listener); } - public Analysis(final AnalysisConfiguration configuration, final boolean validationEnabled, final StageExceptionHandler listener) { + public Analysis(final AnalysisConfiguration configuration, final boolean validationEnabled, final Class<? extends StageExceptionHandler> listener) { this.configuration = configuration; this.listener = listener; if (validationEnabled) { @@ -106,7 +106,7 @@ public class Analysis implements UncaughtExceptionHandler { for (Stage stage : threadableStageJobs) { StageExceptionHandler newListener; try { - newListener = listener.getClass().newInstance(); + newListener = listener.newInstance(); } catch (InstantiationException e) { throw new IllegalStateException(e); } catch (IllegalAccessException e) { diff --git a/src/test/java/teetime/framework/ExceptionHandling.java b/src/test/java/teetime/framework/ExceptionHandling.java index a0e81a17..4029d695 100644 --- a/src/test/java/teetime/framework/ExceptionHandling.java +++ b/src/test/java/teetime/framework/ExceptionHandling.java @@ -10,12 +10,12 @@ import teetime.framework.exceptionHandling.TestListener; public class ExceptionHandling { - TestListener listener; + Class<TestListener> listener; Analysis analysis; @Before public void newInstances() { - listener = new TestListener(); + listener = TestListener.class; analysis = new Analysis(new ExceptionTestConfiguration(), listener); } -- GitLab