comparison flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java @ 3606:2b308a5d5281

Fix for NPE flys-artifacts/trunk@5233 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Christian Lins <christian.lins@intevation.de>
date Wed, 22 Aug 2012 12:25:28 +0000
parents b1912514e0f5
children 53aa395a29e0
comparison
equal deleted inserted replaced
3605:7196f06e0928 3606:2b308a5d5281
1 package de.intevation.flys.collections; 1 package de.intevation.flys.collections;
2
3 import de.intevation.artifactdatabase.Backend;
4 import de.intevation.artifactdatabase.Backend.PersistentArtifact;
5 import de.intevation.artifactdatabase.DefaultArtifactCollection;
6 import de.intevation.artifactdatabase.state.Output;
7 import de.intevation.artifactdatabase.state.Settings;
8 import de.intevation.artifactdatabase.state.StateEngine;
9 import de.intevation.artifacts.Artifact;
10 import de.intevation.artifacts.ArtifactDatabase;
11 import de.intevation.artifacts.ArtifactDatabaseException;
12 import de.intevation.artifacts.ArtifactNamespaceContext;
13 import de.intevation.artifacts.CallContext;
14 import de.intevation.artifacts.CallMeta;
15 import de.intevation.artifacts.common.utils.XMLUtils;
16 import de.intevation.flys.artifacts.FLYSArtifact;
17 import de.intevation.flys.artifacts.context.FLYSContext;
18 import de.intevation.flys.exports.OutGenerator;
19 import de.intevation.flys.exports.OutputHelper;
20 import de.intevation.flys.utils.FLYSUtils;
2 21
3 import java.io.IOException; 22 import java.io.IOException;
4 import java.io.OutputStream; 23 import java.io.OutputStream;
5 import java.util.ArrayList; 24 import java.util.ArrayList;
6 import java.util.HashMap; 25 import java.util.HashMap;
9 import java.util.Set; 28 import java.util.Set;
10 29
11 import javax.xml.xpath.XPathConstants; 30 import javax.xml.xpath.XPathConstants;
12 31
13 import org.apache.log4j.Logger; 32 import org.apache.log4j.Logger;
14
15 import org.w3c.dom.Document; 33 import org.w3c.dom.Document;
16 import org.w3c.dom.Element; 34 import org.w3c.dom.Element;
17 import org.w3c.dom.Node; 35 import org.w3c.dom.Node;
18 import org.w3c.dom.NodeList; 36 import org.w3c.dom.NodeList;
19
20 import de.intevation.artifacts.Artifact;
21 import de.intevation.artifacts.ArtifactDatabase;
22 import de.intevation.artifacts.ArtifactDatabaseException;
23 import de.intevation.artifacts.ArtifactNamespaceContext;
24 import de.intevation.artifacts.CallContext;
25 import de.intevation.artifacts.CallMeta;
26
27 import de.intevation.artifacts.common.utils.XMLUtils;
28
29 import de.intevation.artifactdatabase.Backend;
30 import de.intevation.artifactdatabase.Backend.PersistentArtifact;
31 import de.intevation.artifactdatabase.DefaultArtifactCollection;
32 import de.intevation.artifactdatabase.state.Output;
33 import de.intevation.artifactdatabase.state.Settings;
34 import de.intevation.artifactdatabase.state.StateEngine;
35
36 import de.intevation.flys.artifacts.context.FLYSContext;
37 import de.intevation.flys.artifacts.FLYSArtifact;
38 import de.intevation.flys.exports.OutGenerator;
39 import de.intevation.flys.exports.OutputHelper;
40
41 import de.intevation.flys.utils.FLYSUtils;
42 37
43 /** 38 /**
44 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> 39 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
45 */ 40 */
46 public class FLYSArtifactCollection extends DefaultArtifactCollection { 41 public class FLYSArtifactCollection extends DefaultArtifactCollection {
457 { 452 {
458 Document doc = XMLUtils.newDocument(); 453 Document doc = XMLUtils.newDocument();
459 454
460 FLYSContext flysContext = FLYSUtils.getFlysContext(context); 455 FLYSContext flysContext = FLYSUtils.getFlysContext(context);
461 StateEngine engine = (StateEngine) flysContext.get( 456 StateEngine engine = (StateEngine) flysContext.get(
462 FLYSContext.STATE_ENGINE_KEY); 457 FLYSContext.STATE_ENGINE_KEY);
463 458
464 FLYSArtifact masterArtifact = getMasterArtifact(context); 459 FLYSArtifact masterArtifact = getMasterArtifact(context);
465 460
461 if(masterArtifact == null) {
462 log.debug("buildOutAttributes: masterArtifact == null");
463 return null;
464 }
465
466 // FIXME: ec is not used?
466 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( 467 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
467 doc, 468 doc,
468 ArtifactNamespaceContext.NAMESPACE_URI, 469 ArtifactNamespaceContext.NAMESPACE_URI,
469 ArtifactNamespaceContext.NAMESPACE_PREFIX); 470 ArtifactNamespaceContext.NAMESPACE_PREFIX);
470 471
481 } 482 }
482 } 483 }
483 484
484 aParser.parse(); 485 aParser.parse();
485 486
486 return new AttributeWriter( 487 if(engine == null) {
488 log.debug("buildOutAttributes: engine == null");
489 }
490
491 AttributeWriter aWriter = new AttributeWriter(
487 db, 492 db,
488 aParser.getCollectionAttribute(), 493 aParser.getCollectionAttribute(),
489 aParser.getOuts(), 494 aParser.getOuts(),
490 aParser.getFacets(), 495 aParser.getFacets(),
491 oParser.getOuts(), 496 oParser.getOuts(),
492 oParser.getFacets(), 497 oParser.getFacets(),
493 engine.getCompatibleFacets(masterArtifact.getStateHistoryIds()) 498 engine.getCompatibleFacets(masterArtifact.getStateHistoryIds())
494 ).write(); 499 );
500 return aWriter.write();
495 } 501 }
496 502
497 503
498 /** 504 /**
499 * Returns the "attribute" (part of description document) for a specific 505 * Returns the "attribute" (part of description document) for a specific

http://dive4elements.wald.intevation.org