summaryrefslogtreecommitdiff
path: root/src/main/java/DNPM/config/PluginConfiguration.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-03-15 12:01:50 +0100
committerPaul-Christian Volkmer2023-03-15 12:01:50 +0100
commitf09826a8fff78361de9cbe5eccdfffb86a6e610a (patch)
treeb3f8e2dda25b6ba670b483e8bb760d7f6e97bb2b /src/main/java/DNPM/config/PluginConfiguration.java
parentc6c1ebdfbbf8a0cf9f3faa5a41e21309f64bed46 (diff)
Verwende Spring Configuration zur Pluginkonfiguration
Dies erlaubt eine dynamische Konfiguration der zu verwendenden Service-Implementierungen mit Anpassungen je nach Standort oder Einstellungen.
Diffstat (limited to 'src/main/java/DNPM/config/PluginConfiguration.java')
-rw-r--r--src/main/java/DNPM/config/PluginConfiguration.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/main/java/DNPM/config/PluginConfiguration.java b/src/main/java/DNPM/config/PluginConfiguration.java
new file mode 100644
index 0000000..d417132
--- /dev/null
+++ b/src/main/java/DNPM/config/PluginConfiguration.java
@@ -0,0 +1,42 @@
+package DNPM.config;
+
+import DNPM.services.*;
+import de.itc.onkostar.api.IOnkostarApi;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+import javax.sql.DataSource;
+
+/**
+ * Dynamische Konfiguration des Plugins basierend auf Onkostar-Einstellungen
+ *
+ * @since 0.0.2
+ */
+@Configuration
+@ComponentScan(basePackages = "DNPM.analyzer")
+public class PluginConfiguration {
+
+ @Bean
+ public FormService formService(final DataSource dataSource) {
+ return new DefaultFormService(dataSource);
+ }
+
+ @Bean
+ public StudienService studienService(final DataSource dataSource) {
+ return new DefaultStudienService(dataSource);
+ }
+
+ @Bean
+ public TherapieplanService therapieplanService(final IOnkostarApi onkostarApi, final FormService formService) {
+ if (
+ null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
+ && onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
+ ) {
+ return new MultipleMtbTherapieplanService();
+ }
+
+ return new DefaultTherapieplanService(onkostarApi, formService);
+ }
+
+}