Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java @ 1785:661dfad9910a
Use compatibility matrix when creating collections output.
flys-artifacts/trunk@3107 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 28 Oct 2011 10:04:22 +0000 |
parents | 0fe3c4849baa |
children | 6ed439ff61bf |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Fri Oct 28 09:59:47 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Fri Oct 28 10:04:22 2011 +0000 @@ -30,6 +30,7 @@ import de.intevation.artifactdatabase.Backend; import de.intevation.artifactdatabase.Backend.PersistentArtifact; import de.intevation.artifactdatabase.DefaultArtifactCollection; +import de.intevation.artifactdatabase.state.StateEngine; import de.intevation.flys.artifacts.context.FLYSContext; import de.intevation.flys.artifacts.FLYSArtifact; @@ -350,14 +351,20 @@ { Document doc = XMLUtils.newDocument(); + FLYSContext flysContext = FLYSUtils.getFlysContext(context); + StateEngine engine = (StateEngine) flysContext.get( + FLYSContext.STATE_ENGINE_KEY); + + FLYSArtifact masterArtifact = getMasterArtifact(context); + XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( doc, ArtifactNamespaceContext.NAMESPACE_URI, ArtifactNamespaceContext.NAMESPACE_PREFIX); - + AttributeParser aParser = new AttributeParser(); OutputParser oParser = new OutputParser(db, context); - + if (uuids != null) { for (String uuid: uuids) { try { @@ -368,13 +375,17 @@ } } } - + aParser.parse(oldAttr); - + return new AttributeWriter( db, aParser.getOuts(), - oParser.getOuts()).write(); + aParser.getFacets(), + oParser.getOuts(), + oParser.getFacets(), + engine.getCompatibleFacets(masterArtifact.getStateHistoryIds()) + ).write(); }