Mercurial > dive4elements > gnv-client
diff gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java @ 32:0f4362d75e9e
Adding StatisticsOutput to the GUI
gnv/trunk@142 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Mon, 28 Sep 2009 09:36:02 +0000 |
parents | 07e9c137a2f1 |
children | 25fdec8b4c69 |
line wrap: on
line diff
--- a/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Fri Sep 25 15:11:26 2009 +0000 +++ b/gnv/src/main/java/de/intevation/gnv/artifactdatabase/client/DefaultArtifactDatabaseClient.java Mon Sep 28 09:36:02 2009 +0000 @@ -30,6 +30,8 @@ import de.intevation.gnv.artifactdatabase.objects.ArtifactDescription; import de.intevation.gnv.artifactdatabase.objects.ArtifactFactory; import de.intevation.gnv.artifactdatabase.objects.ArtifactObject; +import de.intevation.gnv.artifactdatabase.objects.ArtifactStatisticValue; +import de.intevation.gnv.artifactdatabase.objects.DefaultArtifactStatisticValue; import de.intevation.gnv.artifactdatabase.objects.DefaultOutputMode; import de.intevation.gnv.artifactdatabase.objects.DefaultOutputParameter; import de.intevation.gnv.artifactdatabase.objects.InputParameter; @@ -535,4 +537,36 @@ } } + + public Collection<ArtifactStatisticValue> calculateStatistics( + ArtifactObject artifactFactory, ArtifactObject currentArtifact) throws ArtifactDatabaseClientException{ + log.debug("DefaultArtifactDatabaseClient.calculateStatistics") ; + Collection<ArtifactStatisticValue> result; + try { + result = null; + String targetName = "statistics"; + String requestUrl = this.getArtifactUrl(artifactFactory, currentArtifact)+"/"+targetName; + Document requestBody = this.createOutRequestBody(currentArtifact, targetName, "text/xml", null); + XMLUtils xmlUtils = new XMLUtils(); + InputStream is = this.doPostRequest(requestUrl, requestBody); + Document resultDocument = xmlUtils.readDocument(is); + if (resultDocument != null){ + NodeList resultNodes = xmlUtils.getNodeSetXPath(resultDocument, "/statistic-values/statistic"); + if (resultNodes != null){ + result = new ArrayList<ArtifactStatisticValue>(resultNodes.getLength()); + for (int i = 0; i < resultNodes.getLength(); i++){ + Node statisticNode = resultNodes.item(i); + String name = xmlUtils.getStringXPath(statisticNode, "@name"); + String value = xmlUtils.getStringXPath(statisticNode, "@value"); + result.add(new DefaultArtifactStatisticValue(name, value)); + } + } + } + } catch (IOException e) { + log.error(e,e); + throw new ArtifactDatabaseClientException(e); + } + + return result; + } }