# HG changeset patch # User Sascha L. Teichmann # Date 1410184091 -7200 # Node ID a0994a326e2a6de941119697a005dc939b208bf7 # Parent 1d3d61c8f596fe56b757bb428bbaa132a72023fd Call context inspector in output helper. diff -r 1d3d61c8f596 -r a0994a326e2a artifacts/src/main/java/org/dive4elements/river/exports/OutputHelper.java --- a/artifacts/src/main/java/org/dive4elements/river/exports/OutputHelper.java Mon Sep 08 13:33:39 2014 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/exports/OutputHelper.java Mon Sep 08 15:48:11 2014 +0200 @@ -23,6 +23,8 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; +import org.dive4elements.artifacts.ContextInjector; + import org.dive4elements.artifactdatabase.Backend; import org.dive4elements.artifactdatabase.Backend.PersistentArtifact; import org.dive4elements.artifactdatabase.state.ArtifactAndFacet; @@ -52,6 +54,24 @@ public OutputHelper(String identifier) { this.identifier = identifier; } + + private static ContextInjector getContextInjector(CallContext context, String out) { + RiverContext flysContext = context instanceof RiverContext + ? (RiverContext)context + : (RiverContext)context.globalContext(); + + GeneratorLookup generators = + (GeneratorLookup)flysContext.get(RiverContext.OUTGENERATORS_KEY); + + if (generators == null) { + return null; + } + + GeneratorLookup.Item item = generators.getGenerator(out); + return item != null + ? item.getContextInjector() + : null; + } /** * Creates a concrete output. * @@ -82,6 +102,8 @@ List dataProviders = doBlackboardPass(themeList, context, outName); + ContextInjector ci = getContextInjector(context, outName); + try { for (int i = 0, T = themeList.size(); i < T; i++) { ManagedFacet theme = themeList.get(i); @@ -109,6 +131,10 @@ continue; } + if (ci != null) { + ci.injectContext(context, dataProviders.get(i).getArtifact()); + } + if (outName.equals("sq_overview")) { generator.doOut( dataProviders.get(i),