Mercurial > dive4elements > river
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 |