Mercurial > dive4elements > river
comparison 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 |
comparison
equal
deleted
inserted
replaced
1784:0fe3c4849baa | 1785:661dfad9910a |
---|---|
28 import de.intevation.artifacts.common.utils.XMLUtils; | 28 import de.intevation.artifacts.common.utils.XMLUtils; |
29 | 29 |
30 import de.intevation.artifactdatabase.Backend; | 30 import de.intevation.artifactdatabase.Backend; |
31 import de.intevation.artifactdatabase.Backend.PersistentArtifact; | 31 import de.intevation.artifactdatabase.Backend.PersistentArtifact; |
32 import de.intevation.artifactdatabase.DefaultArtifactCollection; | 32 import de.intevation.artifactdatabase.DefaultArtifactCollection; |
33 import de.intevation.artifactdatabase.state.StateEngine; | |
33 | 34 |
34 import de.intevation.flys.artifacts.context.FLYSContext; | 35 import de.intevation.flys.artifacts.context.FLYSContext; |
35 import de.intevation.flys.artifacts.FLYSArtifact; | 36 import de.intevation.flys.artifacts.FLYSArtifact; |
36 import de.intevation.flys.artifacts.model.ManagedFacet; | 37 import de.intevation.flys.artifacts.model.ManagedFacet; |
37 import de.intevation.flys.artifacts.model.ManagedDomFacet; | 38 import de.intevation.flys.artifacts.model.ManagedDomFacet; |
348 Document oldAttr, | 349 Document oldAttr, |
349 String[] uuids) | 350 String[] uuids) |
350 { | 351 { |
351 Document doc = XMLUtils.newDocument(); | 352 Document doc = XMLUtils.newDocument(); |
352 | 353 |
354 FLYSContext flysContext = FLYSUtils.getFlysContext(context); | |
355 StateEngine engine = (StateEngine) flysContext.get( | |
356 FLYSContext.STATE_ENGINE_KEY); | |
357 | |
358 FLYSArtifact masterArtifact = getMasterArtifact(context); | |
359 | |
353 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( | 360 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( |
354 doc, | 361 doc, |
355 ArtifactNamespaceContext.NAMESPACE_URI, | 362 ArtifactNamespaceContext.NAMESPACE_URI, |
356 ArtifactNamespaceContext.NAMESPACE_PREFIX); | 363 ArtifactNamespaceContext.NAMESPACE_PREFIX); |
357 | 364 |
358 AttributeParser aParser = new AttributeParser(); | 365 AttributeParser aParser = new AttributeParser(); |
359 OutputParser oParser = new OutputParser(db, context); | 366 OutputParser oParser = new OutputParser(db, context); |
360 | 367 |
361 if (uuids != null) { | 368 if (uuids != null) { |
362 for (String uuid: uuids) { | 369 for (String uuid: uuids) { |
363 try { | 370 try { |
364 oParser.parse(uuid); | 371 oParser.parse(uuid); |
365 } | 372 } |
366 catch (ArtifactDatabaseException ade) { | 373 catch (ArtifactDatabaseException ade) { |
367 log.warn(ade, ade); | 374 log.warn(ade, ade); |
368 } | 375 } |
369 } | 376 } |
370 } | 377 } |
371 | 378 |
372 aParser.parse(oldAttr); | 379 aParser.parse(oldAttr); |
373 | 380 |
374 return new AttributeWriter( | 381 return new AttributeWriter( |
375 db, | 382 db, |
376 aParser.getOuts(), | 383 aParser.getOuts(), |
377 oParser.getOuts()).write(); | 384 aParser.getFacets(), |
385 oParser.getOuts(), | |
386 oParser.getFacets(), | |
387 engine.getCompatibleFacets(masterArtifact.getStateHistoryIds()) | |
388 ).write(); | |
378 } | 389 } |
379 | 390 |
380 | 391 |
381 /** | 392 /** |
382 * Returns the "attribute" (part of description document) for a specific | 393 * Returns the "attribute" (part of description document) for a specific |