Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java @ 1784:0fe3c4849baa
Cosmetics and refactoring in FLYSArtifactCollection.
flys-artifacts/trunk@3106 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Fri, 28 Oct 2011 09:59:47 +0000 |
parents | b503d92dd709 |
children | 661dfad9910a |
comparison
equal
deleted
inserted
replaced
1783:376c81aa7d55 | 1784:0fe3c4849baa |
---|---|
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 | 33 |
34 import de.intevation.flys.artifacts.context.FLYSContext; | 34 import de.intevation.flys.artifacts.context.FLYSContext; |
35 import de.intevation.flys.artifacts.FLYSArtifact; | |
35 import de.intevation.flys.artifacts.model.ManagedFacet; | 36 import de.intevation.flys.artifacts.model.ManagedFacet; |
36 import de.intevation.flys.artifacts.model.ManagedDomFacet; | 37 import de.intevation.flys.artifacts.model.ManagedDomFacet; |
37 import de.intevation.flys.exports.OutGenerator; | 38 import de.intevation.flys.exports.OutGenerator; |
38 import de.intevation.flys.themes.Theme; | 39 import de.intevation.flys.themes.Theme; |
39 import de.intevation.flys.themes.ThemeFactory; | 40 import de.intevation.flys.themes.ThemeFactory; |
40 | 41 |
42 import de.intevation.flys.utils.FLYSUtils; | |
41 | 43 |
42 /** | 44 /** |
43 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> | 45 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> |
44 */ | 46 */ |
45 public class FLYSArtifactCollection extends DefaultArtifactCollection { | 47 public class FLYSArtifactCollection extends DefaultArtifactCollection { |
103 String[] aUUIDs = getArtifactUUIDs(context); | 105 String[] aUUIDs = getArtifactUUIDs(context); |
104 Node newAttr = mergeAttributes(db, context, oldAttrs, aUUIDs); | 106 Node newAttr = mergeAttributes(db, context, oldAttrs, aUUIDs); |
105 | 107 |
106 collection.appendChild(doc.importNode(newAttr, true)); | 108 collection.appendChild(doc.importNode(newAttr, true)); |
107 | 109 |
108 if (aUUIDs != null) { | 110 // Make it an empty array if null. |
109 for (String uuid: aUUIDs) { | 111 if (aUUIDs == null) { |
110 try { | 112 aUUIDs = new String[] {}; |
111 artifacts.appendChild( | 113 } |
112 buildArtifactNode(db, uuid, context, ec)); | 114 |
113 } | 115 for (String uuid: aUUIDs) { |
114 catch (ArtifactDatabaseException dbe) { | 116 try { |
115 log.warn(dbe, dbe); | 117 artifacts.appendChild( |
116 } | 118 buildArtifactNode(db, uuid, context, ec)); |
119 } | |
120 catch (ArtifactDatabaseException dbe) { | |
121 log.warn(dbe, dbe); | |
117 } | 122 } |
118 } | 123 } |
119 } | 124 } |
120 catch (ArtifactDatabaseException ade) { | 125 catch (ArtifactDatabaseException ade) { |
121 log.error(ade, ade); | 126 log.error(ade, ade); |
129 | 134 |
130 | 135 |
131 /** | 136 /** |
132 * Merge the current art:outputs nodes with the the outputs provided by the | 137 * Merge the current art:outputs nodes with the the outputs provided by the |
133 * artifacts in the Collection. | 138 * artifacts in the Collection. |
139 * | |
134 * @param uuids Artifact uuids. | 140 * @param uuids Artifact uuids. |
135 */ | 141 */ |
136 protected Node mergeAttributes( | 142 protected Node mergeAttributes( |
137 ArtifactDatabase db, | 143 ArtifactDatabase db, |
138 CallContext context, | 144 CallContext context, |
217 } | 223 } |
218 | 224 |
219 generator.init(format, out, context); | 225 generator.init(format, out, context); |
220 | 226 |
221 // Get master artifact. | 227 // Get master artifact. |
222 try{ | 228 FLYSArtifact master = getMasterArtifact(context); |
223 ArtifactDatabase db = context.getDatabase(); | 229 if (master != null) { |
224 CallMeta callMeta = context.getMeta(); | 230 log.debug("Will set master Artifact to uuid: " + master.identifier()); |
225 Document document = db.getCollectionsMasterArtifact( | 231 generator.setMasterArtifact(master); |
226 identifier(), callMeta); | 232 } |
227 | 233 else { |
228 String masterUUID = XMLUtils.xpathString( | 234 log.warn("Could not set master artifact."); |
229 document, XPATH_MASTER_UUID, ArtifactNamespaceContext.INSTANCE); | |
230 | |
231 log.debug("Will set master Artifact to uuid: " + masterUUID); | |
232 generator.setMasterArtifact(getArtifact(masterUUID, context)); | |
233 } | |
234 catch (ArtifactDatabaseException adb) { | |
235 log.error(adb, adb); | |
236 } | 235 } |
237 | 236 |
238 try { | 237 try { |
239 Document attr = getAttribute(context, name); | 238 Document attr = getAttribute(context, name); |
240 doOut(generator, name, subtype, attr, context); | 239 doOut(generator, name, subtype, attr, context); |
314 generator.generate(); | 313 generator.generate(); |
315 } | 314 } |
316 | 315 |
317 | 316 |
318 /** | 317 /** |
318 * @return masterartifact or null if exception/not found. | |
319 */ | |
320 protected FLYSArtifact getMasterArtifact(CallContext context) | |
321 { | |
322 try { | |
323 ArtifactDatabase db = context.getDatabase(); | |
324 CallMeta callMeta = context.getMeta(); | |
325 Document document = db.getCollectionsMasterArtifact( | |
326 identifier(), callMeta); | |
327 | |
328 String masterUUID = XMLUtils.xpathString( | |
329 document, XPATH_MASTER_UUID, ArtifactNamespaceContext.INSTANCE); | |
330 FLYSArtifact masterArtifact = | |
331 (FLYSArtifact) getArtifact(masterUUID, context); | |
332 return masterArtifact; | |
333 } | |
334 catch (ArtifactDatabaseException ade) { | |
335 log.error(ade, ade); | |
336 } | |
337 return null; | |
338 } | |
339 | |
340 | |
341 /** | |
319 * Return merged output document. | 342 * Return merged output document. |
320 * @param uuids List of artifact uuids. | 343 * @param uuids List of artifact uuids. |
321 */ | 344 */ |
322 protected Document buildOutAttributes( | 345 protected Document buildOutAttributes( |
323 ArtifactDatabase db, | 346 ArtifactDatabase db, |