# HG changeset patch # User Andre Heinecke # Date 1380903685 -7200 # Node ID 737dd43e32d6cc837410dfe4153ebacda52fd90b # Parent 01deeed9d169b0ff34dfb861296ad34d24cd9307 Remove boundToOut facet pass. This is now only done if we filtered before. diff -r 01deeed9d169 -r 737dd43e32d6 artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java --- a/artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java Fri Oct 04 18:00:29 2013 +0200 +++ b/artifacts/src/main/java/org/dive4elements/river/artifacts/D4EArtifact.java Fri Oct 04 18:21:25 2013 +0200 @@ -1296,20 +1296,34 @@ return gen; } + /** If we use a facet filter that bases the list of compatible facets + * on the output this artifact is bound to then this returns true */ + public boolean usesOutputFacetFilter() { + if (boundToOut == null || boundToOut.isEmpty()) { + return false; + } + + FacetFilter facetFilter = + (FacetFilter)RiverContextFactory.getGlobalContext() + .get(RiverContext.FACETFILTER_KEY); + if (facetFilter == null) { + return false; + } + + return true; + } + /** If a global facet filter and a bounded out are defined * use them to eliminate unwished facets. */ protected List filterFacets(List facets) { - if (boundToOut == null || boundToOut.isEmpty()) { + if (!usesOutputFacetFilter()) { return facets; } FacetFilter facetFilter = (FacetFilter)RiverContextFactory.getGlobalContext() .get(RiverContext.FACETFILTER_KEY); - if (facetFilter == null) { - return facets; - } List result = new ArrayList(facets.size()); for (Facet facet: facets) { @@ -1356,13 +1370,9 @@ String type = f.getName(); /* Match the facets to the output configuration. - * This is only done when we are not already bound to an out. - * If we are bound we come from the datacage so the user has - * explicitly requested our nice and shiny facets. And who - * are we to deny them to him. */ - if (outTypes.contains(type) || - (boundToOut != null && - boundToOut.equals(outName))) { + * This is only done when we are not using the Output + * we are bound to to determine the compatible facets. */ + if (outTypes.contains(type) || usesOutputFacetFilter()) { if (debug) { log.debug("Add facet " + f); }