Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java @ 1744:62efd1288e34
Fix setting of masterartifact in flyscollections.
flys-artifacts/trunk@3038 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Wed, 19 Oct 2011 16:04:40 +0000 |
parents | defe2cfeefa5 |
children | d2a17e990c70 |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Wed Oct 19 15:32:22 2011 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/collections/FLYSArtifactCollection.java Wed Oct 19 16:04:40 2011 +0000 @@ -58,11 +58,12 @@ public static final String XPATH_OUT_TYPE = "/art:action/@art:type"; + public static final String XPATH_MASTER_UUID = "/art:artifact-collection/art:artifact/@art:uuid"; + public static final String XPATH_LOADED_RECOMMENDATIONS = "/art:attribute/art:loaded-recommendations"; - /** * Return description Document for this collection. */ @@ -217,7 +218,23 @@ generator.init(format, out, context); - // TODO Determine the correct master artifact here! + // Get master artifact. + try{ + ArtifactDatabase db = context.getDatabase(); + CallMeta callMeta = context.getMeta(); + Document document = + db.getCollectionsMasterArtifact(identifier(), callMeta); + + //log.debug(XMLUtils.toString(document)); + + String masterUUID = XMLUtils.xpathString( + document, XPATH_MASTER_UUID, ArtifactNamespaceContext.INSTANCE); + + log.error("Will set master Artifact to uuid: " + masterUUID); + generator.setMasterArtifact(getArtifact(masterUUID, context)); + } catch (ArtifactDatabaseException adb) { + log.error(adb, adb); + } try { Document attr = getAttribute(context, name); @@ -277,9 +294,6 @@ } Artifact artifact = getArtifact(art, context); - if (i == 0) { - generator.setMasterArtifact(artifact); - } generator.doOut( artifact,