diff artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java @ 8254:c87c87544cc6

Made call context injectors a list of comma separated classes.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 10 Sep 2014 12:42:39 +0200
parents 9667900536b6
children c57b0400ac98
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java	Wed Sep 10 10:02:46 2014 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContextFactory.java	Wed Sep 10 12:42:39 2014 +0200
@@ -352,10 +352,10 @@
         for (int i = 0; i < num; i++) {
             Element item = (Element)outGenerators.item(i);
 
-            String names     = item.getAttribute("names").trim();
-            String clazz     = item.getAttribute("class").trim();
-            String converter = item.getAttribute("converter").trim();
-            String injector  = item.getAttribute("injector").trim();
+            String names      = item.getAttribute("names").trim();
+            String clazz      = item.getAttribute("class").trim();
+            String converter  = item.getAttribute("converter").trim();
+            String injectors  = item.getAttribute("injectors").trim();
 
             if (names.isEmpty() || clazz.isEmpty()) {
                 continue;
@@ -391,28 +391,32 @@
                 }
             }
 
-            ContextInjector ci = null;
+            List<ContextInjector> cis = null;
 
-            if (!injector.isEmpty()) {
-                try {
-                    ci = (ContextInjector)Class.forName(injector)
-                        .newInstance();
-                    ci.setup(item);
-                }
-                catch (ClassNotFoundException cnfe) {
-                    log.error(cnfe, cnfe);
-                }
-                catch (InstantiationException ie) {
-                    log.error(ie);
-                }
-                catch (IllegalAccessException iae) {
-                    log.error(iae);
+            if (!injectors.isEmpty()) {
+                cis = new ArrayList<ContextInjector>();
+                for (String injector: injectors.split("[\\s,]+")) {
+                    try {
+                        ContextInjector ci = (ContextInjector)Class.forName(injector)
+                            .newInstance();
+                        ci.setup(item);
+                        cis.add(ci);
+                    }
+                    catch (ClassNotFoundException cnfe) {
+                        log.error(cnfe, cnfe);
+                    }
+                    catch (InstantiationException ie) {
+                        log.error(ie);
+                    }
+                    catch (IllegalAccessException iae) {
+                        log.error(iae);
+                    }
                 }
             }
 
-            for (String key: names.split("[\\s,]")) {
+            for (String key: names.split("[\\s,]+")) {
                 if (!(key = key.trim()).isEmpty()) {
-                    generators.putGenerator(key, generatorClass, cfg, ci);
+                    generators.putGenerator(key, generatorClass, cfg, cis);
                     idx++;
                 }
             }

http://dive4elements.wald.intevation.org