Mercurial > dive4elements > river
diff flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java @ 807:6f65e70fa11d
Repaired broken recommendation parsing from Artifact's DESCRIBE document (which structure has changed).
flys-client/trunk@2391 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Ingo Weinzierl <ingo.weinzierl@intevation.de> |
---|---|
date | Thu, 21 Jul 2011 15:23:03 +0000 |
parents | 653ae84533e7 |
children | 3187b268b311 |
line wrap: on
line diff
--- a/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Wed Jul 20 13:31:20 2011 +0000 +++ b/flys-client/src/main/java/de/intevation/flys/client/server/ArtifactDescriptionFactory.java Thu Jul 21 15:23:03 2011 +0000 @@ -21,7 +21,9 @@ import de.intevation.flys.client.shared.model.DefaultData; import de.intevation.flys.client.shared.model.DefaultDataItem; import de.intevation.flys.client.shared.model.DefaultOutputMode; +import de.intevation.flys.client.shared.model.DefaultRecommendation; import de.intevation.flys.client.shared.model.OutputMode; +import de.intevation.flys.client.shared.model.Recommendation; import de.intevation.flys.client.shared.model.WQDataItem; @@ -48,7 +50,7 @@ public static final String XPATH_STATIC_ITEM_NODE = "art:item"; public static final String XPATH_RECOMMENDED_ARTIFACTS = - "/art:result/art:recommended-artifacts/art:artifact-factory"; + "/art:result/art:recommended-artifacts/*[@factory]"; /** * This method creates the {@link ArtifactDescription} of the DESCRIBE @@ -78,7 +80,7 @@ DataList[] old = extractOldData(staticNode); String[] states = extractReachableStates(reachable); OutputMode[] outs = extractOutputModes(outputs); - String[] recommended = extractRecommendedArtifacts(doc); + Recommendation[] rec = extractRecommendedArtifacts(doc); return new DefaultArtifactDescription( old, @@ -86,7 +88,7 @@ state, states, outs, - recommended); + rec); } @@ -472,7 +474,7 @@ } - protected static String[] extractRecommendedArtifacts(Document doc) { + protected static Recommendation[] extractRecommendedArtifacts(Document doc){ System.out.println("ArtifactDescriptionFactory - extract recommended."); NodeList list = (NodeList) XMLUtils.xpath( @@ -483,18 +485,19 @@ int num = list != null ? list.getLength() : 0; - String[] factories = new String[num]; + Recommendation[] rec = new Recommendation[num]; for (int i = 0; i < num; i++) { - Element e = (Element) list.item(i); - String f = e.getAttribute("name"); + Element e = (Element) list.item(i); + String factory = e.getAttribute("factory"); + String index = e.getAttribute("db-ids"); - if (f != null && f.length() > 0) { - factories[i] = f; + if (factory != null && factory.length() > 0) { + rec[i] = new DefaultRecommendation(factory, index); } } - return factories; + return rec; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :