diff --git a/src/main/java/teetime/framework/Analysis.java b/src/main/java/teetime/framework/Analysis.java index 84a8d6f44e694460fb867b7426ee4a97a4b62fbc..22d83a561ba4727bc4c2ebe21d74581de72cede7 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 a0e81a17189bd3af3495f2365fde3afe98257988..4029d695efa059ba6dd52c2aa7df95c6ed6d57ba 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); }