diff artifacts/src/main/java/org/dive4elements/river/collections/AttributeWriter.java @ 6140:60b94dec104b

Add handling of bound artifacts. When an artifact is bound to an out its facets will only be shown in that Out. They will be removed in the blackboard pass and marked as incompatible by the AttributeWriter
author Andre Heinecke <aheinecke@intevation.de>
date Fri, 31 May 2013 15:29:30 +0200
parents af13ceeba52a
children d4a3031448d3
line wrap: on
line diff
--- a/artifacts/src/main/java/org/dive4elements/river/collections/AttributeWriter.java	Fri May 31 15:27:06 2013 +0200
+++ b/artifacts/src/main/java/org/dive4elements/river/collections/AttributeWriter.java	Fri May 31 15:29:30 2013 +0200
@@ -188,18 +188,23 @@
            logger.debug("Compatible facets are " + compatibleFacets);
         }
 
-        for (int i = 0; i < num; i++) {
-            ManagedFacet facet = (ManagedFacet) newFacets.get(i);
+        for (Facet fac: newFacets) {
+            ManagedFacet facet = (ManagedFacet) fac;
 
             if (debug) {
                 logger.debug("Try to add Facet: " + facet.getName());
             }
 
             if (!compatibleFacets.contains(facet.getName())) {
-                logger.warn("Have incompatible facet, skip: " + facet.getName());
+                logger.debug("Have incompatible facet, skip: " + facet.getName());
                 continue;
-            }
-            else {
+            } else if (facet.getBoundToOut() != null &&
+                    !facet.getBoundToOut().equals(outputName)) {
+                logger.debug("Skip facet " + facet.getName() +
+                        " because it is bound to: " + facet.getBoundToOut());
+                continue;
+            } else {
+                logger.debug("Facet is bound to: " + facet.getBoundToOut());
                 logger.debug("Have compatible facet: " + facet.getName());
             }
 

http://dive4elements.wald.intevation.org