Mercurial > dive4elements > river
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 :