diff artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java @ 7227:744df5a03337

Use diagram configuration and there processors to define compatible facets in loaded data.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Oct 2013 19:24:43 +0200
parents 8ab618dda850
children 3f141505077b
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java	Wed Oct 02 18:41:12 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java	Wed Oct 02 19:24:43 2013 +0200
@@ -11,10 +11,15 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.log4j.Logger;
 import org.dive4elements.river.utils.Pair;
+import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter;
 
 public class GeneratorLookup
+implements   FacetFilter
 {
+    private static Logger log = Logger.getLogger(GeneratorLookup.class);
+
     private Map<String, Pair<Class<OutGenerator>, Object>> generators;
 
     public GeneratorLookup() {
@@ -34,5 +39,30 @@
     public Pair<Class<OutGenerator>, Object> getGenerator(String outName) {
         return generators.get(outName);
     }
+
+    @Override
+    public boolean accept(String outName, String facetName) {
+
+        Pair<Class<OutGenerator>, Object> pair = generators.get(outName);
+        if (pair == null) {
+            return true;
+        }
+
+        try {
+            Class<OutGenerator> clazz = pair.getA();
+            OutGenerator generator = clazz.newInstance();
+
+            return generator instanceof FacetFilter
+                ? ((FacetFilter)generator).accept(outName, facetName)
+                : true;
+        }
+        catch (InstantiationException ie) {
+            log.error(ie, ie);
+        }
+        catch (IllegalAccessException iae) {
+            log.error(iae, iae);
+        }
+        return true;
+    }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org