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

http://dive4elements.wald.intevation.org