Mercurial > dive4elements > river
diff artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java @ 8219:9667900536b6
Added context injector to generators.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 08 Sep 2014 13:17:49 +0200 |
parents | 3f141505077b |
children | c87c87544cc6 |
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java Mon Sep 08 12:28:16 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java Mon Sep 08 13:17:49 2014 +0200 @@ -11,43 +11,68 @@ import java.util.HashMap; import java.util.Map; -import org.dive4elements.river.utils.Pair; +import org.dive4elements.artifacts.ContextInjector; + import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter; public class GeneratorLookup implements FacetFilter { - private Map<String, Pair<Class<OutGenerator>, Object>> generators; + public static final class Item { + private Class<OutGenerator> generator; + private Object ctx; + private ContextInjector ci; + + public Item(Class<OutGenerator> generator, Object ctx, ContextInjector ci) { + this.generator = generator; + this.ctx = ctx; + this.ci = ci; + } + + public Class<OutGenerator> getGenerator() { + return generator; + } + + public Object getContext() { + return ctx; + } + + public ContextInjector getContextInjector() { + return ci; + } + } // class Item + + private Map<String, Item> generators; public GeneratorLookup() { - generators = new HashMap<String, Pair<Class<OutGenerator>, Object>>(); + generators = new HashMap<String, Item>(); } public void putGenerator( String outName, Class<OutGenerator> generatorClass, - Object ctx + Object ctx, + ContextInjector ci ) { - Pair<Class<OutGenerator>, Object> pair = - new Pair<Class<OutGenerator>, Object>(generatorClass, ctx); - generators.put(outName, pair); + Item item = new Item(generatorClass, ctx, ci); + generators.put(outName, item); } - public Pair<Class<OutGenerator>, Object> getGenerator(String outName) { + public Item 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) { + Item item = generators.get(outName); + if (item == null) { return true; } - Object ff = pair.getB(); - return ff instanceof FacetFilter - ? ((FacetFilter)ff).accept(outName, facetName) + Object ctx = item.getContext(); + return ctx instanceof FacetFilter + ? ((FacetFilter)ctx).accept(outName, facetName) : true; } }